Grounding z użyciem wyszukiwarki Google


Funkcji Grounding with Google Search w Gemini API i AI Studio można używać do zwiększania dokładności i aktualności odpowiedzi modelu. Oprócz bardziej rzeczowych odpowiedzi, gdy funkcja Grounding with Google Search jest włączona, interfejs Gemini API zwraca źródła groundingu (linki do materiałów pomocniczych) oraz sugestie wyszukiwarki Google wraz z treścią odpowiedzi. Sugestie wyszukiwania kierują użytkowników do wyników wyszukiwania odpowiadających uzasadnionej odpowiedzi.

Funkcja Grounding with Google Search obsługuje tylko prompty tekstowe. Nie obsługuje promptów multimodalnych (tekst i obraz, tekst i dźwięk itp.). Funkcja Grounding with Google Search obsługuje wszystkie dostępne języki w przypadku modeli Gemini.

Z tego przewodnika dowiesz się, jak rozpocząć korzystanie z funkcji umocowania w wyszukiwarce Google za pomocą jednego z pakietów SDK Gemini API lub interfejsu API REST.

Skonfiguruj model na potrzeby wyszukiwarki Google

Dlaczego grounding przy użyciu wyszukiwarki Google jest przydatny?

W generatywnej AI umocowanie oznacza proces łączenia modelu z możliwymi do zweryfikowania źródłami informacji. Te źródła mogą zawierać informacje o rzeczywistym miejscu pracy lub inne konkretne konteksty. Umocowanie pomaga zwiększyć dokładność, niezawodność i użyteczność danych wyjściowych AI.

Ugruntowanie jest szczególnie ważne w przypadku promptów, które wymagają aktualnych informacji z internetu. Dzięki temu model może uzyskać dostęp do informacji z okresu poprzedzającego datę odcięcia, znaleźć źródła tych informacji i odpowiadać na pytania, na które w innym przypadku nie udałoby mu się udzielić prawidłowych odpowiedzi.

Za pomocą Google AI Studio lub Gemini API możesz skoncentrować wyniki modelu na wyszukiwarce Google. Ustalenie podstaw korzystania z wyszukiwarki Google przynosi takie korzyści:

  • Umożliwia odpowiedzi modeli, które są powiązane z konkretnymi treściami.
  • Zmniejsza ilość halucynacji modelu, czyli przypadków, w których model generuje treści niezgodne z faktami.
  • Odpowiedzi modelu są powiązane ze źródłami, które użytkownik może kliknąć i otworzyć.
  • Zwiększa wiarygodność i przydatność wygenerowanych treści.

Korzystając z groundingu przy użyciu wyszukiwarki Google, skutecznie łączysz model z wiarygodnymi wynikami wyszukiwania z internetu. Nieuzasadnione odpowiedzi bazują na poznanych wzorcach, więc możesz nie otrzymać rzeczywistych odpowiedzi na prompty dotyczące bieżących wydarzeń (np. z prośbą o prognozę pogody lub ostateczny wynik ostatniego meczu piłki nożnej). Ponieważ internet zapewnia dostęp do nowych informacji, umotywowana prompt może generować bardziej aktualne odpowiedzi, z cytowanymi źródłami.

Oto przykład porównywania odpowiedzi bez uziemienia i z uziemieniem wygenerowanych za pomocą interfejsu API. (odpowiedzi zostały wygenerowane w październiku 2024 r.)

Nieuziemienie Gemini Grounding z użyciem wyszukiwarki Google
Prompt: Kto wygrał tegoroczne Super Bowl?
Odpowiedź: w tym roku (2023 r.) Kansas City Chiefs wygrali Super Bowl LVII.
Prompt: Kto wygrał tegoroczne Super Bowl?
Odpowiedź: Drużyna Kansas City Chiefs wygrała Super Bowl LVIII w tym roku, pokonując San Francisco 49ers po dogrywce ze wynikiem 25 do 22.

W odpowiedzi bez uzasadnienia model odnosi się do zwycięstwa Kansas City Chiefs w Super Bowl w 2023 r. W odpowiedzi opartej na faktach model poprawnie odwołuje się do swojego zwycięstwa w 2024 roku.

Na poniższym obrazie widać, jak wygląda odpowiedź o wysokiej jakości w AI Studio.

Prompt i odpowiedź w AI Studio

Sugestie wyszukiwania Google

Aby korzystać z funkcji groundingu przy użyciu wyszukiwarki Google, musisz wyświetlać sugestie wyszukiwania Google, czyli sugerowane zapytania zawarte w metadanych odpowiedzi z funkcja groundingu. Więcej informacji o wymaganiach dotyczących wyświetlania znajdziesz w artykule Korzystanie z sugestii wyszukiwania Google.

Wyszukiwanie dynamiczne

Niektóre zapytania mogą być bardziej odpowiednie do korzystania z funkcji groundingu przy użyciu wyszukiwarki Google niż inne. Funkcja dynamicznego pobierania daje Ci dodatkową kontrolę nad tym, kiedy korzystać z groundingu przy użyciu wyszukiwarki Google.

Jeśli tryb dynamicznego pobierania nie jest określony, ustawienie umocowania z wyszukiwarką Google jest zawsze aktywowane. Jeśli tryb jest ustawiony na dynamiczny, model sam decyduje, kiedy użyć uziemienia na podstawie progu, który możesz skonfigurować. Próg to wartość zmiennoprzecinkowa z zakresu [0,1], domyślnie równa 0,3. Jeśli wartość progowa wynosi 0, odpowiedź jest zawsze oparta na wyszukiwarce Google; jeśli wynosi 1, nigdy nie jest.

Jak działa wyszukiwanie dynamiczne

Możesz użyć dynamicznego wyszukiwania w żądaniu, aby wybrać, kiedy włączyć funkcję Grounding w wyszukiwarce Google. Jest to przydatne, gdy prompt nie wymaga odpowiedzi osadzonej w wyszukiwarce Google, a model może udzielić odpowiedzi na podstawie własnej wiedzy bez ugody. Pozwala to zmniejszyć czas oczekiwania, jakość i efektywniej.

Zanim wywołasz konfigurację dynamicznego pobierania w żądaniu, zapoznaj się z tą terminologią:

  • Wynik przewidywania: gdy poprosisz o odpowiedź opartą na danych, Gemini przypisuje promptowi wynik przewidywania. Wynik prognozy to wartość zmiennoprzecinkowa z zakresu [0,1]. Jego wartość zależy od tego, czy prompt może skorzystać na uwzględnieniu w odpowiedzi najbardziej aktualnych informacji z wyszukiwarki Google. Dlatego jeśli prompt wymaga odpowiedzi opartej na najnowszych informacjach w internecie, ma wyższy wynik przewidywania. Prompt, dla którego wystarczy odpowiedź wygenerowana przez model, ma niższy wynik prognozy.

    Oto przykłady promptów i ich wyników przewidywania.

    Prompt Wynik prognozy Komentarz
    „Napisz wiersz o peoniach”. 0,13 Model może polegać na swojej wiedzy, a odpowiedź nie musi być powiązana z tekstem.
    „Zaproponuj zabawkę dla dziecka 2 lata”. 0,36 Model może polegać na swojej wiedzy, a odpowiedź nie musi być powiązana z tekstem.
    „Czy możesz podać przepis na guacamole w stylu azjatyckim?” 0,55 Wyszukiwarka Google może podać wiarygodną odpowiedź, ale nie jest to konieczne. Wiedza modelu może wystarczyć.
    „Co to jest kreator agentów? Jak jest rozliczane uziemienie w Kreatorze agentów? 0,72 Wymaga, aby wyszukiwarka Google wygenerowała dobrze uzasadnioną odpowiedź.
    „Kto wygrał ostatni wyścig Formuły 1?” 0,97 Wymaga, aby wyszukiwarka Google wygenerowała dobrze uzasadnioną odpowiedź.
  • Próg: w żądaniu interfejsu API możesz określić konfigurację dynamicznego pobierania z użyciem progu. Próg to wartość zmiennoprzecinkowa z zakresu [0,1], a domyślnie wynosi 0,7. Jeśli wartość progowa wynosi 0, odpowiedź jest zawsze oparta na wyszukiwarce Google. W przypadku wszystkich innych wartości progu obowiązują następujące zasady:

    • Jeśli wynik przewidywania jest większy lub równy progowi, odpowiedź jest oparta na wyszukiwarce Google. Niższy próg oznacza, że więcej promptów ma odpowiedzi wygenerowane za pomocą funkcji Grounding przy użyciu wyszukiwarki Google.
    • Jeśli wynik prognozy jest mniejszy niż wartość progowa, model może nadal generować odpowiedź, ale nie będzie ona oparta na wyszukiwarce Google.

Aby dowiedzieć się, jak ustawić próg dynamicznego pobierania za pomocą pakietu SDK lub interfejsu REST API, zapoznaj się z odpowiednim przykładem kodu.

Jeśli korzystasz z AI Studio, możesz ustawić próg wyszukiwania dynamicznego, klikając Edytuj podstawę.

Wybieranie progu umocowania w AI Studio

Aby znaleźć odpowiedni próg, który odpowiada potrzebom Twojej firmy, możesz utworzyć reprezentatywny zbiór zapytań, które mogą się pojawić. Następnie możesz posortować zapytania według wyniku prognozy w odpowiedzi i wybrać odpowiedni próg dla swojego przypadku użycia.

Uzasadniona odpowiedź

Jeśli prompt zostanie pomyślnie powiązany z wyszukiwarką Google, odpowiedź będzie zawierać groundingMetadata. Odpowiedź może wyglądać tak: (ze względów zwięzłości pominięto niektóre części odpowiedzi):

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

Jeśli odpowiedź nie zawiera groundingMetadata, oznacza to, że nie została ona prawidłowo uziemiona. Może się tak zdarzyć z kilku powodów, np. niskiej trafności źródła lub niepełnych informacji w odpowiedzi modelu.

Gdy generowany jest wynik oparty na faktach, metadane zawierają identyfikatory URI, które przekierowują do wydawców treści użytych do wygenerowania wyniku opartego na faktach. Te identyfikatory URI zawierają subdomenę vertexaisearch, jak w tym skróconym przykładzie: https://vertexaisearch.cloud.google.com/grounding-api-redirect/.... Metadane zawierają też domeny wydawców. Podane identyfikatory URI pozostają dostępne przez 30 dni od wygenerowania wyniku.

Pole renderedContent w elementach searchEntryPoint to kod dostarczony do implementacji sugestii wyszukiwania Google. Więcej informacji znajdziesz w artykule Korzystanie z sugestii wyszukiwarki Google.