このページでは、Vertex AI SDK プロンプト管理モジュールを使用して、 Google Cloud プロジェクト内でプロンプトを定義、保存、取得、管理するための統合された一連の機能について説明します。
概要
Vertex AI には、プロンプト テンプレートとプロンプト データを管理するためのツールが用意されています。プロンプト テンプレートはバージョニングして、Vertex AI の生成モデルで使用できます。各プロンプトは、Vertex AI Studio または Vertex AI SDK でアセンブルしてバージョニングできます。
Vertex AI SDK のプロンプト管理には、顧客管理の暗号鍵(CMEK)と VPC Service Controls(VPCSC)のサポートを含む、完全なエンタープライズ サポートが含まれています。
プロンプト管理機能
Vertex AI SDK の生成 AI 機能を使用するには、次の操作を行います。
最新バージョンの Vertex AI SDK をインストールします。
pip install --upgrade google-cloud-aiplatform
次の Python コードサンプルを使用して、生成 AI クライアントを作成します。
import vertexai from vertexai import types # Instantiate GenAI client from Vertex SDK # Replace with your project ID and location client = vertexai.Client(project='my-project', location='my-location')
生成 AI クライアントを作成したら、Vertex AI SDK で次のプロンプト管理機能を使用できます。
- ローカル プロンプトを作成する。
- Google Cloud プロジェクトにプロンプトを保存する。
- 保存したプロンプトを取得します。
- プロンプトとバージョンを一覧表示する。
- プロンプトを削除する。
- プロンプトのバージョンを復元する。
ローカル プロンプトを作成する
このセクションでは、このページ全体で使用する types.Prompt
変数を定義する方法の例を示します。
Prompt
クラスは、プロンプトの定義、組み立て、使用に使用されます。prompt_data
属性は Prompt
クラスで定義され、次の内容が含まれます。
属性 | |
---|---|
|
必須: モデル名。 |
|
必須: モデルとの会話の内容。単一ターンのプロンプトのみがサポートされています。 |
|
省略可: 生成構成 |
|
省略可: この構成は、リクエストで提供されるすべてのツールで共有されます。 |
|
省略可: モデルが次のレスポンスの生成に使用する可能性のある |
|
省略可: 安全でないコンテンツをブロックするためのリクエスト設定。 |
|
省略可: ユーザーがモデルに提供するシステム指示。 |
|
省略可: プロンプトにテンプレート変数がある場合は、その変数に使用する値を指定します。たとえば、プロンプト テキストの内容が「Hello, {name}」の場合、変数リストには、「{name}」変数の可能なすべての値の辞書を含める必要があります。例: "variables": [ {"name": {"text": "Alice"}}, {"name": {"text": "Bob"}}, ], |
このコードサンプルは、types.Prompt
変数を定義する方法を示しています。
import vertexai
from vertexai import types
from google.genai import types
prompt = types.Prompt(
prompt_data=types.PromptData(
contents=[genai_types.Content(parts=[genai_types.Part(text="Hello, {name}! How are you?")])],
variables=[
{"name": genai_types.Part(text="Alice")},
{"name": genai_types.Part(text="Bob")},
],
model="your-model",
),
)
プロンプトを Google Cloud プロジェクトに保存する
このセクションでは、プロンプトを Google Cloud プロジェクトに保存する方法のパラメータと例を示します。
パラメータ
次の表に、create
メソッドで使用されるパラメータを示します。
パラメータ | |
---|---|
|
特定のプロンプトのデータ。 |
|
省略可: プロンプトの作成構成を表す |
次の表に、create_version
メソッドで使用されるパラメータを示します。
パラメータ | |
---|---|
|
必須: 特定のプロンプトのデータ。 |
|
省略可: プロンプト バージョンの作成構成を表す |
create_version
メソッドは Prompt
を返します。
例
プロンプトを Google Cloud プロジェクトに保存するには、client.prompts.create
メソッドと client.prompts.create_version
メソッドを使用します。
client.prompts.create
メソッドは、Google Cloud プロジェクトにプロンプト リソースを作成します。client.prompts.create_version
メソッドは、そのリソース内にプロンプト バージョンを作成します。Google Cloud コンソールでリソースにアクセスできます。
client.prompts.create
メソッドは、Prompt
オブジェクトを入力として受け取り、 Google Cloud プロジェクトにプロンプトを作成します。client.prompts.create_version
メソッドでは、バージョンを作成するプロンプト リソースの ID である prompt_id
も渡す必要があります。 Google Cloud プロジェクトに関連付けられた新しい Prompt
オブジェクトが返されます。Prompt
オブジェクトに加えた更新は、create
または create_version
が呼び出されるまではローカルに保持されます。
次のコードサンプルは、プロンプトとプロンプト バージョンを保存する方法を示しています。
# Save `Prompt` to a Google Cloud project.
# Returns a new `Prompt` object associated with the saved prompt resource.
prompt_resource = client.prompts.create(prompt=prompt)
prompt_version_resource = client.prompts.create_version(prompt=prompt, prompt_id=prompt_resource.prompt_id)
保存したプロンプトを取得する
このセクションでは、プロンプトとプロンプト バージョンを取得する方法のパラメータと例を示します。
client.prompts.get
と client.prompts.get_version
の 2 つの方法があります。
パラメータ
次の表に、client.prompts.get
メソッドで使用されるパラメータを示します。
パラメータ | |
---|---|
|
必須: 取得するプロンプトの ID。 |
|
省略可: プロンプトを取得するための構成を表す |
次の表に、client.prompts.get_version
メソッドで使用されるパラメータを示します。
パラメータ | |
---|---|
|
必須: 取得するプロンプトの ID。 |
|
必須: 取得するプロンプト バージョンの ID。 |
|
省略可: プロンプトを取得するための構成を表す |
get
メソッドと get_version
メソッドは Prompt
を返します。
例
Google Cloud プロジェクトに保存されているプロンプトを取得(読み込み)するには、client.prompts.get
メソッドを使用します。このメソッドは、プロンプト ID を入力として受け取り、対応する Prompt
オブジェクトを返します。次のコードサンプルは、保存したプロンプトを読み込む方法を示しています。
# Get prompt
retrieved_prompt = client.prompts.get(prompt_id=prompt_resource.prompt_id)
次のコードサンプルは、プロンプトのバージョンを取得する方法を示しています。
retrieved_prompt_version = client.prompts.get_version(prompt_id='your-prompt-id', version_id='your-prompt-version-id')
次のコードは、プロンプトを変換して生成 AI SDK で generate_content
を呼び出す方法を示しています。
from google import genai
from google.genai import types as genai_types
genai_client = genai.Client(vertexai=True, project="my-project", location="my-location")
response = genai_client.models.generate_content(
model=retrieved_prompt.prompt_data.model,
contents=retrieved_prompt.assemble_contents(),
)
プロンプトとバージョンを一覧表示する
このセクションでは、プロンプトとプロンプト バージョンを一覧表示する方法のパラメータと例を示します。
client.prompts.list
と client.prompts.list_versions
の 2 つの方法があります。
パラメータ
次の表に、list
メソッドで使用されるパラメータを示します。
パラメータ | |
---|---|
|
省略可: プロンプトのリスト表示の構成を表す |
次の表に、list_versions
メソッドで使用されるパラメータを示します。
パラメータ | |
---|---|
|
必須: バージョンを一覧表示するプロンプトの ID。 |
|
省略可: プロンプト バージョンのリストの構成を表す |
list
メソッドと list_versions
メソッドはどちらも、types.PromptRef
オブジェクトの Iterator
を返します。PromptRef
にはプロンプトへの参照が含まれています。
例
Google Cloud プロジェクトに保存されているすべてのプロンプトのプロンプト ID とモデルを表示するには、list
メソッドを使用します。
次のコードサンプルは、現在のプロジェクトに保存されているすべてのプロンプトの PromptRef
を取得する方法を示しています。
prompt_refs = list(client.prompts.list())
# Get a prompt from the list
prompt1 = client.prompts.get(prompt_id=prompt_refs[0].prompt_id)
次のコードサンプルは、プロンプト内に保存されているすべてのプロンプト バージョンのプロンプト ID とバージョン ID を一覧表示する方法を示しています。
prompt_versions_metadata = client.prompts.list_versions(prompt_id="123456789")
# Get a specific prompt version from the versions metadata list
prompt1 = client.prompts.get_version(
prompt_id=prompt_versions_metadata[0].prompt_id,
version_id=prompt_versions_metadata[0].version_id
)
プロンプトを削除する
このセクションでは、プロンプトを削除する方法のパラメータと例を示します。
delete
と delete_version
の 2 つの方法があります。
パラメータ
次の表に、delete
メソッドで使用されるパラメータを示します。
パラメータ | |
---|---|
|
削除するプロンプトの ID。 |
|
省略可: プロンプトの削除の構成を表す |
次の表に、delete_version
メソッドで使用されるパラメータを示します。
パラメータ | |
---|---|
|
バージョンを削除するプロンプトの ID。 |
|
削除するプロンプトのバージョン。 |
|
省略可: プロンプト バージョンの削除の構成を表す |
例
プロンプトとそのすべてのバージョンを削除するには、delete
メソッドを使用します。
client.prompts.delete(prompt_id=retrieved_prompt.prompt_id)
プロンプト リソースから特定のバージョンを削除するには、delete_version
メソッドを使用します。
client.prompts.delete_version(prompt_id=retrieved_prompt.prompt_id, version_id='your-version-id')
プロンプトのバージョンを復元する
このセクションでは、プロンプト バージョンを復元する方法のパラメータと例を示します。
パラメータ
次の表に、restore_version
メソッドで使用されるパラメータを示します。
パラメータ | |
---|---|
|
特定のプロンプトの ID。 |
|
復元するプロンプトのバージョン。 |
|
プロンプト バージョンを復元するための構成。 |
Prompt
オブジェクトは restore_version
メソッドによって返されます。
例
プロンプト リソースには、プロンプトの以前の保存済みバージョンを保存するバージョン履歴も含まれています。restore_version()
メソッドを使用して、古いバージョンを最新バージョンのプロンプトとして復元できます。これにより、Prompt
オブジェクトが返されます。
# Restore to prompt version id 1
restored_prompt = client.prompts.restore_version(prompt_id=retrieved_prompt.prompt_id, version_id='1')
次のステップ
- 関数呼び出しをサポートするプロンプトの詳細については、関数呼び出しの概要をご覧ください。