Vertex AI には、プロンプト テンプレートとプロンプト データを管理するためのツールが用意されています。プロンプト テンプレートはバージョニングして、Vertex AI の生成モデルと連携して使用できます。各プロンプトは、Vertex AI Studio または Vertex AI SDK でアセンブルしてバージョニングできます。
Vertex AI SDK には vertexai.preview.prompts
モジュールが含まれているため、プロンプトで生成モデルを使用できます。vertexai.preview.prompts
モジュールは、Gemini でテキストを生成するプロンプトを定義、保存、管理する機能をサポートしています。
Prompt
Prompt クラスは、Gemini メソッドでテキストの生成に使用できるプロンプトを表します。このクラスは、プロンプト データ、変数、生成構成、その他の関連情報をカプセル化します。
Prompt
オブジェクトを作成するには、vertexai.preview.prompts.Prompt()
コンストラクタを使用します。このオブジェクト内で、プロンプトデータ、変数、その他の構成を定義できます。
ローカル プロンプトを作成してコンテンツを生成する
Vertex AI SDK for Python
Python
project
: 実際のプロジェクト ID。これらの ID は、 Google Cloud コンソールの [ようこそ] ページで確認できます。location
: Vertex AI のロケーションをご覧ください。prompt_name
: ユーザーが作成したプロンプトの表示名(オンライン リソースに保存されている場合)。prompt_data
:PartsType
プロンプト。変数を含むテンプレートまたは変数のないプロンプトです。variables
: 変数名と値を含む辞書のリスト。generation_config
: 生成のパラメータを含むGenerationConfig
オブジェクト。model_name
: Model Garden モデルのリソース名。または、チューニング済みモデルのエンドポイント リソース名を指定することもできます。モデルが指定されていない場合は、デフォルトの最新モデルが使用されます。safety_settings
: 生成の安全性設定を含むSafetySetting
オブジェクト。system_instruction
: システム指示を表すPartsType
オブジェクト。
Prompt
オブジェクトを作成したら、さまざまな構成を表すプロンプトデータとプロパティを使用してコンテンツを生成できます。
プロンプトは関数呼び出しもサポートしています。詳細については、関数呼び出しの概要をご覧ください。
プロンプトを保存する
Google Cloud コンソールからアクセスできるオンライン リソースにプロンプトを保存するには、vertexai.preview.prompts.create_version()
メソッドを使用します。このメソッドは、Prompt
オブジェクトを入力として受け取り、オンライン ストアにプロンプトの新しいバージョンを作成します。オンライン リソースに関連付けられた新しい Prompt
オブジェクトが返されます。Prompt
オブジェクトに加えた更新は、create_version()
が呼び出されるまではローカルに保持されます。次のコードサンプルは、プロンプトを保存する方法を示しています。
Vertex AI SDK for Python
from vertexai.preview import prompts
# Save Prompt to online resource.
Returns a new Prompt object associated with the online prompt1 = prompts.create_version(prompt=prompt)
保存したプロンプトを読み込む
オンライン リソースに保存されているプロンプトを読み込むには、vertexai.preview.prompts.get()
メソッドを使用します。このメソッドは、プロンプト ID を入力として受け取り、対応する Prompt
オブジェクトを返します。次のコードサンプルは、保存したプロンプトを読み込む方法を示しています。
Vertex AI SDK for Python
from vertexai.preview import prompts
# Get prompt
prompt = prompts.get(prompt_id="123456789")
Google Cloud コンソールで作成したプロンプトを取得する
保存したプロンプトを更新するには、まず get()
メソッドを使用してプロンプトを読み込み、必要に応じてプロパティを変更してから、create_version()
メソッドを使用して更新したプロンプトを保存します。これにより、更新された情報を含むプロンプトの新しいバージョンが作成されます。
Vertex AI SDK for Python
from vertexai.preview import prompts
from vertexai.preview.prompts import Prompt
# Get prompt
prompt = prompts.get(prompt_id="123456789")
# Generate content using the assembled prompt (a prompt without variables)
prompt.generate_content(
contents=prompt.assemble_contents()
)
# Update prompt (changes are local until create_version is called)
prompt.prompt_data = "new prompt"
# Save Prompt to online resource. Since the prompt is associated with a prompt resource, it creates a new version under the same prompt_id. Returns a new Prompt object associated with the online resource
prompt1 = prompts.create_version(prompt=prompt)
プロンプトの一覧表示
現在のGoogle Cloud プロジェクトに保存されているすべてのプロンプトの表示名とプロンプト ID を表示するには、list_prompts()
メソッドを使用します。
Vertex AI SDK for Python
from vertexai.preview import prompts
prompts_metadata = prompts.list()
# Get a prompt from the list
prompt1 = prompts.get(prompt_id=prompts_metadata[0].prompt_id)
プロンプトのバージョンを一覧表示する
プロンプト内に保存されているすべてのプロンプト バージョンの表示名とバージョン ID を表示するには、list_versions()
メソッドを使用します。
Vertex AI SDK for Python
from vertexai.preview import prompts
prompt_versions_metadata = prompts.list_versions(prompt_id="123456789")
# Get a specific prompt version from the versions metadata list
prompt1 = prompts.get(
prompt_id=prompt_versions_metadata[3].prompt_id,
version_id=prompt_versions_metadata[3].version_id
)
プロンプトのバージョンを復元する
プロンプト リソースには、プロンプトの以前の保存済みバージョンを保存するバージョン履歴も含まれています。restore_version()
メソッドを使用して、古いバージョンを最新バージョンのプロンプトとして復元できます。これにより、get()
呼び出しで使用して新しく復元されたバージョンを取得できる PromptVersionMetadata が返されます。
Vertex AI SDK for Python
from vertexai.preview import prompts
# Restore to prompt version id 1 (original)
prompt_version_metadata = prompts.restore_version(prompt_id="123456789", version_id="1")
# Fetch the newly restored latest version of the prompt
prompt1 = prompts.get(prompt_id=prompt_version_metadata.prompt_id)
プロンプトを削除する
プロンプト ID に関連付けられているオンライン リソースを削除するには、delete()
メソッドを使用します。
Vertex AI SDK for Python
from vertexai.preview import prompts
prompts.delete(prompt_id="123456789")