プロンプト管理

このページでは、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 機能を使用するには、次の操作を行います。

  1. 最新バージョンの Vertex AI SDK をインストールします。

    pip install --upgrade google-cloud-aiplatform
    
  2. 次の 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 で次のプロンプト管理機能を使用できます。

ローカル プロンプトを作成する

このセクションでは、このページ全体で使用する types.Prompt 変数を定義する方法の例を示します。

Prompt クラスは、プロンプトの定義、組み立て、使用に使用されます。prompt_data 属性は Prompt クラスで定義され、次の内容が含まれます。

属性

model

必須: モデル名。

contents

必須: モデルとの会話の内容。単一ターンのプロンプトのみがサポートされています。

generation_config

省略可: 生成構成

tool_config

省略可: この構成は、リクエストで提供されるすべてのツールで共有されます。

tools

省略可: モデルが次のレスポンスの生成に使用する可能性のある Tools のリスト。Tool は、システムが外部システムと対話して、モデルの知識や範囲外のアクションまたは一連のアクションを実行できるようにするコードです。

safety_settings

省略可: 安全でないコンテンツをブロックするためのリクエスト設定。GenerateContentResponse.candidates に適用されます。

system_instruction

省略可: ユーザーがモデルに提供するシステム指示。

variables

省略可: プロンプトにテンプレート変数がある場合は、その変数に使用する値を指定します。たとえば、プロンプト テキストの内容が「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 メソッドで使用されるパラメータを示します。

パラメータ

prompt

特定のプロンプトのデータ。

config

省略可: プロンプトの作成構成を表す types.CreatePromptConfig オブジェクト。

次の表に、create_version メソッドで使用されるパラメータを示します。

パラメータ

prompt

必須: 特定のプロンプトのデータ。

config

省略可: プロンプト バージョンの作成構成を表す types.CreatePromptConfig オブジェクト。

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.getclient.prompts.get_version の 2 つの方法があります。

パラメータ

次の表に、client.prompts.get メソッドで使用されるパラメータを示します。

パラメータ

prompt_id

必須: 取得するプロンプトの ID。

config

省略可: プロンプトを取得するための構成を表す types.GetPromptConfig オブジェクト。

次の表に、client.prompts.get_version メソッドで使用されるパラメータを示します。

パラメータ

prompt_id

必須: 取得するプロンプトの ID。

version_id

必須: 取得するプロンプト バージョンの ID。

config

省略可: プロンプトを取得するための構成を表す types.GetPromptConfig オブジェクト。

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.listclient.prompts.list_versions の 2 つの方法があります。

パラメータ

次の表に、list メソッドで使用されるパラメータを示します。

パラメータ

config

省略可: プロンプトのリスト表示の構成を表す types.ListPromptsConfig オブジェクト。

次の表に、list_versions メソッドで使用されるパラメータを示します。

パラメータ

prompt_id

必須: バージョンを一覧表示するプロンプトの ID。

config

省略可: プロンプト バージョンのリストの構成を表す types.ListPromptsConfig オブジェクト。

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
  )

プロンプトを削除する

このセクションでは、プロンプトを削除する方法のパラメータと例を示します。

deletedelete_version の 2 つの方法があります。

パラメータ

次の表に、delete メソッドで使用されるパラメータを示します。

パラメータ

prompt_id

削除するプロンプトの ID。

config

省略可: プロンプトの削除の構成を表す types.DeletePromptConfig オブジェクト。

次の表に、delete_version メソッドで使用されるパラメータを示します。

パラメータ

prompt_id

バージョンを削除するプロンプトの ID。

version_id

削除するプロンプトのバージョン。

config

省略可: プロンプト バージョンの削除の構成を表す types.DeletePromptConfig オブジェクト。

プロンプトとそのすべてのバージョンを削除するには、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 メソッドで使用されるパラメータを示します。

パラメータ

prompt_id

特定のプロンプトの ID。

version_id

復元するプロンプトのバージョン。

config

プロンプト バージョンを復元するための構成。

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')

次のステップ