提示管理

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() 构造函数。 您可以在此对象中定义提示数据、变量和其他配置。

创建本地提示并生成内容

Python 版 Vertex AI SDK

Python

import vertexai
from vertexai.preview import prompts
from vertexai.preview.prompts import Prompt

# from vertexai.generative_models import GenerationConfig, SafetySetting # Optional

# Initialize vertexai
vertexai.init(project=PROJECT_ID, location="us-central1")

# Create local Prompt
local_prompt = Prompt(
    prompt_name="movie-critic",
    prompt_data="Compare the movies {movie1} and {movie2}.",
    variables=[
        {"movie1": "The Lion King", "movie2": "Frozen"},
        {"movie1": "Inception", "movie2": "Interstellar"},
    ],
    model_name="gemini-2.0-flash-001",
    system_instruction="You are a movie critic. Answer in a short sentence.",
    # generation_config=GenerationConfig, # Optional,
    # safety_settings=SafetySetting, # Optional,
)

# Generate content using the assembled prompt for each variable set.
for i in range(len(local_prompt.variables)):
    response = local_prompt.generate_content(
        contents=local_prompt.assemble_contents(**local_prompt.variables[i])
    )
    print(response)

# Save a version
prompt1 = prompts.create_version(prompt=local_prompt)

print(prompt1)

# Example response
# Assembled prompt replacing: 1 instances of variable movie1, 1 instances of variable movie2
# Assembled prompt replacing: 1 instances of variable movie1, 1 instances of variable movie2
# Created prompt resource with id 12345678910.....
  • project:。您可以在 Google Cloud 控制台的欢迎页面中找到这些 ID。
  • location:请参阅 Vertex AI 位置
  • prompt_name:用户创建的提示的显示名称(如果存储在在线资源中)。
  • prompt_dataPartsType 提示,可以是包含变量的模板,也可以是不包含变量的提示。
  • variables:包含变量名称和值的字典列表。
  • generation_config:包含生成参数的 GenerationConfig 对象。
  • model_name:Model Garden 模型资源名称。或者,也可以提供调优后模型端点资源名称。如果未提供模型,则使用默认的最新模型。
  • safety_settings:一个 SafetySetting 对象,其中包含生成内容的安全性设置。
  • system_instruction:表示系统指令的 PartsType 对象。

创建 Prompt 对象后,可以使用表示各种配置的提示数据和属性来生成内容。

提示还支持函数调用。如需了解详情,请参阅函数调用简介

保存提示

如需将提示保存到可在Google Cloud 控制台中访问的在线资源,请使用 vertexai.preview.prompts.create_version() 方法。此方法接受 Prompt 对象作为输入,并在在线商店中创建提示的新版本。系统会返回与在线资源关联的新 Prompt 对象。 在调用 create_version() 之前,对 Prompt 对象所做的任何更新都是本地更新。以下代码示例展示了如何保存提示:

Python 版 Vertex AI SDK

from vertexai.preview import prompts

# Save Prompt to online resource.
# Returns a new Prompt object associated with the online resource.
prompt1 = prompts.create_version(prompt=prompt)

加载已保存的提示

如需加载已保存到在线资源的提示,请使用 vertexai.preview.prompts.get() 方法。此方法将提示 ID 作为输入,并返回相应的 Prompt 对象。此代码示例展示了如何加载已保存的提示:

Python 版 Vertex AI SDK

from vertexai.preview import prompts

# Get prompt
prompt = prompts.get(prompt_id="123456789")

检索在 Google Cloud 控制台中创建的提示

如需更新已保存的提示,请先使用 get() 方法加载提示,根据需要修改其属性,然后使用 create_version() 方法保存更新后的提示。这会根据更新后的信息创建提示的新版本。

Python 版 Vertex AI SDK

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() 方法

Python 版 Vertex AI SDK

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() 方法

Python 版 Vertex AI SDK

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() 方法将旧版本恢复为提示的最新版本。此方法会返回 PromptVersionMetadata,可与 get() 调用搭配使用,以提取新恢复的版本。

Python 版 Vertex AI SDK

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() 方法

Python 版 Vertex AI SDK

from vertexai.preview import prompts

prompts.delete(prompt_id="123456789")