このページでは、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')
次のステップ
- 関数呼び出しをサポートするプロンプトの詳細については、関数呼び出しの概要をご覧ください。