Carregue exemplos

Depois de criar uma instância da loja de exemplo, pode começar a criar e carregar exemplos para a mesma. Não existe um número limite de exemplos que pode armazenar numa instância da loja de exemplos. Os exemplos ficam disponíveis imediatamente após o carregamento para a instância da loja de exemplos.

Seguem-se alguns cenários em que tem de carregar exemplos:

  • As consultas são irrelevantes para os exemplos existentes.

  • O modelo tem dificuldades com algum raciocínio.

  • Os exemplos disponíveis não abrangem todas as funções, resultados ou raciocínios que espera.

Ao criar exemplos relevantes no formato esperado, pode alcançar o seguinte:

  • Melhorar a capacidade do MDG de prestar atenção aos exemplos e usá-los, evitando alterações inesperadas aos padrões de resposta resultantes de pequenas alterações ao comando.

  • Reduzir o potencial impacto negativo da adição de exemplos para consultas irrelevantes.

  • O MDG tem o desempenho esperado para consultas semelhantes.

Se o MDG apresentar um comportamento ou um raciocínio inesperado, pode carregar uma resposta corrigida para orientar o modelo a seguir o padrão ou o raciocínio esperado em pedidos subsequentes.

Os exemplos nesta página permitem-lhe criar exemplos com base na saída do GML. A criação de exemplos com base na saída de um MDG tem as seguintes vantagens em relação à criação manual de exemplos:

  • A criação de exemplos com base no resultado esperado do MDI/CE envolve menos esforço manual.

  • Ao criar exemplos baseados no comportamento inesperado do MDI/CE, pode corrigir diretamente casos de falha.

  • 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 fornecer melhores respostas do que o Gemini 1.5 Flash, mas com uma latência mais elevada, pode criar exemplos com essas respostas para alcançar um desempenho semelhante com latências mais baixas usando o Gemini 1.5 Flash.

Use exemplos para melhorar o desempenho das chamadas de funções

Pode usar exemplos de poucos disparos para melhorar o desempenho da chamada de funções, demonstrando o seguinte: * Quando uma função específica é invocada.

  • Como extrair os argumentos a usar na chamada de função.

  • Como o modelo responde com base na resposta devolvida pela função ou por várias funções no caso do raciocínio de vários passos.

Para saber mais sobre a Chamada de funções, consulte a documentação da Chamada de funções.

Pré-requisitos

Antes de usar os exemplos de Python nesta página, tem de instalar e inicializar o SDK do Vertex AI para Python para a Example Store no seu ambiente Python local.

  1. Execute o seguinte comando para instalar o SDK Vertex AI para Python para a Example Store.

    pip install --upgrade google-cloud-aiplatform>=1.87.0
  2. Use o seguinte exemplo de código para importar e inicializar o SDK para a loja de exemplo.

    import vertexai
    from vertexai.preview import example_stores
    
    vertexai.init(
      project="PROJECT_ID",
      location="LOCATION"
    )
    

    Substitua o seguinte:

    • PROJECT_ID: o ID do seu projeto.

    • LOCATION: a sua região. Apenas us-central1 é suportado.

Carregue exemplos

Use os seguintes exemplos para carregar exemplos para uma instância da loja de exemplo. Pode carregar um máximo de cinco exemplos por pedido.

Python

Os seguintes exemplos permitem-lhe melhorar o comportamento do MDG e o desempenho da chamada de funções criando e carregando exemplos para uma instância da Example Store, usando respostas recebidas de um MDG. Antes de usar os exemplos seguintes, certifique-se de que fez o seguinte:

Carregue um exemplo com base numa resposta esperada

Use o exemplo seguinte para criar e carregar uma amostra num cenário em que a resposta do MDI/CE está no formato esperado. Este exemplo permite-lhe enviar um pedido, criar um exemplo com base na resposta e, em seguida, carregar o exemplo para uma instância da 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 o seguinte:

  • PROJECT_ID: o ID do seu projeto.

  • LOCATION: a sua região. Apenas us-central1 é suportado.

  • EXAMPLE_QUERY: o pedido ou a consulta do utilizador ao GML ou ao agente.

  • MODEL_NAME: o nome do modelo. Por exemplo, gemini-2.0-flash.

  • FUNCTION_OR_FUNCTION_DECLARATION: a função ou a declaração de função a usar no pedido. Consulte a documentação do SDK de IA gen para a Chamada de funções para obter ajuda na definição de uma função como ferramenta.

  • EXPECTED_FUNCTION_RESPONSE: a resposta esperada da função (um FunctionResponseobjeto) para a chamada de função esperada. Consulte a documentação do SDK de IA gen para a Chamada de funções para obter 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 a resposta da função esperadas.

Carregue um exemplo para corrigir uma resposta inesperada

Se o GML não gerar a resposta conforme esperado, pode criar um exemplo com base na resposta corrigida. Isto ajuda o GML a seguir o raciocínio esperado para pedidos subsequentes.

Use o seguinte exemplo para carregar 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 o seguinte:

REST

Para carregar um exemplo para uma instância da loja de exemplos, envie um pedido POST através do método exampleStores.upsertExamples.

Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:

  • PROJECT_ID: o ID do seu projeto.
  • LOCATION: a região onde quer criar a loja de exemplo. A única região suportada é us-central1.
  • EXAMPLE_STORE_ID: o ID da instância da loja de exemplo onde quer carregar o 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 do pedido:

{
  "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 o seu pedido, escolha uma destas opções:

curl

Guarde o corpo do pedido num ficheiro com o nome request.json, e execute o seguinte comando:

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

Guarde o corpo do pedido num ficheiro com o nome request.json, e execute o seguinte comando:

$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

Deve receber uma resposta JSON semelhante à seguinte, em que EXAMPLE_ID representa o ID numérico gerado para o exemplo.

O que se segue?