Depois de criar uma instância do Example Store, você pode começar a criar e fazer upload de exemplos. Não há limite para o número de exemplos que podem ser armazenados em uma instância do Example Store. Os exemplos ficam disponíveis imediatamente após o upload para a instância do Example Store.
Alguns cenários em que você precisaria fazer upload de exemplos incluem o seguinte:
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:
Melhorar 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.
Reduzir o possível impacto negativo da adição de exemplos para consultas irrelevantes.
O LLM funciona conforme o esperado para 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 criar exemplos com base na saída do LLM. A criação de 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.
É possível criar exemplos com base em respostas de modelos de bom desempenho para melhorar o comportamento de outros modelos. Por exemplo, se o Gemini 1.5 Pro fornecer respostas melhores do que o Gemini 1.5 Flash, mas com maior latência, você poderá criar exemplos usando essas respostas para alcançar um desempenho semelhante com latências mais baixas usando o Gemini 1.5 Flash.
Usar exemplos para melhorar a performance da chamada de função
É possível usar exemplos de poucos disparos para melhorar a performance 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 por várias funções em caso de raciocínio em várias etapas.
Para saber mais sobre a chamada de função, consulte a documentação de chamada de função.
Pré-requisitos
Antes de usar os exemplos do Python nesta página, instale e inicialize o SDK da plataforma do agente para o Example Store no ambiente Python local.
Execute o comando a seguir para instalar o SDK da plataforma do agente para o Example Store.
pip install --upgrade google-cloud-aiplatform>=1.87.0Use o exemplo de código a seguir para importar e inicializar o SDK do 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é compatível.
Fazer upload de exemplos
Use os exemplos a seguir para fazer upload de exemplos para uma instância do Example Store. É possível fazer upload de até cinco exemplos por solicitação.
Python
Os exemplos a seguir permitem melhorar o comportamento do LLM e a performance 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 em Instalar as bibliotecas de cliente e configurar a autenticação usando o Application Default Credentials.
Para mais informações, consulte a documentação de referência da API Python da plataforma do agente.
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 do exemplo 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 = genai_types.Content(
role="user",
parts=[genai_types.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é compatível.EXAMPLE_QUERY: a solicitação ou consulta do usuário para o 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 da GenAI para chamada de função para receber ajuda na definição de uma função como uma ferramenta.
EXPECTED_FUNCTION_RESPONSE: a resposta de função esperada (um objeto
FunctionResponse) para a chamada de função esperada. Consulte a documentação do SDK da GenAI para chamada de função para receber ajuda na definição de uma resposta de função.EXPECTED_FINAL_MODEL_RESPONSE: a resposta final esperada do modelo (um objeto
Content) para a chamada e resposta de função esperadas.
Fazer upload de um exemplo para corrigir uma resposta inesperada
Se o LLM não gerar a resposta conforme o esperado, você poderá criar 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 do Example Store.
user_content = genai_types.Content(
role="user",
parts=[genai_types.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 para o 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 da GenAI para chamada de função para receber ajuda na definição de uma chamada de função.EXPECTED_FUNCTION_RESPONSE: a resposta de função esperada (um objeto
FunctionResponse) para a chamada de função esperada. Consulte a documentação do SDK da GenAI para chamada de função para receber ajuda na definição de uma resposta de função.EXPECTED_FINAL_MODEL_RESPONSE: a resposta final esperada do modelo (um objeto
Content) para a chamada e resposta de função esperadas.
REST
Para fazer upload de um exemplo para uma instância do Example Store, envie uma POST solicitação usando o
exampleStores.upsertExamples
método.
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 o example
store. A única região compatível é
us-central1. - EXAMPLE_STORE_ID: o ID da instância do Example Store em que você quer 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ê receberá uma resposta JSON semelhante à seguinte, em que EXAMPLE_ID representa o ID numérico gerado para o exemplo.
A seguir
- Aprenda a recuperar exemplos.