Grounding con la Ricerca Google


La funzionalità di grounding con la Ricerca Google nell'API Gemini e in AI Studio può essere impiegata per migliorare l'accuratezza e l'aggiornamento delle risposte del modello. Oltre a risposte più oggettive, quando è attivata la funzionalità di grounding con la Ricerca Google, l'API Gemini restituisce le fonti di grounding (link di supporto in linea) e i suggerimenti della Ricerca Google insieme ai contenuti della risposta. I suggerimenti di ricerca indirizzano gli utenti ai risultati di ricerca corrispondenti alla risposta con grounding.

La funzionalità Grounding con la Ricerca Google supporta solo i prompt di testo. Non supporta prompt multimodali (testo e immagini, testo e audio e così via). La verifica con la Ricerca Google supporta tutte le lingue disponibili per i modelli Gemini.

Questa guida ti aiuterà a iniziare a utilizzare Grounding con la Ricerca Google utilizzando uno degli SDK dell'API Gemini o l'API REST.

Configurare un modello per l'utilizzo della Ricerca Google

Perché è utile il grounding con la Ricerca Google?

Nell'IA generativa, il grounding si riferisce al processo di connessione del modello a fonti di informazioni verificabili. Queste fonti potrebbero fornire informazioni sul luogo di lavoro reale o su altri contesti specifici. L'aggiornamento contribuisce a migliorare la precisione, l'affidabilità e l'utilità degli output dell'IA.

L'utilizzo di fonti attendibili è particolarmente importante per i prompt che richiedono informazioni aggiornate del web. Grazie alla fondatezza, il modello può accedere alle informazioni oltre la data di interruzione della conoscenza, ottenere le fonti delle informazioni e rispondere a domande a cui altrimenti non avrebbe potuto rispondere con precisione.

Con Google AI Studio o l'API Gemini, puoi basare l'output del modello sulla Ricerca Google. Il grounding con la Ricerca Google offre i seguenti vantaggi:

  • Consente risposte del modello legate a contenuti specifici.
  • Riduce le allucinazioni del modello, ovvero le situazioni in cui il modello genera contenuti non basati su fatti.
  • Fissa le risposte del modello alle fonti su cui un utente può fare clic e aprire.
  • Migliora l'affidabilità e l'applicabilità dei contenuti generati.

Quando utilizzi il Grounding con la Ricerca Google, colleghi il modello a risultati di ricerca affidabili di internet. Poiché le risposte del modello non basate su dati empirici si basano su modelli appresi, potresti non ricevere risposte oggettive ai prompt relativi agli eventi attuali (ad esempio, se chiedi una previsione meteo o il risultato finale di una partita di calcio recente). Poiché internet fornisce accesso a nuove informazioni, un prompt basato su dati concreti può generare risposte più aggiornate, con le fonti citate.

Ecco un esempio che confronta una risposta non basata su dati e una risposta basata su dati generata utilizzando l'API. Le risposte sono state generate a ottobre 2024.

Gemini senza grounding Grounding con la Ricerca Google
Prompt: Chi ha vinto il Super Bowl quest'anno?
Risposta: i Kansas City Chiefs hanno vinto il Super Bowl LVII quest'anno (2023).
Prompt: Chi ha vinto il Super Bowl quest'anno?
Risposta: quest'anno i Kansas City Chiefs hanno vinto il Super Bowl LVIII, battendo i San Francisco 49ers ai tempi supplementari con il punteggio di 25 a 22.

Nella risposta non basata su dati, il modello fa riferimento alla vittoria del Super Bowl 2023 dei Kansas City Chiefs. Nella risposta basata su dati di fatto, il modello fa riferimento correttamente alla vittoria più recente del 2024.

L'immagine seguente mostra l'aspetto di una risposta basata su dati in AI Studio.

Prompt e risposta basati su dati in AI Studio

Suggerimenti della Ricerca Google

Per utilizzare grounding con la Ricerca Google, devi mostrare i suggerimenti della Ricerca Google, che sono query suggerite incluse nei metadati della risposta con grounding. Per scoprire di più sui requisiti di visualizzazione, consulta Utilizzare i suggerimenti della Ricerca Google.

Recupero dinamico

È probabile che alcune query traggono un maggiore vantaggio dal grounding con la Ricerca Google rispetto ad altre. La funzionalità di recupero dinamico offre un ulteriore controllo su quando utilizzare il grounding con la Ricerca Google.

Se la modalità di recupero dinamico non è specificata, la funzionalità di ancoraggio con la Ricerca Google viene attivata sempre. Se la modalità è impostata su dinamica, il modello decide quando utilizzare la messa a terra in base a una soglia che puoi configurare. La soglia è un valore con virgola mobile compreso nell'intervallo [0,1] e il valore predefinito è 0,3. Se il valore di soglia è 0, la risposta si basa sempre sulla Ricerca Google; se è 1, non lo è mai.

Come funziona il recupero dinamico

Puoi utilizzare il recupero dinamico nella tua richiesta per scegliere quando attivare il Grounding con la Ricerca Google. Ciò è utile quando il prompt non richiede una risposta basata sulla Ricerca Google e il modello può fornire una risposta in base alle proprie conoscenze senza basi. Questo ti aiuta a gestire la latenza, la qualità e i costi 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, Gemini assegna al prompt un punteggio di previsione. 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, se un prompt 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 questa operazione 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 Ricerca Google per generare una risposta corretta.
  • Soglia: nella richiesta API puoi specificare una configurazione di recupero dinamico con una soglia. La soglia è un valore in 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 scoprire come impostare la soglia di recupero dinamico utilizzando un SDK o l'API REST, consulta l'esempio di codice appropriato.

Se utilizzi AI Studio, puoi impostare la soglia di recupero dinamico facendo clic su Modifica grounding.

Seleziona la soglia di grounding in AI Studio

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.

Una risposta fondata

Se il prompt viene eseguito correttamente nella Ricerca Google, la risposta includerà groundingMetadata. Una risposta basata su dati potrebbe essere simile alla seguente (alcune parti della risposta sono state omesse per brevità):

{
  "candidates": [
    {
      "content": {
        "parts": [
          {
            "text": "Carlos Alcaraz won the Gentlemen's Singles title at the 2024 Wimbledon Championships. He defeated Novak Djokovic in the final, winning his second consecutive Wimbledon title and fourth Grand Slam title overall. \n"
          }
        ],
        "role": "model"
      },
      ...
      "groundingMetadata": {
        "searchEntryPoint": {
          "renderedContent": "\u003cstyle\u003e\n.container {\n  align-items: center;\n  border-radius: 8px;\n  display: flex;\n  font-family: Google Sans, Roboto, sans-serif;\n  font-size: 14px;\n  line-height: 20px;\n  padding: 8px 12px;\n}\n.chip {\n  display: inline-block;\n  border: solid 1px;\n  border-radius: 16px;\n  min-width: 14px;\n  padding: 5px 16px;\n  text-align: center;\n  user-select: none;\n  margin: 0 8px;\n  -webkit-tap-highlight-color: transparent;\n}\n.carousel {\n  overflow: auto;\n  scrollbar-width: none;\n  white-space: nowrap;\n  margin-right: -12px;\n}\n.headline {\n  display: flex;\n  margin-right: 4px;\n}\n.gradient-container {\n  position: relative;\n}\n.gradient {\n  position: absolute;\n  transform: translate(3px, -9px);\n  height: 36px;\n  width: 9px;\n}\n@media (prefers-color-scheme: light) {\n  .container {\n    background-color: #fafafa;\n    box-shadow: 0 0 0 1px #0000000f;\n  }\n  .headline-label {\n    color: #1f1f1f;\n  }\n  .chip {\n    background-color: #ffffff;\n    border-color: #d2d2d2;\n    color: #5e5e5e;\n    text-decoration: none;\n  }\n  .chip:hover {\n    background-color: #f2f2f2;\n  }\n  .chip:focus {\n    background-color: #f2f2f2;\n  }\n  .chip:active {\n    background-color: #d8d8d8;\n    border-color: #b6b6b6;\n  }\n  .logo-dark {\n    display: none;\n  }\n  .gradient {\n    background: linear-gradient(90deg, #fafafa 15%, #fafafa00 100%);\n  }\n}\n@media (prefers-color-scheme: dark) {\n  .container {\n    background-color: #1f1f1f;\n    box-shadow: 0 0 0 1px #ffffff26;\n  }\n  .headline-label {\n    color: #fff;\n  }\n  .chip {\n    background-color: #2c2c2c;\n    border-color: #3c4043;\n    color: #fff;\n    text-decoration: none;\n  }\n  .chip:hover {\n    background-color: #353536;\n  }\n  .chip:focus {\n    background-color: #353536;\n  }\n  .chip:active {\n    background-color: #464849;\n    border-color: #53575b;\n  }\n  .logo-light {\n    display: none;\n  }\n  .gradient {\n    background: linear-gradient(90deg, #1f1f1f 15%, #1f1f1f00 100%);\n  }\n}\n\u003c/style\u003e\n\u003cdiv class=\"container\"\u003e\n  \u003cdiv class=\"headline\"\u003e\n    \u003csvg class=\"logo-light\" width=\"18\" height=\"18\" viewBox=\"9 9 35 35\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n      \u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M42.8622 27.0064C42.8622 25.7839 42.7525 24.6084 42.5487 23.4799H26.3109V30.1568H35.5897C35.1821 32.3041 33.9596 34.1222 32.1258 35.3448V39.6864H37.7213C40.9814 36.677 42.8622 32.2571 42.8622 27.0064V27.0064Z\" fill=\"#4285F4\"/\u003e\n      \u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M26.3109 43.8555C30.9659 43.8555 34.8687 42.3195 37.7213 39.6863L32.1258 35.3447C30.5898 36.3792 28.6306 37.0061 26.3109 37.0061C21.8282 37.0061 18.0195 33.9811 16.6559 29.906H10.9194V34.3573C13.7563 39.9841 19.5712 43.8555 26.3109 43.8555V43.8555Z\" fill=\"#34A853\"/\u003e\n      \u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M16.6559 29.8904C16.3111 28.8559 16.1074 27.7588 16.1074 26.6146C16.1074 25.4704 16.3111 24.3733 16.6559 23.3388V18.8875H10.9194C9.74388 21.2072 9.06992 23.8247 9.06992 26.6146C9.06992 29.4045 9.74388 32.022 10.9194 34.3417L15.3864 30.8621L16.6559 29.8904V29.8904Z\" fill=\"#FBBC05\"/\u003e\n      \u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M26.3109 16.2386C28.85 16.2386 31.107 17.1164 32.9095 18.8091L37.8466 13.8719C34.853 11.082 30.9659 9.3736 26.3109 9.3736C19.5712 9.3736 13.7563 13.245 10.9194 18.8875L16.6559 23.3388C18.0195 19.2636 21.8282 16.2386 26.3109 16.2386V16.2386Z\" fill=\"#EA4335\"/\u003e\n    \u003c/svg\u003e\n    \u003csvg class=\"logo-dark\" width=\"18\" height=\"18\" viewBox=\"0 0 48 48\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n      \u003ccircle cx=\"24\" cy=\"23\" fill=\"#FFF\" r=\"22\"/\u003e\n      \u003cpath d=\"M33.76 34.26c2.75-2.56 4.49-6.37 4.49-11.26 0-.89-.08-1.84-.29-3H24.01v5.99h8.03c-.4 2.02-1.5 3.56-3.07 4.56v.75l3.91 2.97h.88z\" fill=\"#4285F4\"/\u003e\n      \u003cpath d=\"M15.58 25.77A8.845 8.845 0 0 0 24 31.86c1.92 0 3.62-.46 4.97-1.31l4.79 3.71C31.14 36.7 27.65 38 24 38c-5.93 0-11.01-3.4-13.45-8.36l.17-1.01 4.06-2.85h.8z\" fill=\"#34A853\"/\u003e\n      \u003cpath d=\"M15.59 20.21a8.864 8.864 0 0 0 0 5.58l-5.03 3.86c-.98-2-1.53-4.25-1.53-6.64 0-2.39.55-4.64 1.53-6.64l1-.22 3.81 2.98.22 1.08z\" fill=\"#FBBC05\"/\u003e\n      \u003cpath d=\"M24 14.14c2.11 0 4.02.75 5.52 1.98l4.36-4.36C31.22 9.43 27.81 8 24 8c-5.93 0-11.01 3.4-13.45 8.36l5.03 3.85A8.86 8.86 0 0 1 24 14.14z\" fill=\"#EA4335\"/\u003e\n    \u003c/svg\u003e\n    \u003cdiv class=\"gradient-container\"\u003e\u003cdiv class=\"gradient\"\u003e\u003c/div\u003e\u003c/div\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"carousel\"\u003e\n    \u003ca class=\"chip\" href=\"https://vertexaisearch.cloud.google.com/grounding-api-redirect/AWhgh4x8Epe-gzpwRBvp7o3RZh2m1ygq1EHktn0OWCtvTXjad4bb1zSuqfJd6OEuZZ9_SXZ_P2SvCpJM7NaFfQfiZs6064MeqXego0vSbV9LlAZoxTdbxWK1hFeqTG6kA13YJf7Fbu1SqBYM0cFM4zo0G_sD9NKYWcOCQMvDLDEJFhjrC9DM_QobBIAMq-gWN95G5tvt6_z6EuPN8QY=\"\u003ewho won wimbledon 2024\u003c/a\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n"
        },
        "groundingChunks": [
          {
            "web": {
              "uri": "https://vertexaisearch.cloud.google.com/grounding-api-redirect/AWhgh4whET1ta3sDETZvcicd8FeNe4z0VuduVsxrT677KQRp2rYghXI0VpfYbIMVI3THcTuMwggRCbFXS_wVvW0UmGzMe9h2fyrkvsnQPJyikJasNIbjJLPX0StM4Bd694-ZVle56MmRA4YiUvwSqad1w6O2opmWnw==",
              "title": "wikipedia.org"
            }
          },
          {
            "web": {
              "uri": "https://vertexaisearch.cloud.google.com/grounding-api-redirect/AWhgh4wR1M-9-yMPUr_KdHlnoAmQ8ZX90DtQ_vDYTjtP2oR5RH4tRP04uqKPLmesvo64BBkPeYLC2EpVDxv9ngO3S1fs2xh-e78fY4m0GAtgNlahUkm_tBm_sih5kFPc7ill9u2uwesNGUkwrQlmP2mfWNU5lMMr23HGktr6t0sV0QYlzQq7odVoBxYWlQ_sqWFH",
              "title": "wikipedia.org"
            }
          },
          {
            "web": {
              "uri": "https://vertexaisearch.cloud.google.com/grounding-api-redirect/AWhgh4wsDmROzbP-tmt8GdwCW_pqISTZ4IRbBuoaMyaHfcQg8WW-yKRQQvMDTPAuLxJh-8_U8_iw_6JKFbQ8M9oVYtaFdWFK4gOtL4RrC9Jyqc5BNpuxp6uLEKgL5-9TggtNvO97PyCfziDFXPsxylwI1HcfQdrz3Jy7ZdOL4XM-S5rC0lF2S3VWW0IEAEtS7WX861meBYVjIuuF_mIr3spYPqWLhbAY2Spj-4_ba8DjRvmevIFUhRuESTKvBfmpxNSM",
              "title": "cbssports.com"
            }
          },
          {
            "web": {
              "uri": "https://vertexaisearch.cloud.google.com/grounding-api-redirect/AWhgh4yzjLkorHiUKjhOPkWaZ9b4cO-cLG-02vlEl6xTBjMUjyhK04qSIclAa7heR41JQ6AAVXmNdS3WDrLOV4Wli-iezyzW8QPQ4vgnmO_egdsuxhcGk3-Fp8-yfqNLvgXFwY5mPo6QRhvplOFv0_x9mAcka18QuAXtj0SPvJfZhUEgYLCtCrucDS5XFc5HmRBcG1tqFdKSE1ihnp8KLdaWMhrUQI21hHS9",
              "title": "jagranjosh.com"
            }
          },
          {
            "web": {
              "uri": "https://vertexaisearch.cloud.google.com/grounding-api-redirect/AWhgh4y9L4oeNGWCatFz63b9PpP3ys-Wi_zwnkUT5ji9lY7gPUJQcsmmE87q88GSdZqzcx5nZG9usot5FYk2yK-FAGvCRE6JsUQJB_W11_kJU2HVV1BTPiZ4SAgm8XDFIxpCZXnXmEx5HUfRqQm_zav7CvS2qjA2x3__qLME6Jy7R5oza1C5_aqjQu422le9CaigThS5bvJoMo-ZGcXdBUCj2CqoXNVjMA==",
              "title": "apnews.com"
            }
          }
        ],
        "groundingSupports": [
          {
            "segment": {
              "endIndex": 85,
              "text": "Carlos Alcaraz won the Gentlemen's Singles title at the 2024 Wimbledon Championships."
            },
            "groundingChunkIndices": [
              0,
              1,
              2,
              3
            ],
            "confidenceScores": [
              0.97380733,
              0.97380733,
              0.97380733,
              0.97380733
            ]
          },
          {
            "segment": {
              "startIndex": 86,
              "endIndex": 210,
              "text": "He defeated Novak Djokovic in the final, winning his second consecutive Wimbledon title and fourth Grand Slam title overall."
            },
            "groundingChunkIndices": [
              1,
              0,
              4
            ],
            "confidenceScores": [
              0.96145374,
              0.96145374,
              0.96145374
            ]
          }
        ],
        "webSearchQueries": [
          "who won wimbledon 2024"
        ]
      }
    }
  ],
  ...
}

Se la risposta non include groundingMetadata, significa che la risposta non è stata basata su dati sufficienti. I motivi possono essere diversi, tra cui la bassa pertinenza della fonte o informazioni incomplete all'interno della risposta del modello.

Quando viene generato un risultato basato su fatti, i metadati contengono URI che reindirizzano ai publisher dei contenuti utilizzati per generare il risultato basato su fatti. Questi URI contengono il sottodominio vertexaisearch, come in questo esempio troncato: https://vertexaisearch.cloud.google.com/grounding-api-redirect/.... I metadati contengono anche i domini dei publisher. Gli URI forniti rimangono accessibili per 30 giorni dopo la generazione del risultato basato su dati.

Il campo renderedContent all'interno di searchEntryPoint è il codice fornito per implementare i suggerimenti della Ricerca Google. Per saperne di più, consulta Utilizzare i suggerimenti della Ricerca Google.