Gerenciamento de comandos

A Vertex AI oferece ferramentas para ajudar a gerenciar modelos e dados de comandos. Os modelos de comando podem ser versionados e usados em conjunto com modelos generativos na Vertex AI. Cada comando pode ser montado e controlado 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 oferece suporte à capacidade de definir, salvar e gerenciar comandos para gerar texto com o Gemini.

Prompt

A classe Prompt representa um comando que pode ser usado para gerar texto com um método 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 comando, as variáveis e outras configurações nesse objeto.

Criar uma solicitação local e gerar conteúdo

SDK da Vertex AI para Python

SDK da Vertex AI para 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-1.5-pro-002",
    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: o ID do projeto. Esses IDs estão na página de boas-vindas do console do Google Cloud.
  • location: consulte os Locais da Vertex AI.
  • prompt_name: o nome de exibição da solicitação criada pelo usuário, se armazenada em um recurso on-line.
  • prompt_data: uma solicitação PartsType, que pode ser um modelo com variáveis ou uma solicitação 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, é possível fornecer um nome de recurso de endpoint de modelo ajustado. Se nenhum modelo for fornecido, o modelo mais recente padrão será usado.
  • 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.

Após a 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.

As instruções também oferecem suporte a chamadas 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 console do Google Cloud, use o método vertexai.preview.prompts.create_version(). Esse método recebe um objeto Prompt como entrada e cria uma nova versão do comando na loja on-line. Um novo objeto Prompt é retornado e associado ao recurso on-line. Todas as atualizações feitas em um objeto Prompt são locais até que create_version() seja chamado. O exemplo de código abaixo mostra como salvar uma solicitação:

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 uma solicitação salva

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

SDK da Vertex AI para Python

from vertexai.preview import prompts 

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

Recuperar a solicitação criada no console do Google Cloud

Para atualizar uma solicitação salva, primeiro carregue a solicitação usando o método get(), modifique as propriedades conforme necessário e salve a solicitação atualizada usando o método create_version(). Isso cria uma nova versão da solicitação 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)

Comandos de lista

Para conferir os nomes de exibição e os IDs de todos os comandos salvos no projeto atual do Google Cloud, 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 os IDs de versão de todas as versões de comando salvas no comando, 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 do comando

Um recurso de comando também contém o histórico de versões que armazena versões salvas anteriores do comando. Você pode usar o método restore_version() para restaurar uma versão mais antiga como a versão mais recente do comando. Isso retorna PromptVersionMetadata, que pode ser usado com uma chamada get() para buscar a versão 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 comando, use o método delete().

SDK da Vertex AI para Python

from vertexai.preview import prompts

prompts.delete(prompt_id="123456789")