Gestão de comandos

A Vertex AI oferece ferramentas para ajudar a gerir modelos de comandos e dados de comandos. Os modelos de comandos podem ter versões e ser usados em conjunto com modelos generativos no Vertex AI. Cada comando pode ser montado e ter versões no Vertex AI Studio ou no SDK Vertex AI.

O SDK do Vertex AI inclui o módulo vertexai.preview.prompts para que os comandos possam funcionar com modelos generativos. O módulo vertexai.preview.prompts suporta a capacidade de definir, guardar e gerir comandos para gerar texto com o Gemini.

Prompt

A classe de comando representa um comando que pode ser usado para gerar texto com um método Gemini, que encapsula os dados do comando, as variáveis, a configuração de geração e outras informações relevantes.

Para criar um objeto Prompt, use o construtor vertexai.preview.prompts.Prompt(). Pode definir os dados dos comandos, as variáveis e outras configurações neste objeto.

Crie um comando local e gere conteúdo

SDK Vertex AI para Python

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: . Pode encontrar estes IDs na página de Google Cloud boas-vindas da consola.
  • location: consulte as localizações do Vertex AI.
  • prompt_name: o nome a apresentar do comando criado pelo utilizador, se armazenado num recurso online.
  • prompt_data: um comando PartsType, que pode ser um modelo com variáveis ou um comando sem variáveis.
  • variables: uma lista de dicionários que contêm os nomes e os valores das variáveis.
  • generation_config: um objeto GenerationConfig que contém parâmetros para a geração.
  • model_name: nome do recurso do modelo do Model Garden. Em alternativa, pode ser fornecido um nome de recurso do ponto final do modelo otimizado. Se não for fornecido nenhum modelo, é usado o modelo mais recente predefinido.
  • safety_settings: um objeto SafetySetting que contém definições de segurança para a geração.
  • system_instruction: um objeto PartsType que representa a instrução do sistema.

Após a criação de um objeto Prompt, os dados e as propriedades dos comandos que representam várias configurações podem ser usados para gerar conteúdo.

Os comandos também suportam a chamada de funções. Consulte o artigo Introdução à chamada de funções para saber mais.

Guarde um comando

Para guardar um comando num recurso online, que pode ser acedido na Google Cloud consola, use o método vertexai.preview.prompts.create_version(). Este método recebe um objeto Prompt como entrada e cria uma nova versão do comando na loja online. É devolvido um novo objeto Prompt associado ao recurso online. Todas as atualizações feitas a um objeto Prompt são locais até que create_version() seja chamado. O seguinte exemplo de código mostra como guardar um comando:

SDK Vertex AI para Python

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)

Carregue um comando guardado

Para carregar um comando que foi guardado no recurso online, use o método vertexai.preview.prompts.get(). Este método usa o ID do comando como entrada e devolve o objeto Prompt correspondente. Este exemplo de código mostra como carregar um comando guardado:

SDK Vertex AI para Python

from vertexai.preview import prompts

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

Recupere o comando criado na Google Cloud consola

Para atualizar um comando guardado, primeiro carregue o comando através do método get(), modifique as respetivas propriedades conforme necessário e, de seguida, guarde o comando atualizado através do método create_version(). Esta ação cria uma nova versão do comando com as informações atualizadas.

SDK Vertex AI para 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)

Comandos de lista

Para ver os nomes a apresentar e os IDs de comandos de todos os comandos guardados noGoogle Cloud projeto atual, use o list_prompts()método.

SDK Vertex AI para 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)

Indique as versões de comandos

Para ver os nomes a apresentar e os IDs das versões de todos os comandos guardados no comando, use o método list_versions() .

SDK Vertex AI para 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
)

Restaure uma versão de comando

Um recurso de comando também contém um histórico de versões que armazena as versões guardadas anteriormente do comando. Pode usar o método restore_version() para restaurar uma versão mais antiga como a versão mais recente do comando. Isto devolve PromptVersionMetadata que pode ser usado com uma chamada get() para obter a versão recentemente restaurada.

SDK Vertex AI para 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)

Elimine um comando

Para eliminar o recurso online associado a um ID de comando, use o método delete().

SDK Vertex AI para Python

from vertexai.preview import prompts

prompts.delete(prompt_id="123456789")