Basamento delle risposte per i modelli Gemini

Questa pagina descrive due modi per basare le risposte di un modello su Vertex AI e mostra come applicare la funzionalità di grounding alle tue applicazioni utilizzando l'API di grounding.

Vertex AI ti consente di basare le uscite del modello utilizzando le seguenti fonti di dati:

  • Ricerca Google: basa le risposte sull'utilizzo di dati web disponibili pubblicamente.
  • I tuoi dati: basa le risposte utilizzando i tuoi dati di Vertex AI Search (anteprima).

Grounding con la Ricerca Google

Utilizza il grounding con la Ricerca Google se vuoi collegare il modello alle conoscenze del mondo, a un'ampia gamma possibile di argomenti o a informazioni aggiornate su internet.

La funzionalità di ancoraggio con la Ricerca Google supporta il recupero dinamico che ti offre la possibilità di generare risposte basate su fatti con la Ricerca Google solo quando necessario. Pertanto, la configurazione del recupero dinamico valuta se un prompt richiede conoscenza di eventi recenti e attiva la funzionalità di ancoraggio con la Ricerca Google. Per ulteriori informazioni, consulta Ricerca dinamica.

Per scoprire di più sul grounding dei modelli in Vertex AI, consulta la Panoramica del grounding.

Modelli supportati

I seguenti modelli supportano la messa a terra:

  • Gemini 1.5 Pro solo con input di testo
  • Gemini 1.5 Flash con solo input di testo
  • Gemini 1.0 Pro solo con input di testo
  • Gemini 2.0 Flash

Lingue supportate

Per un elenco delle lingue supportate, consulta Lingue.

Segui le istruzioni riportate di seguito per basare un modello su dati web disponibili pubblicamente.

Recupero dinamico

Puoi utilizzare il recupero dinamico nella tua richiesta per scegliere quando disattivare il grounding con la Ricerca Google. Questa opzione è utile quando il prompt non richiede una risposta basata sulla Ricerca Google e i modelli supportati possono fornire una risposta in base alle loro conoscenze senza alcuna base. In questo modo puoi gestire la latenza, la qualità e il costo in modo più efficace.

Prima di richiamare la configurazione di recupero dinamico nella richiesta, comprendere la seguente terminologia:

  • Punteggio di previsione: quando richiedi una risposta basata su dati, Vertex AI assegna un punteggio di previsione al prompt. Il punteggio di previsione è un valore con virgola mobile nell'intervallo [0,1]. Il suo valore dipende dal fatto che il prompt possa trarre vantaggio dalla fondazione della risposta con le informazioni più aggiornate della Ricerca Google. Pertanto, un prompt che richiede una risposta basata sui fatti più recenti sul web ha un punteggio di previsione più elevato. Un prompt per il quale è sufficiente una risposta generata dal modello ha un punteggio di previsione più basso.

    Ecco alcuni esempi di prompt e i relativi punteggi di previsione.

    Prompt Punteggio di previsione Commento
    "Scrivi una poesia sulle peonie" 0,13 Il modello può fare affidamento sulle sue conoscenze e la risposta non richiede grounding
    "Consigliami un giocattolo per un bambino di 2 anni" 0,36 Il modello può fare affidamento sulle sue conoscenze e la risposta non richiede grounding
    "Puoi darmi la ricetta di un guacamole di ispirazione asiatica?" 0,55 La Ricerca Google può dare una risposta basata su dati, ma il grounding non è strettamente necessario; le conoscenze del modello potrebbero essere sufficienti
    "Che cos'è Agent Builder? Come viene addebitato il grounding in Agent Builder?" 0,72 Richiede che la Ricerca Google generi una risposta ben fondata
    "Chi ha vinto l'ultimo Gran Premio di Formula 1?" 0,97 Richiede che la Ricerca Google generi una risposta ben fondata
  • Soglia: nella richiesta, puoi specificare una configurazione di recupero dinamico con una soglia. La soglia è un valore a virgola mobile nell'intervallo [0,1] e il valore predefinito è 0,7. Se il valore della soglia è zero, la risposta è sempre basata sulla Ricerca Google. Per tutti gli altri valori della soglia, si applica quanto segue:

    • Se il punteggio di previsione è maggiore o uguale alla soglia, la risposta si basa sulla Ricerca Google. Una soglia più bassa implica che più prompt hanno risposte generate utilizzando il Grounding con la Ricerca Google.
    • Se il punteggio di previsione è inferiore alla soglia, il modello potrebbe comunque generare la risposta, ma non è basato sulla Ricerca Google.

Per trovare una soglia adatta alle esigenze della tua attività, puoi creare un insieme rappresentativo di query che prevedi di trovare. Poi puoi ordinare le query in base al punteggio di previsione nella risposta e selezionare una buona soglia per il tuo caso d'uso.

Considerazioni

  • Per utilizzare il grounding con la Ricerca Google, devi attivare i suggerimenti della Ricerca Google. Scopri di più sui suggerimenti della Ricerca Google.

  • Per risultati ottimali, utilizza una temperatura di 0.0. Per scoprire di più su come impostare questa configurazione, consulta il corpo della richiesta dell'API Gemini nel riferimento del modello.

  • La funzionalità di grounding con la Ricerca Google ha un limite di un milione di query al giorno. Se hai bisogno di effettuare altre query, contatta l'assistenza Google Cloud.

  • Solo i modelli Gemini 1.0 e Gemini 1.5 supportano il recupero dinamico. I modelli Gemini 2.0 non supportano il recupero dinamico.

REST

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

  • LOCATION: la regione in cui elaborare la richiesta.
  • PROJECT_ID: il tuo ID progetto.
  • MODEL_ID: l'ID del modello multimodale. Solo i modelli Gemini 1.0 e Gemini 1.5 supportano il recupero dinamico. I modelli Gemini 2.0 non supportano il recupero dinamico.
  • TEXT: le istruzioni di testo da includere nel prompt.
  • DYNAMIC_THRESHOLD: un campo facoltativo per impostare la soglia per invocare la configurazione del recupero dinamico. È un valore a virgola mobile compreso nell'intervallo [0,1]. Se non imposti il campo dynamicThreshold, il valore predefinito della soglia è 0,7.

Metodo HTTP e URL:

POST https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:generateContent

Corpo JSON della richiesta:

{
  "contents": [{
    "role": "user",
    "parts": [{
      "text": "TEXT"
    }]
  }],
  "tools": [{
    "googleSearchRetrieval": {
      "dynamicRetrievalConfig": {
        "mode": "MODE_DYNAMIC",
        "dynamicThreshold": DYNAMIC_THRESHOLD
      }
    }
  }],
  "model": "projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID"
}

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

{
   "candidates": [
     {
       "content": {
         "role": "model",
         "parts": [
           {
             "text": "Chicago weather changes rapidly, so layers let you adjust easily. Consider a base layer, a warm mid-layer (sweater-fleece), and a weatherproof outer layer."
           }
         ]
       },
       "finishReason": "STOP",
       "safetyRatings":[
       "..."
    ],
       "groundingMetadata": {
         "webSearchQueries": [
           "What's the weather in Chicago this weekend?"
         ],
         "searchEntryPoint": {
            "renderedContent": "....................."
         }
         "groundingSupports": [
            {
              "segment": {
                "startIndex": 0,
                "endIndex": 65,
                "text": "Chicago weather changes rapidly, so layers let you adjust easily."
              },
              "groundingChunkIndices": [
                0
              ],
              "confidenceScores": [
                0.99
              ]
            },
          ]
          "retrievalMetadata": {
              "webDynamicRetrievalScore": 0.96879
            }
       }
     }
   ],
   "usageMetadata": { "..."
   }
 }

Console

Per utilizzare il grounding con la Ricerca Google con Vertex AI Studio, segui questi passaggi:

  1. Nella console Google Cloud, vai alla pagina Vertex AI Studio.

    Vai a Vertex AI Studio

  2. Fai clic sulla scheda Forma libera.
  3. Nel riquadro laterale, fai clic sul pulsante di attivazione/disattivazione Risposte del modello di riferimento.
  4. Fai clic su Personalizza e imposta la Ricerca Google come origine.
  5. Inserisci il prompt nella casella di testo e fai clic su Invia.

Le risposte rapide ora si basano sulla Ricerca Google.

Python

Per scoprire come installare o aggiornare l'SDK Vertex AI per Python, consulta Installare l'SDK Vertex AI per Python. Per saperne di più, consulta la documentazione di riferimento dell'API Python.

import vertexai

from vertexai.generative_models import (
    GenerationConfig,
    GenerativeModel,
    Tool,
    grounding,
)

# TODO(developer): Update and un-comment below line
# PROJECT_ID = "your-project-id"
vertexai.init(project=PROJECT_ID, location="us-central1")

model = GenerativeModel("gemini-1.5-flash-001")

# Use Google Search for grounding
tool = Tool.from_google_search_retrieval(grounding.GoogleSearchRetrieval())

prompt = "When is the next total solar eclipse in US?"
response = model.generate_content(
    prompt,
    tools=[tool],
    generation_config=GenerationConfig(
        temperature=0.0,
    ),
)

print(response.text)
# Example response:
# The next total solar eclipse visible from the contiguous United States will be on **August 23, 2044**.

Informazioni sulla risposta

Se il prompt del modello si basa correttamente sulla Ricerca Google da Vertex AI Studio o dall'API, le risposte includono metadati con link di origine (URL web). Tuttavia, esistono diversi motivi per cui questi metadati potrebbero non essere forniti e la risposta al prompt non sarà basata su dati. Questi motivi includono una bassa rilevanza della fonte o informazioni incomplete nella risposta del modello.

Citazioni

Ti consigliamo vivamente di mostrare le citazioni. Aiutano gli utenti a convalidare le risposte dei publisher stessi e offrono opportunità di apprendimento ulteriore.

Le citazioni per le risposte provenienti dalle fonti della Ricerca Google devono essere mostrate sia in linea sia in forma aggregata. Guarda l'immagine seguente come suggerimento su come procedere.

Esempi di citazioni

Utilizzo di opzioni di motori di ricerca alternativi

L'utilizzo della funzionalità di ancoraggio con la Ricerca Google da parte del Cliente non gli impedisce di offrire opzioni di motori di ricerca alternativi, di impostare le opzioni di ricerca alternativa come opzione predefinita per le Applicazioni del Cliente o di mostrare suggerimenti di ricerca o risultati di ricerca propri o di terze parti nelle Applicazioni del Cliente, a condizione che questi servizi o risultati associati non appartenenti alla Ricerca Google vengano visualizzati separatamente dai risultati basati su dati e dai suggerimenti di ricerca e non possano essere ragionevolmente attribuiti o confusi con i risultati forniti da Google.

Collegare Gemini ai tuoi dati

Questa sezione mostra come eseguire il grounding delle risposte di testo in un datastore di Vertex AI Agent Builder utilizzando l'API Vertex AI. Non puoi specificare un datastore di ricerca del sito web come origine di riferimento.

Modelli supportati

I seguenti modelli supportano la messa a terra:

  • Gemini 1.5 Pro solo con input di testo
  • Gemini 1.5 Flash con solo input di testo
  • Gemini 1.0 Pro solo con input di testo
  • Gemini 2.0 Flash

Prerequisiti

Esistono prerequisiti necessari prima di poter basare l'output del modello sui tuoi dati.

  1. Attiva Vertex AI Agent Builder e attiva l'API.
  2. Crea un'app e un'origine dati Vertex AI Agent Builder.
  3. Collega il tuo datastore all'app in Vertex AI Agent Builder. La fonte di dati costituisce la base per la definizione della validità di Gemini 1.0 Pro in Vertex AI. Non puoi specificare un datastore di ricerca del sito web come origine di ancoraggio.
  4. Attiva la versione Enterprise per il tuo datastore.

Per saperne di più, consulta l'Introduzione a Vertex AI Search.

Attiva Vertex AI Agent Builder

  1. Nella console Google Cloud, vai alla pagina Agent Builder.

    Agent Builder

  2. Leggi e accetta i Termini di servizio, quindi fai clic su Continua e attiva l'API.

Vertex AI Agent Builder è disponibile nella località global o nelle regioni multiple eu e us. Per approfondire, consulta le località di Vertex AI Agent Builder

Creare un datastore in Vertex AI Agent Builder

Per eseguire il grounding dei modelli sui dati di origine, devi aver preparato e salvato i dati in Vertex AI Search. Per farlo, devi creare un datastore in Vertex AI Agent Builder.

Se parti da zero, devi preparare i dati per l'importazione in Vertex AI Agent Builder. Per iniziare, consulta Preparare i dati per l'importazione. A seconda delle dimensioni dei dati, l'importazione può richiedere da alcuni minuti a diverse ore. Per l'aggiornamento sono supportati solo gli archivi di dati non strutturati.

Dopo aver preparato i dati per l'importazione, puoi creare un datastore per la ricerca. Dopo aver creato correttamente un datastore, crea un'app di ricerca da collegare e attiva la versione Enterprise.

Esempio: collega a terra il modello Gemini 1.5 Flash

Segui le istruzioni riportate di seguito per basare un modello sui tuoi dati.

Se non conosci l'ID del tuo datastore:

  1. Nella console Google Cloud, vai alla pagina Agent Builder di Vertex AI e nel menu di navigazione fai clic su Data store.

    Vai alla pagina Datastore

  2. Fai clic sul nome del tuo datastore.

  3. Nella pagina Dati del tuo datastore, ottieni l'ID del datastore. Non puoi specificare un datastore di ricerca del sito web come origine di riferimento.

REST

Per testare un prompt di testo utilizzando l'API Vertex AI, invia una richiesta POST all'endpoint del modello del publisher.

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

  • LOCATION: la regione in cui elaborare la richiesta.
  • PROJECT_ID: il tuo ID progetto.
  • MODEL_ID: l'ID del modello multimodale.
  • TEXT: le istruzioni di testo da includere nel prompt.

Metodo HTTP e URL:

POST https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:generateContent

Corpo JSON della richiesta:

{
  "contents": [{
    "role": "user",
    "parts": [{
      "text": "TEXT"
    }]
  }],
  "tools": [{
    "retrieval": {
      "vertexAiSearch": {
        "datastore": projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID
      }
    }
  }],
  "model": "projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID"
}

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

{
  "candidates": [
    {
      "content": {
        "role": "model",
        "parts": [
          {
            "text": "You can make an appointment on the website https://dmv.gov/"
          }
        ]
      },
      "finishReason": "STOP",
      "safetyRatings": [
        "..."
      ],
      "groundingMetadata": {
        "retrievalQueries": [
          "How to make appointment to renew driving license?"
        ],
        "groundingChunks": [
          {
            "retrievedContext": {
              "uri": "https://vertexaisearch.cloud.google.com/grounding-api-redirect/AXiHM.....QTN92V5ePQ==",
              "title": "dmv"
            }
          }
        ],
        "groundingSupport": [
          {
            "segment": {
              "startIndex": 25,
              "endIndex": 147
            },
            "segment_text": "ipsum lorem ...",
            "supportChunkIndices": [1, 2],
            "confidenceScore": [0.9541752, 0.97726375]
          },
          {
            "segment": {
              "startIndex": 294,
              "endIndex": 439
            },
            "segment_text": "ipsum lorem ...",
            "supportChunkIndices": [1],
            "confidenceScore": [0.9541752, 0.9325467]
          }
        ]
      }
    }
  ],
  "usageMetadata": {
    "..."
  }
}

Comprendere la risposta basata sulla Ricerca Google

Quando viene generato un risultato basato su fatti, i metadati contengono un URI che reindirizza all'editore dei contenuti utilizzati per generare il risultato basato su fatti. I metadati contengono anche il dominio del publisher. Gli URI forniti rimangono accessibili per 30 giorni dopo la generazione del risultato basato su dati.

Python

Per scoprire come installare o aggiornare l'SDK Vertex AI per Python, consulta Installare l'SDK Vertex AI per Python. Per saperne di più, consulta la documentazione di riferimento dell'API Python.

import vertexai

from vertexai.preview.generative_models import (
    GenerationConfig,
    GenerativeModel,
    Tool,
    grounding,
)

# TODO(developer): Update and un-comment below lines
# PROJECT_ID = "your-project-id"
# data_store_id = "your-data-store-id"

vertexai.init(project=PROJECT_ID, location="us-central1")

model = GenerativeModel("gemini-1.5-flash-001")

tool = Tool.from_retrieval(
    grounding.Retrieval(
        grounding.VertexAISearch(
            datastore=data_store_id,
            project=PROJECT_ID,
            location="global",
        )
    )
)

prompt = "How do I make an appointment to renew my driver's license?"
response = model.generate_content(
    prompt,
    tools=[tool],
    generation_config=GenerationConfig(
        temperature=0.0,
    ),
)

print(response.text)

Console

Per eseguire il grounding dell'output del modello in Vertex AI Agent Builder utilizzando Vertex AI Studio nella console Google Cloud:

  1. Nella console Google Cloud, vai alla pagina Vertex AI Studio.

    Vai a Vertex AI Studio

  2. Fai clic sulla scheda Forma libera.
  3. Nel riquadro laterale, fai clic sul pulsante di attivazione/disattivazione Basa le risposte del modello su fatti per attivare la funzionalità.
  4. Fai clic su Personalizza e imposta Vertex AI Agent Builder come origine. Il percorso deve seguire questo formato: projects/project_id/locations/global/collections/default_collection/dataStores/data_store_id.
  5. Inserisci il prompt nella casella di testo e fai clic su Invia.

Le risposte ai prompt ora si basano su Vertex AI Agent Builder.

Altre risorse di AI generativa