Mit der Funktion „Mit der Google Suche verknüpfen“ in der Gemini API und in Google AI Studio können Sie die Genauigkeit und Aktualität der Antworten des Modells verbessern. Wenn die Fundierung mit der Google Suche aktiviert ist, gibt die Gemini API neben sachlicheren Antworten auch Fundierungsquellen (in-line-Unterstützungslinks) und Google-Suchvorschläge zurück. Die Suchvorschläge verweisen Nutzer auf die Suchergebnisse, die der fundierten Antwort entsprechen.
In dieser Anleitung erfahren Sie, wie Sie mit einem der Gemini API SDKs oder der REST API die Funktion „Grounding with Google Search“ verwenden.
Fundierung der Google Suche konfigurieren
Ab Gemini 2.0 ist die Google Suche als Tool verfügbar. Das Modell kann also entscheiden, wann die Google Suche verwendet werden soll. Das folgende Beispiel zeigt, wie die Suche als Tool konfiguriert wird.
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)
Die Funktion „Suchen als Tool“ ermöglicht auch mehrstufige Suchanfragen und Abfragen mit mehreren Tools (z. B. die Kombination von Grounding mit der Google Suche und der Codeausführung).
Die Suche als Tool ermöglicht komplexe Aufgaben und Workflows, die Planung, Vernunft und Nachdenken erfordern:
- Fundierung, um Sachlichkeit und Aktualität zu verbessern und genauere Antworten zu liefern
- Artefakte aus dem Web abrufen, um sie weiter zu analysieren
- Relevante Bilder, Videos oder andere Medien finden, um bei multimodalen Argumentations- oder Generierungsaufgaben zu helfen
- Programmieren, technische Fehlerbehebung und andere spezielle Aufgaben
- Sie können bei der Suche nach regionsspezifischen Informationen helfen oder bei der korrekten Übersetzung von Inhalten unterstützen.
- Relevante Websites für die weitere Suche finden
Die Funktion „Fundierung mit der Google Suche“ funktioniert bei Textprompts in allen verfügbaren Sprachen. Mit der kostenpflichtigen Stufe der Gemini Developer API können Sie pro Tag 1.500 Suchanfragen für die Fundierung mit der Google Suche kostenlos stellen. Zusätzliche Suchanfragen werden mit den standardmäßigen 35 $pro 1.000 Suchanfragen abgerechnet.
Weitere Informationen finden Sie im Notebook zum Suchtool.
Suchvorschläge in der Google Suche
Wenn Sie die Funktion „Fundierung mit der Google Suche“ verwenden möchten, müssen Sie Google-Suchvorschläge anzeigen. Das sind Suchanfragen, die in den Metadaten der fundierten Antwort enthalten sind. Weitere Informationen zu den Anzeigeanforderungen finden Sie unter Google-Suchvorschläge verwenden.
Abruf über die Google Suche
Dynamische Abfrage
Bei einigen Suchanfragen ist die Fundierung mit der Google Suche wahrscheinlich effektiver als bei anderen. Mit der Funktion Dynamische Abfrage können Sie festlegen, wann die Funktion „Mit der Google Suche fundieren“ verwendet werden soll.
Wenn der Modus für die dynamische Abfrage nicht angegeben ist, wird die Funktion „Mit der Google Suche fundieren“ immer ausgelöst. Wenn der Modus auf „dynamisch“ gesetzt ist, entscheidet das Modell anhand eines konfigurierbaren Grenzwerts, wann die Erdung verwendet werden soll. Der Schwellenwert ist ein Gleitkommawert im Bereich [0,1] und standardmäßig 0,3. Wenn der Schwellenwert 0 ist, wird die Antwort immer mit der Google Suche fundiert. Bei 1 ist das nie der Fall.
Funktionsweise des dynamischen Abrufs
Mit der dynamischen Abfrage in Ihrer Anfrage können Sie festlegen, wann die Funktion „Mit der Google Suche fundieren“ aktiviert werden soll. Das ist nützlich, wenn für den Prompt keine Antwort erforderlich ist, die auf der Google Suche basiert, und das Modell eine Antwort auf der Grundlage seines Wissens ohne Grundwahrheit liefern kann. So lassen sich Latenz, Qualität und Kosten effektiver verwalten.
Bevor Sie die Konfiguration für den dynamischen Abruf in Ihrer Anfrage aufrufen, sollten Sie sich mit den folgenden Begriffen vertraut machen:
Vorhersagewert: Wenn Sie eine fundierte Antwort anfordern, weist Gemini dem Prompt einen Vorhersagewert zu. Der Vorhersagewert ist ein Gleitkommawert im Bereich [0,1]. Der Wert hängt davon ab, ob die Antwort auf den Prompt durch die neuesten Informationen aus der Google Suche fundiert werden kann. Wenn für einen Prompt also eine Antwort erforderlich ist, die auf den neuesten Fakten im Web basiert, hat er eine höhere Prädiktionsbewertung. Ein Prompt, für den eine vom Modell generierte Antwort ausreicht, hat einen niedrigeren Vorhersagewert.
Hier sind einige Beispiele für Prompts und ihre Vorhersagewerte.
Prompt Vorhersagewert Kommentar „Schreib ein Gedicht über Pfingstrosen“ 0,13 Das Modell kann auf sein Wissen zurückgreifen und die Antwort muss nicht fundiert werden. „Empfehle mir ein Spielzeug für ein zweijähriges Kind“ 0,36 Das Modell kann auf sein Wissen zurückgreifen und die Antwort muss nicht fundiert werden. „Kannst du mir ein Rezept für eine asiatisch inspirierte Guacamole nennen?“ 0,55 Die Google Suche kann eine fundierte Antwort liefern, eine Fundierung ist aber nicht unbedingt erforderlich. Das Modellwissen reicht möglicherweise aus. „Was ist Agent Builder? Wie wird die Fundierung in Agent Builder abgerechnet?“ 0.72 Erfordert die Google Suche, um eine fundierte Antwort zu generieren. „Wer hat den letzten Formel-1-Grand-Prix gewonnen?“ 0,97 Erfordert die Google Suche, um eine fundierte Antwort zu generieren. Schwellenwert: In Ihrer API-Anfrage können Sie eine Konfiguration für den dynamischen Abruf mit einem Grenzwert angeben. Der Schwellenwert ist ein Gleitkommawert im Bereich [0,1] und standardmäßig 0,3. Wenn der Schwellenwert null ist, wird die Antwort immer mit der Google Suche fundiert. Für alle anderen Schwellenwerte gilt Folgendes:
- Wenn der Vorhersagewert größer oder gleich dem Schwellenwert ist, basiert die Antwort auf der Google Suche. Ein niedrigerer Schwellenwert bedeutet, dass für mehr Prompts Antworten mithilfe der Google Suche generiert werden.
- Wenn der Vorhersagewert unter dem Schwellenwert liegt, generiert das Modell möglicherweise trotzdem eine Antwort, die aber nicht auf der Google Suche basiert.
Informationen zum Festlegen des dynamischen Abrufgrenzwerts mit einem SDK oder der REST API finden Sie im entsprechenden Codebeispiel.
Um einen geeigneten Schwellenwert für Ihre Geschäftsanforderungen zu finden, können Sie eine repräsentative Reihe von Suchanfragen erstellen, die Sie voraussichtlich erhalten werden. Anschließend können Sie die Abfragen nach dem Vorhersagewert in der Antwort sortieren und einen geeigneten Schwellenwert für Ihren Anwendungsfall auswählen.
Eine fundierte Antwort
Wenn Ihr Prompt erfolgreich in der Google Suche fundiert wird, enthält die Antwort groundingMetadata
. Eine fundierte Antwort könnte so aussehen (aus Gründen der Übersichtlichkeit wurden Teile der Antwort weggelassen):
{
"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"
]
}
}
],
...
}
Wenn die Antwort nicht groundingMetadata
enthält, wurde die Antwort nicht erfolgreich geerdet. Das kann verschiedene Gründe haben, z. B. eine geringe Quellenrelevanz oder unvollständige Informationen in der Modellantwort.
Wenn ein fundiertes Ergebnis generiert wird, enthalten die Metadaten URIs, die zum Verlag bzw. Webpublisher der Inhalte weiterleiten, die zum Generieren des fundierten Ergebnisses verwendet wurden.
Diese URIs enthalten die Subdomain vertexaisearch
, wie in diesem gekürzten Beispiel:
https://vertexaisearch.cloud.google.com/grounding-api-redirect/...
. Die Metadaten enthalten auch die Domains der Publisher. Die angegebenen URIs sind 30 Tage lang nach der Generierung des gefundeten Ergebnisses zugänglich.
Das Feld renderedContent
in searchEntryPoint
ist der bereitgestellte Code zur Implementierung von Google-Suchvorschlägen. Weitere Informationen finden Sie unter Google-Suchvorschläge verwenden.