Depois de criar uma instância da loja de exemplos, você pode começar a criar e fazer upload de exemplos para ela. Não há limite para o número de exemplos que podem ser armazenados em uma instância de exemplo. Os exemplos ficam disponíveis imediatamente após o upload na instância da loja de exemplo.
Confira alguns cenários em que você precisa fazer upload de exemplos:
As consultas são irrelevantes para os exemplos atuais.
O modelo tem dificuldades com alguns raciocínios.
Os exemplos disponíveis não abrangem todas as funções, resultados ou raciocínios esperados.
Ao criar exemplos relevantes no formato esperado, você pode fazer o seguinte:
Melhore a capacidade do LLM de prestar atenção aos exemplos e usá-los, evitando mudanças inesperadas nos padrões de resposta que resultam de pequenas mudanças no comando.
Reduzimos o possível impacto negativo de adicionar exemplos para consultas irrelevantes.
O LLM funciona conforme o esperado em consultas semelhantes.
Se o LLM mostrar um comportamento ou raciocínio inesperado, você poderá fazer upload de uma resposta corrigida para orientar o modelo a seguir o padrão ou raciocínio esperado em solicitações subsequentes.
Os exemplos nesta página permitem que você crie exemplos com base na saída do LLM. Criar exemplos com base na saída de um LLM tem as seguintes vantagens em relação à criação manual de exemplos:
A criação de exemplos com base na saída esperada do LLM envolve menos esforço manual.
Ao criar exemplos com base no comportamento inesperado do LLM, você pode corrigir diretamente os casos de falha.
Você pode criar exemplos com base nas respostas de modelos com bom desempenho para melhorar o comportamento de outros modelos. Por exemplo, se o Gemini 1.5 Pro oferecer respostas melhores do que o Gemini 1.5 Flash, mas com latência maior, você pode criar exemplos usando essas respostas para alcançar um desempenho semelhante com latências menores usando o Gemini 1.5 Flash.
Usar exemplos para melhorar o desempenho da chamada de função
É possível usar exemplos de poucas fotos para melhorar o desempenho da chamada de função demonstrando o seguinte: * Quando uma função específica é invocada.
Como extrair os argumentos a serem usados na chamada de função.
Como o modelo responde com base na resposta retornada pela função ou em várias funções no caso de raciocínio em várias etapas.
Para saber mais sobre como chamar uma função, consulte a documentação sobre chamadas de função.
Pré-requisitos
Antes de usar os exemplos de Python nesta página, instale e inicialize o SDK da Vertex AI para Python para a loja de exemplo no seu ambiente local de Python.
Execute o seguinte comando para instalar o SDK da Vertex AI para Python na Example Store.
pip install --upgrade google-cloud-aiplatform>=1.87.0
Use o exemplo de código abaixo para importar e inicializar o SDK da Example Store.
import vertexai from vertexai.preview import example_stores vertexai.init( project="PROJECT_ID", location="LOCATION" )
Substitua:
PROJECT_ID: o ID do projeto.
LOCATION: sua região. Somente
us-central1
é aceito.
Fazer upload de exemplos
Use os exemplos a seguir para fazer upload de exemplos para uma instância da loja de exemplo. É possível fazer upload de até cinco exemplos por solicitação.
Python
Os exemplos a seguir permitem melhorar o comportamento do LLM e o desempenho da chamada de função criando e fazendo upload de exemplos para uma instância do Example Store usando respostas recebidas de um LLM. Antes de usar os exemplos a seguir, verifique se você fez o seguinte:Siga as instruções de configuração do Python no Guia de início rápido da Vertex AI: como usar bibliotecas de cliente. Saiba mais na documentação de referência da API Python da Vertex AI.
Configure o Application Default Credentials para autenticar na Vertex AI. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Fazer upload de um exemplo com base em uma resposta esperada
Use o exemplo a seguir para criar e fazer upload de um exemplo em um cenário em que a resposta do LLM está no formato esperado. Esse exemplo permite enviar uma solicitação, criar um exemplo com base na resposta e fazer upload dele para uma instância do Example Store.
from vertexai.preview.example_stores import ContentsExample, StoredContentsExample
client = genai.Client(
http_options=genai_types.HttpOptions(api_version="v1"),
vertexai=True,
project="PROJECT_ID",,
location="LOCATION")
user_content = Content(
role="user",
parts=[Part(text="EXAMPLE_QUERY")],
)
response = client.models.generate_content(
model="MODEL_NAME",
user_content,
config=genai_types.GenerateContentConfig(
tools=[FUNCTION_OR_FUNCTION_DECLARATION]
)
)
# Upload example.
example = {
"contents_example": {
"contents": [user_content.to_json_dict()],
"expected_contents": [
{"content": response.candidates[0].content.to_json_dict()},
{"content": EXPECTED_FUNCTION_RESPONSE.to_json_dict()},
{"content": EXPECTED_FINAL_MODEL_RESPONSE.to_json_dict()},
],
},
"search_key": user_content.parts[0].text,
}
example_store.upsert_examples(examples=[example])
Substitua:
PROJECT_ID: o ID do projeto.
LOCATION: sua região. Somente
us-central1
é aceito.EXAMPLE_QUERY: a solicitação ou consulta do usuário ao LLM ou agente.
MODEL_NAME: o nome do modelo. Por exemplo,
gemini-2.0-flash
.FUNCTION_OR_FUNCTION_DECLARATION: a função ou declaração de função a ser usada na solicitação. Consulte a documentação do SDK do GenAI sobre chamadas de função para saber como definir uma função como uma ferramenta.
EXPECTED_FUNCTION_RESPONSE: a resposta da função esperada (um objeto
FunctionResponse
) para a chamada de função esperada. Consulte a documentação do SDK do GenAI sobre chamadas de função para ajudar a definir uma resposta de função.EXPECTED_FINAL_MODEL_RESPONSE: a resposta final esperada do modelo (um objeto
Content
) para a chamada e a resposta de função esperadas.
Fazer upload de um exemplo para corrigir uma resposta inesperada
Se o LLM não gerar a resposta como esperado, crie um exemplo com base na resposta corrigida. Isso ajuda o LLM a seguir o raciocínio esperado para solicitações subsequentes.
Use o exemplo a seguir para fazer upload de um exemplo com a resposta corrigida para a instância da loja de exemplo.
user_content = Content(
role="user",
parts=[Part(text="EXAMPLE_QUERY")],
)
example = {
"contents_example": {
"contents": [user_content.to_json_dict()],
"expected_contents": [
{"content": EXPECTED_FUNCTION_CALL.to_json_dict()},
{"content": EXPECTED_FUNCTION_RESPONSE.to_json_dict()},
{"content": EXPECTED_FINAL_MODEL_RESPONSE.to_json_dict()},
],
},
"search_key": user_content.parts[0].text,
}
example_store.upsert_examples(examples=[example])
Substitua:
EXAMPLE_QUERY: a solicitação ou consulta do usuário ao LLM ou agente.
EXPECTED_FUNCTION_CALL: a chamada de função esperada (um objeto
FunctionCall
) para a consulta do usuário fornecida. Consulte a documentação do SDK do GenAI sobre chamadas de função para ajudar a definir uma chamada de função.EXPECTED_FUNCTION_RESPONSE: a resposta da função esperada (um objeto
FunctionResponse
) para a chamada de função esperada. Consulte a documentação do SDK do GenAI sobre chamadas de função para ajudar a definir uma resposta de função.EXPECTED_FINAL_MODEL_RESPONSE: a resposta final esperada do modelo (um objeto
Content
) para a chamada e a resposta de função esperadas.
REST
Para fazer upload de um exemplo para uma instância do Example Store, envie uma solicitação POST
usando o
método
exampleStores.upsertExamples
.
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- PROJECT_ID: o ID do projeto.
- LOCATION: a região em que você quer criar a loja de exemplo. A única região com suporte é
us-central1
. - EXAMPLE_STORE_ID: o ID da instância da loja de exemplo para fazer upload do exemplo.
Método HTTP e URL:
POST https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/exampleStores/EXAMPLE_STORE_ID:upsertExamples
Corpo JSON da solicitação:
{ "examples": [ { "stored_contents_example": { "contents_example": { "contents": [ { "role": "user", "parts": [ { "text": "Is there a store in Mountain View, CA that I can visit to try the new Pixel 8 Pro?" } ] } ], "expected_contents": [ { "content": { "role": "model", "parts": [ { "text": ""Yes, there is a store located at 2000 N Shoreline Blvd, Mountain View, CA 94043, US." } ] } } ] }, "search_key_generation_method": { "last_entry": {} } } } ] }
Para enviar a solicitação, escolha uma destas opções:
curl
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/exampleStores/EXAMPLE_STORE_ID:upsertExamples"
PowerShell
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/exampleStores/EXAMPLE_STORE_ID:upsertExamples" | Select-Object -Expand Content
Você vai receber uma resposta JSON semelhante a esta, em que EXAMPLE_ID representa o ID numérico gerado para o exemplo.
A seguir
- Saiba como extrair exemplos.