Risposte di base per i modelli Gemini

In questa pagina vengono descritti due modi per fondare le risposte di un modello Vertex AI e ti mostra come far funzionare il grounding nei tuoi delle applicazioni che usano l'API di grounding.

Vertex AI ti consente di basare gli output del modello utilizzando i seguenti dati fonti:

  • 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 di recupero dinamico valuta se un prompt richiede conoscenze sugli eventi recenti e consente il grounding 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 il grounding:

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

Lingue supportate

  • Inglese (en)
  • Spagnolo (es)
  • Giapponese (ja)

Segui le istruzioni riportate di seguito per stabilire le basi di un modello con le risorse web disponibili pubblicamente e i dati di Google Cloud.

Recupero dinamico

Puoi utilizzare il recupero dinamico nella tua richiesta per scegliere quando disattivare il grounding con la Ricerca Google. È utile quando il prompt non richiede una risposta basata sulla Ricerca Google e modelli supportati possono fornire una risposta in base alla loro conoscenze senza basi. 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 della previsione è un valore in 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. Di conseguenza, un prompt che richiede basata sui fatti più recenti sul web, ha una previsione punteggio. Un prompt per il quale è sufficiente una risposta generata dal modello ha un punteggio di previsione inferiore.

    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ò basarsi sulle sue conoscenze e la risposta non richiede grounding
    "Consigliami un giocattolo per un bambino di 2 anni" 0,36 Il modello può basarsi sulle sue conoscenze e la risposta non richiede grounding
    "Puoi fornire una ricetta per un guacamole di ispirazione asiatica?" 0,55 La Ricerca Google può dare una risposta basata su dati, ma questa operazione non è strettamente necessaria; le conoscenze del modello potrebbero essere sufficienti
    "Che cos'è Agent Builder? Come viene fatturato 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 F1?" 0,97 Richiede la Ricerca Google per generare una risposta corretta
  • Soglia: nella richiesta puoi specificare un recupero dinamico configurazione con una soglia. La soglia è un valore in virgola mobile l'intervallo [0,1] e il valore predefinito è 0,7. Se il valore di soglia è zero, di risposta si basa sempre 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 grounding con la Ricerca Google.
    • Se il punteggio della previsione è inferiore alla soglia, il modello potrebbe generare la risposta, ma non si basa sulla Ricerca Google.

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

Considerazioni

  • Per utilizzare grounding con la Ricerca Google, devi attivare i suggerimenti di ricerca di Google. Scopri di più nella pagina dei suggerimenti per la Ricerca Google.

  • Per ottenere risultati ideali, utilizza una temperatura di 0.0. Per scoprire di più sull'impostazione di questa configurazione, consulta la richiesta dell'API Gemini corpo dal riferimento del modello.

  • Il grounding con la Ricerca Google ha un limite di un milione di query al giorno. Se hai bisogno di ulteriori informazioni, contatta il tuo team di assistenza.

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.
  • TEXT: Le istruzioni testuali da includere nel prompt.
  • DYNAMIC_THRESHOLD: un campo facoltativo per impostare la soglia per invocare la configurazione del recupero dinamico. È una rappresentazione in 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 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 base.
  4. Fai clic su Personalizza e imposta 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**.

Comprendere la risposta

Se il prompt del modello è basato correttamente sulla Ricerca Google da Vertex AI Studio o dall'API, le risposte includono metadati con 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 la bassa pertinenza della fonte o informazioni incomplete all'interno della 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 aggiuntive.

Le citazioni delle risposte dalle fonti della Ricerca Google devono essere mostrate sia in linea e in forma aggregata. Vedi l'immagine di seguito come suggerimento su come fare.

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 opzioni di ricerca alternative 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 tali servizi non della Ricerca Google o risultati associati vengano visualizzati separatamente dai risultati basati su dati e dai suggerimenti di ricerca e non possano essere ragionevolmente attribuiti a Google o confusi con i risultati forniti da Google.

Sfrutta Gemini per i 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.

Modelli supportati

I seguenti modelli supportano il grounding:

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

Prerequisiti

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

  1. Abilita Vertex AI Agent Builder e attiva l'API.
  2. Crea un'origine dati e un'app di Vertex AI Agent Builder.
  3. Collega il datastore all'app in Vertex AI Agent Builder. L'origine dati funge da per comprendere Gemini 1.0 Pro in Vertex AI.
  4. Abilita la versione Enterprise per il datastore.

Per saperne di più, consulta la pagina 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 data store 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 in un archivio dati in Vertex AI Agent Builder.

Se inizi da zero, devi preparare i dati per l'importazione in Vertex AI Agent Builder. Consulta Preparare i dati per l'importazione per iniziare. 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 di ricerca. Dopo aver creato correttamente un data store, 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 data store:

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

    Vai alla pagina Datastore

  2. Fai clic sul nome del tuo datastore.

  3. Nella pagina Dati del tuo datastore, recupera l'ID del datastore.

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, effettua 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 testuali 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": {
    "..."
  }
}

Comprendi la risposta basata sulla Ricerca Google

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

Python

Per scoprire come installare o aggiornare l'SDK Vertex AI per Python, consulta Installare l'SDK Vertex AI per Python. Per ulteriori informazioni, consulta 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 Risposte del modello a terra per abilitare la messa a terra.
  4. Fai clic su Personalizza e imposta Vertex AI Agent Builder come origine. Il percorso deve avere il seguente 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 IA generativa