Terreno con la Ricerca Google

Questa pagina spiega come basare le risposte di un modello utilizzando la Ricerca Google, che utilizza dati web di dominio pubblico.

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

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. Pertanto, la configurazione del recupero dinamico valuta se un prompt richiede la conoscenza di eventi recenti e attiva il grounding con la Ricerca Google. Per ulteriori informazioni, consulta la sezione Riempimento dinamico.

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

Modelli supportati

Questa sezione elenca i modelli che supportano il grounding con la Ricerca. Per scoprire in che modo ogni modello genera risposte basate su dati, segui queste istruzioni:

  1. Prova un modello elencato in questa tabella nella console Google Cloud.

  2. Fai clic sul pulsante di attivazione/disattivazione Collegamento a terra per impostarlo su On.

Modello Descrizione Prova un modello
Gemini 1.5 Pro
Solo input di testo Prova il modello Gemini 1.5 Pro
Gemini 1.5 Flash
Solo input di testo Prova il modello Gemini 1.5 Flash
Gemini 1.0 Pro
Solo input di testo Prova il modello Gemini 1.0 Pro
Gemini 2.0 Flash

Testo, codice, immagini, audio, video, video con audio, PDF

Non supporta il recupero dinamico. Per ulteriori informazioni, consulta la sezione Considerazioni.

Prova il modello 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 compreso nell'intervallo [0,1]. Il suo valore dipende dal fatto che il prompt possa beneficiare della fondazione della risposta con le informazioni più aggiornate della Ricerca Google. Pertanto, un prompt che richiede una risposta basata su 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 la verifica della fondatezza non è strettamente necessaria; 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 ulteriori informazioni, contatta l'assistenzaGoogle 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.

Gen AI SDK for Python

Scopri come installare o aggiornare Gen AI SDK for Python.

Per saperne di più, consulta la documentazione di riferimento dell'SDK.

Imposta le variabili di ambiente per utilizzare l'SDK di IA generativa con Vertex AI:

# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values
# with appropriate values for your project.
export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT
export GOOGLE_CLOUD_LOCATION=us-central1
export GOOGLE_GENAI_USE_VERTEXAI=True

from google import genai
from google.genai.types import (
    GenerateContentConfig,
    GoogleSearch,
    HttpOptions,
    Tool,
)

client = genai.Client(http_options=HttpOptions(api_version="v1"))

response = client.models.generate_content(
    model="gemini-2.0-flash-001",
    contents="When is the next total solar eclipse in the United States?",
    config=GenerateContentConfig(
        tools=[
            # Use Google Search Tool
            Tool(google_search=GoogleSearch())
        ],
    ),
)

print(response.text)
# Example response:
# 'The next total solar eclipse in the United States will occur on ...'

SDK Vertex AI per 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 la Documentazione di riferimento dell'API Vertex AI SDK per 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(
        # Optional: For Dynamic Retrieval
        dynamic_retrieval_config=grounding.DynamicRetrievalConfig(
            dynamic_threshold=0.7,
        )
    )
)

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**.

Node.js

Prima di provare questo esempio, segui le istruzioni di configurazione Node.js riportate nella guida rapida all'utilizzo delle librerie client di Vertex AI. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Node.js di Vertex AI.

Per autenticarti a Vertex AI, configura le credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

const {VertexAI} = require('@google-cloud/vertexai');

/**
 * TODO(developer): Update these variables before running the sample.
 */
async function generateContentWithGoogleSearchGrounding(
  projectId = 'PROJECT_ID',
  location = 'us-central1',
  model = 'gemini-1.5-flash-001'
) {
  // Initialize Vertex with your Cloud project and location
  const vertexAI = new VertexAI({project: projectId, location: location});

  const generativeModelPreview = vertexAI.preview.getGenerativeModel({
    model: model,
    generationConfig: {maxOutputTokens: 256},
  });

  const googleSearchRetrievalTool = {
    googleSearchRetrieval: {},
  };

  const request = {
    contents: [{role: 'user', parts: [{text: 'Why is the sky blue?'}]}],
    tools: [googleSearchRetrievalTool],
  };

  const result = await generativeModelPreview.generateContent(request);
  const response = await result.response;
  const groundingMetadata = response.candidates[0].groundingMetadata;
  console.log(
    'Response: ',
    JSON.stringify(response.candidates[0].content.parts[0].text)
  );
  console.log('GroundingMetadata is: ', JSON.stringify(groundingMetadata));
}

C#

Prima di provare questo esempio, segui le istruzioni di configurazione C# riportate nella guida rapida all'utilizzo delle librerie client di Vertex AI. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API C# di Vertex AI.

Per autenticarti a Vertex AI, configura le credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.


using Google.Cloud.AIPlatform.V1;
using System;
using System.Threading.Tasks;

public class GroundingWebSample
{
    public async Task<string> GenerateTextWithGroundingWeb(
        string projectId = "your-project-id",
        string location = "us-central1",
        string publisher = "google",
        string model = "gemini-1.5-flash-001"
    )
    {
        var predictionServiceClient = new PredictionServiceClientBuilder
        {
            Endpoint = $"{location}-aiplatform.googleapis.com"
        }.Build();


        var generateContentRequest = new GenerateContentRequest
        {
            Model = $"projects/{projectId}/locations/{location}/publishers/{publisher}/models/{model}",
            GenerationConfig = new GenerationConfig
            {
                Temperature = 0.0f
            },
            Contents =
            {
                new Content
                {
                    Role = "USER",
                    Parts = { new Part { Text = "When is the next total solar eclipse in US?" } }
                }
            },
            Tools =
            {
                new Tool
                {
                    GoogleSearchRetrieval = new GoogleSearchRetrieval()
                }
            }
        };

        GenerateContentResponse response = await predictionServiceClient.GenerateContentAsync(generateContentRequest);

        string responseText = response.Candidates[0].Content.Parts[0].Text;
        Console.WriteLine(responseText);

        return responseText;
    }
}

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 Basa le risposte sul modello.
  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.

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 soglie è 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": { "..."
   }
 }

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 alle origini (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 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 origini 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 impedisce al Cliente di offrire opzioni alternative per i motori di ricerca, 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 non Google Ricerca o i risultati associati vengano visualizzati separatamente dai risultati basati su ancoraggio e dai suggerimenti di ricerca e non possano essere ragionevolmente attribuiti o confusi con i risultati forniti da Google.

Passaggi successivi