Gerenciamento de comandos

A Vertex AI oferece ferramentas para ajudar a gerenciar modelos e dados de comandos. Os modelos de comandos podem ser versionados e usados em conjunto com modelos generativos na Vertex AI. Cada comando pode ser montado e versionado no Vertex AI Studio ou no SDK da Vertex AI.

O SDK da Vertex AI inclui o módulo vertexai.preview.prompts para que os comandos funcionem com modelos generativos. O módulo vertexai.preview.prompts permite definir, salvar e gerenciar comandos para gerar texto com o Gemini.

Prompt

A classe Prompt representa uma solicitação que pode ser usada para gerar texto com um método do Gemini, que encapsula os dados, 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(). É possível definir os dados de solicitação, as variáveis e outras configurações nesse objeto.

Criar um comando local e gerar conteúdo

SDK da 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: . Esses IDs estão na página de boas-vindas do console Google Cloud .
  • location: consulte locais da Vertex AI.
  • prompt_name: o nome de exibição do comando criado pelo usuário, se armazenado em um recurso on-line.
  • 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 valores das variáveis.
  • generation_config: um objeto GenerationConfig que contém parâmetros para geração.
  • model_name: nome do recurso do modelo do Model Garden. Como alternativa, um nome de recurso de endpoint de modelo ajustado pode ser fornecido. Se nenhum modelo for fornecido, será usado o modelo padrão mais recente.
  • safety_settings: um objeto SafetySetting que contém configurações de segurança para geração.
  • system_instruction: um objeto PartsType que representa a instrução do sistema.

Depois da criação de um objeto Prompt, os dados e as propriedades do comando que representam várias configurações podem ser usados para gerar conteúdo.

Os comandos também são compatíveis com a chamada de função. Consulte Introdução à chamada de função para saber mais.

Salvar um comando

Para salvar um comando em um recurso on-line, que pode ser acessado no consoleGoogle Cloud , use o método vertexai.preview.prompts.create_version(). Esse método usa um objeto Prompt como entrada e cria uma nova versão da solicitação na loja on-line. Um novo objeto Prompt associado ao recurso on-line é retornado. Todas as atualizações feitas em um objeto Prompt são locais até que create_version() seja chamado. O exemplo de código a seguir mostra como salvar um comando:

SDK da 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)

Carregar um comando salvo

Para carregar um comando salvo no recurso on-line, use o método vertexai.preview.prompts.get(). Esse método usa o ID da solicitação como entrada e retorna o objeto Prompt correspondente. Este exemplo de código mostra como carregar um comando salvo:

SDK da Vertex AI para Python

from vertexai.preview import prompts

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

Recuperar o comando criado no console Google Cloud

Para atualizar um comando salvo, primeiro carregue-o usando o método get(), modifique as propriedades conforme necessário e salve o comando atualizado usando o método create_version(). Isso cria uma nova versão do comando com as informações atualizadas.

SDK da 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)

Listar comandos

Para conferir os nomes de exibição e IDs de solicitação de todos os comandos salvos noGoogle Cloud projeto atual, use o método list_prompts().

SDK da 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)

Listar versões de comandos

Para conferir os nomes de exibição e IDs de versão de todas as versões de solicitação salvas na solicitação, use o método list_versions() .

SDK da 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
)

Restaurar uma versão de comando

Um recurso de solicitação também contém um histórico de versões que armazena versões salvas anteriores da solicitação. Você pode usar o método restore_version() para restaurar uma versão mais antiga como a mais recente do comando. Isso retorna PromptVersionMetadata, que pode ser usado com uma chamada get() para buscar a versão recém-restaurada.

SDK da 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)

Excluir um comando

Para excluir o recurso on-line associado a um ID de solicitação, use o método delete().

SDK da Vertex AI para Python

from vertexai.preview import prompts

prompts.delete(prompt_id="123456789")