以 Google 搜尋建立基準


Gemini API 和 AI Studio 中的「以 Google 搜尋做為依據」功能,可用於提升模型回覆的準確性和新鮮度。除了更多事實回覆,在啟用 Google 搜尋依據功能啟用之後,Gemini API 會傳回基準來源 (內嵌支援連結)、Google 搜尋建議,以及回覆內容。搜尋建議會將使用者導向與回應相關的搜尋結果。

使用 Google 搜尋進行地面定位時,僅支援文字提示。不支援多模態 (文字和圖片、文字和音訊等) 提示。使用 Google 搜尋進行地面定位功能支援 Gemini 型號的所有可用語言

本指南將協助您使用其中一個 Gemini API SDK 或 REST API,開始透過 Google 搜尋建立基準化作業。

設定模型以使用 Google 搜尋

為什麼 Google 搜尋使用基準化功能很實用?

在生成式 AI 中,依據是指將模型連結至可驗證的資訊來源的程序。這些來源可能會提供實際的工作場所資訊或其他特定情境資訊。錨定有助於提升 AI 輸出的準確性、可靠性和實用性。

對於需要從網路取得最新資訊的提示,建立基礎特別重要。透過建立基準,模型就能存取知識截止日期後的資訊、取得資訊來源,並回答原本無法準確回答的問題。

您可以使用 Google AI Studio 或 Gemini API,將模型輸出內容連結至 Google 搜尋。使用 Google 搜尋進行驗證有以下優點:

  • 允許與特定內容綁定的模型回應。
  • 減少模型幻覺,也就是模型產生不符事實的內容。
  • 將模型回應錨定至使用者可點選並開啟的來源。
  • 提升系統生成內容的可信度和適用性。

使用「以 Google 搜尋建立模型基準」功能時,您就能有效地將模型連結至可靠的網路搜尋結果。由於非根基模型回應是根據學習到的模式,因此您可能無法針對有關當前事件的提示 (例如要求提供天氣預報或最近足球賽的最終比分) 獲得事實性回應。由於網路可提供新資訊,因此根據實際情況提供的提示可以產生更即時的回覆,並附上參考來源。

以下範例比較的是非基準回應與使用 API 產生的基礎回應。(回覆結果是在 2024 年 10 月產生。)

未接地的 Gemini Google 搜尋奠定基礎
提示:今年超級盃的冠軍是誰?
回覆:堪薩斯城酋長今年 (2023 年) 贏得超級盃 LVII 冠軍。
提示:今年超級盃的獲勝者是誰?
回覆:堪薩斯酋長隊贏得今年的超級盃第 58 屆冠軍,在延長賽中以 25 比 22 擊敗舊金山 49 人隊。

在未經過驗證的回應中,模型提到堪薩斯城酋長隊在 2023 年贏得超級盃。在基礎回應中,模型正確參照了較新的 2024 年勝利。

下圖顯示 AI Studio 基礎回應的呈現方式。

AI Studio 中的依據提示和回覆

Google 搜尋建議

如要使用「以 Google 搜尋建立基準」功能,您必須顯示 Google 搜尋建議,這是在已建立基準回應的中繼資料中提供的建議查詢。如要進一步瞭解顯示需求,請參閱「使用 Google 搜尋建議」。

動態擷取

部分查詢可能比其他查詢更能從「以 Google 搜尋建立基準」功能中受益。動態擷取功能可讓您進一步控管使用「以 Google 搜尋建立基準」功能的時機。

如果未指定動態擷取模式,系統一律會觸發 Google 搜尋 Grounding。如果模式設為動態,模型會根據可設定的閾值決定何時使用接地。門檻值是 [0,1] 範圍內的浮點值,預設值為 0.3。如果閾值值為 0,回應一律會與 Google 搜尋連結;如果閾值值為 1,則一律不會連結。

動態擷取的運作方式

您可以在要求中使用動態擷取功能,選擇何時要啟用 Google 搜尋的 Grounding 功能。當提示不需要 Google 搜尋的答案,且模型可以根據自身知識提供答案時,這項功能就很實用。這有助於更有效地管理延遲時間、品質和成本。

在要求中叫用動態擷取設定之前,請先瞭解下列術語:

  • 預測分數:您要求取得基準答案時,Gemini 會為提示指派預測分數。預測分數是 [0,1] 範圍內的浮點值。這項屬性的值取決於提示是否能從 Google 搜尋中取得最新資訊,並將這些資訊納入答案。因此,如果提示需要根據網路上最新的事實提供答案,則預測分數會較高。如果某個提示的模型產生的答案夠低,該提示的預測分數就較低。

    以下是部分提示及其預測分數的範例。

    提示 預測分數 註解
    「寫一首關於牡丹的詩」 0.13 模型可以依據自身知識提供答案,而無須建立基準。
    「推薦適合 2 歲兒童的玩具」 0.36 模型可以依據自身知識提供答案,而無須建立基準。
    「能否提供亞洲風味酪梨醬食譜?」 0.55 Google 搜尋可以提供基準答案,但不一定需要建立基準;模型知識可能就足夠了。
    「Agent Builder 是什麼?如何在 Agent Builder 中計費? 0.72 這項功能需要使用 Google 搜尋,才能產生奠定良好基礎的答案。
    誰贏得最新的 F1 大獎賽? $0.97 美元 需要 Google 搜尋才能產生有根據的答案。
  • 閾值:您可以在 API 要求中,指定含有閾值的動態擷取設定。門檻是 [0,1] 範圍內的浮點值,預設為 0.7。如果閾值為零,回應一律會以 Google 搜尋為基準。對於所有其他門檻值,以下適用:

    • 如果預測分數大於或等於閾值,系統就會根據 Google 搜尋提供答案。門檻越低,使用「以 Google 搜尋建立基準」功能產生的回覆就越多。
    • 如果預測分數低於閾值,模型可能仍會產生答案,但不會與 Google 搜尋結果一致。

如要瞭解如何使用 SDK 或 REST API 設定動態擷取閾值,請參閱適當的程式碼範例

如果您使用 AI Studio,請按一下「編輯基礎」,設定動態擷取閾值。

在 AI Studio 中選取基準化門檻

如要找出符合業務需求的適當門檻,您可以建立預期會遇到的代表性查詢。接著,您可以根據回應中的預測分數排序查詢,並為用途選取合適的門檻。

基礎回應

如果提示成功連結至 Google 搜尋,回應會包含 groundingMetadata。有根據的回應可能如下所示 (為了簡潔起見,部分回應內容已省略):

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

如果回應不包含 groundingMetadata,表示回應未成功接地。這可能有幾個原因,包括來源相關性偏低,或是模型回應中的資訊不完整。

產生基礎結果時,中繼資料包含 URI,會重新導向至用於產生基礎結果的內容發布者。這些 URI 包含 vertexaisearch 子網域,如以下截斷的範例所示:https://vertexaisearch.cloud.google.com/grounding-api-redirect/...。這些中繼資料也包含發布商的網域。提供的 URI 會在產生依據結果後的 30 天內保留可用。

searchEntryPoint 中的 renderedContent 欄位是實作 Google 搜尋建議功能的程式碼。詳情請參閱「使用 Google 搜尋建議」。