Carica esempi

Dopo aver creato un'istanza di Example Store, puoi iniziare a creare e caricare esempi. Non esiste un limite al numero di esempi che puoi archiviare in un'istanza dell'archivio di esempi. Gli esempi diventano disponibili immediatamente dopo il caricamento nell'istanza dell'Example Store.

Ecco alcuni scenari in cui devi caricare esempi:

  • Le query non sono pertinenti agli esempi esistenti.

  • Il modello ha difficoltà con alcuni ragionamenti.

  • Gli esempi disponibili non coprono tutte le funzioni, i risultati o il ragionamento che ti aspetti.

Creando esempi pertinenti nel formato previsto, puoi ottenere i seguenti risultati:

  • Migliora la capacità dell'LLM di prestare attenzione agli esempi e utilizzarli, evitando modifiche impreviste ai pattern di risposta derivanti da piccole modifiche al prompt.

  • Ridurre il potenziale impatto negativo dell'aggiunta di esempi per query non pertinenti.

  • L'LLM funziona come previsto per query simili.

Se il LLM mostra un comportamento o un ragionamento inatteso, puoi caricare una risposta corretta per guidare il modello a seguire il pattern o il ragionamento previsto nelle richieste successive.

Gli esempi in questa pagina ti consentono di creare esempi basati sull'output dell'LLM. La creazione di esempi basati sull'output di un modello LLM presenta i seguenti vantaggi rispetto alla creazione manuale di esempi:

  • La creazione di esempi basati sull'output previsto dell'LLM richiede meno interventi manuali.

  • Creando esempi basati sul comportamento imprevisto degli LLM, puoi correggere direttamente i casi di errore.

  • Puoi creare esempi basati sulle risposte di modelli con un buon rendimento per migliorare il comportamento di altri modelli. Ad esempio, se Gemini 1.5 Pro fornisce risposte migliori rispetto a Gemini 1.5 Flash, ma con una latenza maggiore, puoi creare esempi utilizzando queste risposte per ottenere prestazioni simili a latenze inferiori utilizzando Gemini 1.5 Flash.

Utilizzare esempi per migliorare le prestazioni delle chiamate di funzione

Puoi utilizzare esempi few-shot per migliorare le prestazioni della chiamata di funzione dimostrando quanto segue: * Quando viene richiamata una determinata funzione.

  • Come estrarre gli argomenti da utilizzare nella chiamata di funzione.

  • Come risponde il modello in base alla risposta restituita dalla funzione o da più funzioni in caso di ragionamento in più passaggi.

Per saperne di più sulla chiamata di funzione, consulta la documentazione sulla chiamata di funzione.

Prerequisiti

Prima di utilizzare gli esempi Python in questa pagina, devi installare e inizializzare l'SDK Vertex AI per Python per Example Store nel tuo ambiente Python locale.

  1. Esegui il seguente comando per installare l'SDK Vertex AI Python per Example Store.

    pip install --upgrade google-cloud-aiplatform>=1.87.0
  2. Utilizza il seguente esempio di codice per importare e inizializzare l'SDK per Example Store.

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

    Sostituisci quanto segue:

    • PROJECT_ID: il tuo ID progetto.

    • LOCATION: La tua regione. È supportato solo us-central1.

Carica esempi

Utilizza i seguenti esempi per caricare esempi in un'istanza di Example Store. Puoi caricare un massimo di cinque esempi per richiesta.

Python

I seguenti esempi ti consentono di migliorare il comportamento dell'LLM e le prestazioni delle chiamate di funzione creando e caricando esempi in un'istanza di Example Store, utilizzando le risposte ricevute da un LLM. Prima di utilizzare gli esempi riportati di seguito, assicurati di aver svolto le seguenti operazioni:

Carica un esempio basato su una risposta prevista

Utilizza l'esempio seguente per creare e caricare un esempio in uno scenario in cui la risposta dell'LLM è nel formato previsto. Questo esempio ti consente di inviare una richiesta, creare un esempio in base alla risposta e poi caricarlo in un'istanza dell'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])

Sostituisci quanto segue:

  • PROJECT_ID: il tuo ID progetto.

  • LOCATION: La tua regione. È supportato solo us-central1.

  • EXAMPLE_QUERY: la richiesta o la query dell'utente all'LLM o all'agente.

  • MODEL_NAME: il nome del modello. Ad esempio, gemini-2.0-flash.

  • FUNCTION_OR_FUNCTION_DECLARATION: la funzione o la dichiarazione di funzione da utilizzare nella richiesta. Consulta la documentazione dell'SDK GenAI per la chiamata di funzioni per ricevere assistenza nella definizione di una funzione come strumento.

  • EXPECTED_FUNCTION_RESPONSE: la risposta alla funzione prevista (un oggetto FunctionResponse) per la chiamata di funzione prevista. Consulta la documentazione dell'SDK GenAI per la chiamata di funzioni per ricevere assistenza nella definizione di una risposta della funzione.

  • EXPECTED_FINAL_MODEL_RESPONSE: la risposta finale prevista del modello (un oggetto Content) per la chiamata di funzione e la risposta previste.

Caricare un esempio per correggere una risposta imprevista

Se l'LLM non genera la risposta come previsto, puoi creare un esempio basato sulla risposta corretta. In questo modo, il modello LLM segue il ragionamento previsto per le richieste successive.

Utilizza il seguente esempio per caricare un esempio con la risposta corretta nell'istanza dell'Example Store.

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])

Sostituisci quanto segue:

REST

Per caricare un campione in un'istanza di Example Store, invia una richiesta POST utilizzando il metodo exampleStores.upsertExamples.

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

  • PROJECT_ID: il tuo ID progetto.
  • LOCATION: La regione in cui vuoi creare lo store di esempio. L'unica regione supportata è us-central1.
  • EXAMPLE_STORE_ID: l'ID dell'istanza di Example Store in cui vuoi caricare l'esempio.

Metodo HTTP e URL:

POST https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/exampleStores/EXAMPLE_STORE_ID:upsertExamples

Corpo JSON della richiesta:

{
  "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": {}
              }
          }
      }
  ]
}

Per inviare la richiesta, scegli una di queste opzioni:

curl

Salva il corpo della richiesta in un file denominato request.json, quindi esegui il comando seguente:

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

Salva il corpo della richiesta in un file denominato request.json, quindi esegui il comando seguente:

$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

Dovresti ricevere una risposta JSON simile alla seguente, in cui EXAMPLE_ID rappresenta l'ID numerico generato per l'esempio.

Passaggi successivi