Tokëzimi me Google Search

Funksioni Grounding with Google Search në Gemini API dhe AI ​​Studio mund të përdoret për të përmirësuar saktësinë dhe kohëzgjatjen e përgjigjeve nga modeli. Përveç përgjigjeve më faktike, kur aktivizohet Grounding with Google Search, Gemini API kthen burimet e tokëzimit (lidhjet mbështetëse në linjë) dhe sugjerimet e kërkimit në Google së bashku me përmbajtjen e përgjigjes. Sugjerimet e Kërkimit i drejtojnë përdoruesit te rezultatet e kërkimit që korrespondojnë me përgjigjen e bazuar.

Ky udhëzues do t'ju ndihmojë të filloni me Grounding with Google Search duke përdorur një nga Gemini API SDK ose REST API.

Duke filluar me Gemini 2.0, Google Search ofrohet si mjet. Kjo do të thotë që modeli mund të vendosë se kur të përdorë Kërkimin në Google. Shembulli i mëposhtëm tregon se si të konfiguroni Kërkimin si një mjet.

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

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

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"],
    )
)

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.
print(response.candidates[0].grounding_metadata.search_entry_point.rendered_content)

Funksionaliteti "Kërko si mjet" mundëson gjithashtu kërkime me shumë kthesa dhe pyetje me shumë mjete (për shembull, kombinimi i Tokëzimit me Kërkimin në Google dhe ekzekutimin e kodit).

Kërkimi si mjet mundëson kërkesa komplekse dhe rrjedha pune që kërkojnë planifikim, arsyetim dhe të menduar:

  • Arsyeja për të rritur faktet dhe kohët e fundit dhe për të dhënë përgjigje më të sakta
  • Marrja e objekteve nga uebi për të bërë analiza të mëtejshme
  • Gjetja e imazheve, videove ose mediave të tjera përkatëse për të ndihmuar në arsyetimin multimodal ose detyrat e gjenerimit
  • Kodimi, zgjidhja e problemeve teknike dhe detyra të tjera të specializuara
  • Gjetja e informacionit specifik për rajonin ose ndihma në përkthimin e saktë të përmbajtjes
  • Gjetja e faqeve të internetit përkatëse për shfletim të mëtejshëm

Tokëzimi me Google Search funksionon me të gjitha gjuhët e disponueshme kur bën kërkesa me tekst. Në nivelin e paguar të Gemini Developer API, mund të merrni falas 1500 kërkesa të Grounding me Google Search në ditë, me pyetje shtesë të faturuara me 35 dollarë standarde për 1000 pyetje.

Mund të mësoni më shumë duke provuar fletoren e veglave të kërkimit .

Sugjerimet e Kërkimit në Google

Për të përdorur Grounding me Google Search, duhet të shfaqni sugjerimet e kërkimit në Google, të cilat janë pyetje të sugjeruara të përfshira në meta të dhënat e përgjigjes së bazuar. Për të mësuar më shumë rreth kërkesave të ekranit, shihni Përdorni sugjerimet e kërkimit në Google .

Rikthimi i Google Search

Rikthim dinamik

Disa pyetje ka të ngjarë të përfitojnë më shumë nga Grounding with Google Search se të tjerat. Funksioni dinamik i rikthimit ju jep kontroll shtesë se kur duhet të përdorni Grounding me Google Search.

Nëse modaliteti i rikthimit dinamik është i papërcaktuar, Tokëzimi me Google Search aktivizohet gjithmonë. Nëse modaliteti është vendosur në dinamik, modeli vendos se kur të përdorë tokëzimin bazuar në një prag që mund të konfiguroni. Pragu është një vlerë me pikë lundruese në intervalin [0,1] dhe është 0,3. Nëse vlera e pragut është 0, përgjigja bazohet gjithmonë me Google Search; nëse është 1, nuk është kurrë.

Si funksionon rikthimi dinamik

Mund të përdorni rikthimin dinamik në kërkesën tuaj për të zgjedhur se kur do të aktivizoni Tokëzimin me Google Search. Kjo është e dobishme kur kërkesa nuk kërkon një përgjigje të bazuar në Google Search dhe modeli mund të japë një përgjigje bazuar në njohuritë e veta pa bazë. Kjo ju ndihmon të menaxhoni vonesën, cilësinë dhe koston në mënyrë më efektive.

Përpara se të thirrni konfigurimin e rikthimit dinamik në kërkesën tuaj, kuptoni terminologjinë e mëposhtme:

  • Rezultati i parashikimit : Kur kërkoni një përgjigje të bazuar, Binjakët i cakton një pikë parashikimi kërkesës. Rezultati i parashikimit është një vlerë me pikë lundruese në intervalin [0,1]. Vlera e tij varet nga fakti nëse kërkesa mund të përfitojë nga mbështetja e përgjigjes me informacionin më të përditësuar nga "Kërkimi në Google". Kështu, nëse një kërkesë kërkon një përgjigje të bazuar në faktet më të fundit në ueb, ai ka një rezultat më të lartë parashikimi. Një kërkesë për të cilën një përgjigje e krijuar nga modeli është e mjaftueshme ka një rezultat më të ulët parashikimi.

    Këtu janë shembuj të disa kërkesave dhe rezultatet e tyre të parashikimit.

    Prompt Rezultati i parashikimit Komentoni
    "Shkruani një poezi për bozhuret" 0.13 Modeli mund të mbështetet në njohuritë e tij dhe përgjigja nuk ka nevojë për argumentim.
    "Sugjeroni një lodër për një fëmijë 2 vjeç" 0.36 Modeli mund të mbështetet në njohuritë e tij dhe përgjigja nuk ka nevojë për argumentim.
    "A mund të jepni një recetë për një guacamole me frymëzim aziatik?" 0.55 Google Search mund të japë një përgjigje të bazuar, por tokëzimi nuk kërkohet rreptësisht; njohuritë e modelit mund të jenë të mjaftueshme.
    "Çfarë është Agent Builder? Si faturohet tokëzimi në Agent Builder?" 0.72 Kërkon Google Search për të gjeneruar një përgjigje të bazuar mirë.
    "Kush fitoi çmimin e fundit të madh të F1?" 0,97 Kërkon Google Search për të gjeneruar një përgjigje të bazuar mirë.
  • Pragu : Në kërkesën tuaj API, mund të specifikoni një konfigurim rikthimi dinamik me një prag. Pragu është një vlerë me pikë lundruese në intervalin [0,1] dhe është e paracaktuar në 0.3. Nëse vlera e pragut është zero, përgjigja bazohet gjithmonë me Google Search. Për të gjitha vlerat e tjera të pragut, zbatohet sa vijon:

    • Nëse rezultati i parashikimit është më i madh ose i barabartë me pragun, përgjigja bazohet me Google Search. Një prag më i ulët nënkupton që më shumë kërkesa kanë përgjigje që krijohen duke përdorur Grounding with Google Search.
    • Nëse rezultati i parashikimit është më i vogël se pragu, modeli mund të gjenerojë ende përgjigjen, por nuk është i bazuar në Google Search.

Për të mësuar se si të vendosni pragun e rikthimit dinamik duke përdorur një SDK ose API REST, shihni shembullin e kodit përkatës.

Për të gjetur një prag të mirë që i përshtatet nevojave të biznesit tuaj, mund të krijoni një grup përfaqësues të pyetjeve që prisni të hasni. Pastaj mund t'i renditni pyetjet sipas rezultatit të parashikimit në përgjigje dhe të zgjidhni një prag të mirë për rastin tuaj të përdorimit.

Një përgjigje e bazuar

Nëse kërkesa juaj bazohet me sukses në Google Search, përgjigja do të përfshijë groundingMetadata . Një përgjigje e bazuar mund të duket diçka si kjo (pjesë të përgjigjes janë hequr për shkurtësi):

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

Nëse përgjigja nuk përfshin groundingMetadata , kjo do të thotë se përgjigja nuk u bazua me sukses. Ka disa arsye që kjo mund të ndodhë, duke përfshirë rëndësinë e ulët të burimit ose informacionin jo të plotë brenda përgjigjes së modelit.

Kur gjenerohet një rezultat i bazuar, meta të dhënat përmbajnë URI që ridrejtojnë te botuesit e përmbajtjes që është përdorur për të gjeneruar rezultatin e bazuar. Këto URI përmbajnë nëndomenin vertexaisearch , si në këtë shembull të cunguar: https://vertexaisearch.cloud.google.com/grounding-api-redirect/... . Meta të dhënat përmbajnë gjithashtu domenet e botuesve. URI-të e ofruara mbeten të aksesueshme për 30 ditë pasi të jetë gjeneruar rezultati i bazuar.

Fusha e renderedContent brenda searchEntryPoint është kodi i dhënë për zbatimin e sugjerimeve të kërkimit në Google. Shihni Përdorni sugjerimet e kërkimit në Google për të mësuar më shumë.