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

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.

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.

Considerazioni

  • Per utilizzare il grounding con la Ricerca Google, devi attivare i suggerimenti della Ricerca Google. Scopri di più su come utilizzare i 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 .

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 Adatta le risposte del 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.

Gen AI SDK for Python

Installa

pip install --upgrade google-genai
Per scoprire di più, consulta la documentazione di riferimento dell'SDK.

Imposta le variabili di ambiente per utilizzare l'SDK Gen AI 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 ...'

Gen AI SDK for Go

Scopri come installare o aggiornare Gen AI SDK for Go.

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

Imposta le variabili di ambiente per utilizzare l'SDK Gen AI 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

import (
	"context"
	"fmt"
	"io"

	genai "google.golang.org/genai"
)

// generateWithGoogleSearch shows how to generate text using Google Search.
func generateWithGoogleSearch(w io.Writer) error {
	ctx := context.Background()

	client, err := genai.NewClient(ctx, &genai.ClientConfig{
		HTTPOptions: genai.HTTPOptions{APIVersion: "v1"},
	})
	if err != nil {
		return fmt.Errorf("failed to create genai client: %w", err)
	}

	modelName := "gemini-2.0-flash-001"
	contents := []*genai.Content{
		{Parts: []*genai.Part{
			{Text: "When is the next total solar eclipse in the United States?"},
		}},
	}
	config := &genai.GenerateContentConfig{
		Tools: []*genai.Tool{
			{GoogleSearch: &genai.GoogleSearch{}},
		},
	}

	resp, err := client.Models.GenerateContent(ctx, modelName, contents, config)
	if err != nil {
		return fmt.Errorf("failed to generate content: %w", err)
	}

	respText, err := resp.Text()
	if err != nil {
		return fmt.Errorf("failed to convert model response to text: %w", err)
	}
	fmt.Fprintln(w, respText)

	// Example response:
	// The next total solar eclipse in the United States will occur on March 30, 2033, but it will only ...

	return nil
}

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

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.

Supporto per l'impianto di messa a terra

Ti consigliamo di mostrare il supporto di messa a terra perché ti aiuta a convalidare le risposte dei publisher e offre opportunità di apprendimento aggiuntive.

Il supporto di Grounding per le risposte provenienti dalle origini della Ricerca Google deve essere mostrato sia in linea sia in forma aggregata. Ad esempio, guarda l'immagine che segue come suggerimento su come procedere.

Esempi di assistenza per l'impianto a terra

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 correlati alla Ricerca Google 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.

Utilizzare Grounding con la Ricerca Google come strumento

La definizione del contesto con la Ricerca Google ti consente di fornire al tuo modello le informazioni più aggiornate e accurate per migliorare le sue risposte. I modelli Gemini 2.0 e versioni successive possono utilizzare la Ricerca Google come strumento nei seguenti modi:

  • Il modello può decidere quando utilizzare la Ricerca Google.
  • Puoi attivare le ricerche in più passaggi e le query con più strumenti.

L'esempio seguente mostra come configurare la Ricerca Google come strumento.

  from google import genai
  from google.genai.types import Tool, GenerateContentConfig, GoogleSearch

  client = genai.Client()
  model_id = "gemini-2.0-flash-001"

  google_search_tool = Tool(
      google_search = GoogleSearch()
  )

  response = client.models.generate_content(
      model=model_id,
      contents="When is the next total solar eclipse in the United States?",
      config=GenerateContentConfig(
          tools=[google_search_tool],
          response_modalities=[text="TEXT"],
      )
)

for each in response.candidates[0].content.parts:
    print(each.text)
# Example response:
# The next total solar eclipse visible in the contiguous United States will be on ...

# To get grounding metadata as web content. This also includes Search Suggestions
print(response.candidates[0].grounding_metadata.search_entry_point.rendered_content)

Vantaggi

Quando utilizzi la Ricerca Google come strumento, puoi svolgere i seguenti prompt e flussi di lavoro complessi che richiedono pianificazione, ragionamento e pensiero:

  • Puoi basare le risposte sulle informazioni più recenti e accurate.
  • Puoi recuperare elementi dal web per eseguire analisi.
  • Puoi trovare immagini, video o altri contenuti multimediali pertinenti per supportare il ragionamento multimodale o la generazione di attività.
  • Puoi eseguire la programmazione, la risoluzione dei problemi tecnici e altre attività specializzate.
  • Puoi trovare informazioni specifiche per regione o contribuire a tradurre i contenuti con precisione.
  • Puoi trovare siti web pertinenti da visitare.

Passaggi successivi