Bei der Fundierung mit der Google Suche wird das Gemini-Modell mit Echtzeit-Webinhalten verknüpft und funktioniert mit allen verfügbaren Sprachen. So kann Gemini genauere Antworten liefern und über den Wissensgrenzwert hinaus verifizierbare Quellen zitieren.
Mithilfe von Grounding können Sie Anwendungen erstellen, die:
- Sachliche Accuracy erhöhen: Reduzieren Sie Modellhalluzinationen, indem Sie Antworten auf reale Informationen stützen.
- Auf Echtzeitinformationen zugreifen:Sie können Fragen zu aktuellen Ereignissen und Themen beantworten.
Quellenangaben machen:Steigern Sie das Vertrauen der Nutzer, indem Sie die Quellen für die Behauptungen des Modells angeben.
Python
from google import genai
from google.genai import types
# Configure the client
client = genai.Client()
# Define the grounding tool
grounding_tool = types.Tool(
google_search=types.GoogleSearch()
)
# Configure generation settings
config = types.GenerateContentConfig(
tools=[grounding_tool]
)
# Make the request
response = client.models.generate_content(
model="gemini-2.5-flash",
contents="Who won the euro 2024?",
config=config,
)
# Print the grounded response
print(response.text)
JavaScript
import { GoogleGenAI } from "@google/genai";
// Configure the client
const ai = new GoogleGenAI();
// Define the grounding tool
const groundingTool = {
googleSearch: {},
};
// Configure generation settings
const config = {
tools: [groundingTool],
};
// Make the request
const response = await ai.models.generateContent({
model: "gemini-2.5-flash",
contents: "Who won the euro 2024?",
config,
});
// Print the grounded response
console.log(response.text);
REST
curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash:generateContent?key=$GEMINI_API_KEY" \
-H "Content-Type: application/json" \
-X POST \
-d '{
"contents": [
{
"parts": [
{"text": "Who won the euro 2024?"}
]
}
],
"tools": [
{
"google_search": {}
}
]
}'
Weitere Informationen finden Sie im Notebook zum Suchtool.
So funktioniert die Erdung mit der Google Suche
Wenn Sie das google_search
-Tool aktivieren, übernimmt das Modell den gesamten Workflow zum Suchen, Verarbeiten und Zitieren von Informationen automatisch.
- Nutzeraufforderung:Ihre Anwendung sendet die Aufforderung eines Nutzers an die Gemini API, wobei das
google_search
-Tool aktiviert ist. - Prompt-Analyse:Das Modell analysiert den Prompt und ermittelt, ob die Antwort durch eine Google Suche verbessert werden kann.
- Google Suche:Bei Bedarf generiert das Modell automatisch eine oder mehrere Suchanfragen und führt sie aus.
- Verarbeitung der Suchergebnisse:Das Modell verarbeitet die Suchergebnisse, synthetisiert die Informationen und formuliert eine Antwort.
- Begründete Antwort:Die API gibt eine endgültige, nutzerfreundliche Antwort zurück, die auf den Suchergebnissen basiert. Diese Antwort enthält die Textantwort des Modells und
groundingMetadata
mit den Suchanfragen, Webergebnissen und Zitaten.
Informationen zur Antwort auf die Anfrage zur Erdung
Wenn eine Antwort erfolgreich begründet wurde, enthält sie das Feld groundingMetadata
. Diese strukturierten Daten sind wichtig, um Behauptungen zu überprüfen und in Ihrer App umfassende Quellenangaben zu erstellen.
{
"candidates": [
{
"content": {
"parts": [
{
"text": "Spain won Euro 2024, defeating England 2-1 in the final. This victory marks Spain's record fourth European Championship title."
}
],
"role": "model"
},
"groundingMetadata": {
"webSearchQueries": [
"UEFA Euro 2024 winner",
"who won euro 2024"
],
"searchEntryPoint": {
"renderedContent": "<!-- HTML and CSS for the search widget -->"
},
"groundingChunks": [
{"web": {"uri": "https://vertexaisearch.cloud.google.com.....", "title": "aljazeera.com"}},
{"web": {"uri": "https://vertexaisearch.cloud.google.com.....", "title": "uefa.com"}}
],
"groundingSupports": [
{
"segment": {"startIndex": 0, "endIndex": 85, "text": "Spain won Euro 2024, defeatin..."},
"groundingChunkIndices": [0]
},
{
"segment": {"startIndex": 86, "endIndex": 210, "text": "This victory marks Spain's..."},
"groundingChunkIndices": [0, 1]
}
]
}
}
]
}
Die Gemini API gibt mit dem groundingMetadata
die folgenden Informationen zurück:
webSearchQueries
: Array der verwendeten Suchanfragen. Das ist hilfreich für die Fehlerbehebung und zum Verständnis des Inferenzprozesses des Modells.searchEntryPoint
: Enthält das HTML und CSS zum Rendern der erforderlichen Suchvorschläge. Die vollständigen Nutzungsanforderungen finden Sie in den Nutzungsbedingungen.groundingChunks
: Array von Objekten mit den Webquellen (uri
undtitle
).groundingSupports
: Array von Chunks, um die Modellantworttext
mit den Quellen ingroundingChunks
zu verbinden. Jeder Block verknüpft einen Textsegment
(definiert durchstartIndex
undendIndex
) mit einem oder mehrerengroundingChunkIndices
. Das ist der Schlüssel zum Erstellen von Inline-Zitaten.
Die Fundierung mit der Google Suche kann auch in Kombination mit dem URL-Kontexttool verwendet werden, um Antworten sowohl auf öffentlichen Webdaten als auch auf den von Ihnen angegebenen URLs zu fundieren.
Quellen mit Inline-Zitaten zuordnen
Die API gibt strukturierte Zitatdaten zurück, sodass Sie die Darstellung von Quellen auf Ihrer Benutzeroberfläche vollständig steuern können. Mit den Feldern groundingSupports
und groundingChunks
können Sie die Aussagen des Modells direkt mit den Quellen verknüpfen. Hier ist ein gängiges Muster für die Verarbeitung der Metadaten, um eine Antwort mit Inline-Zitaten zu erstellen, die angeklickt werden können.
Python
def add_citations(response):
text = response.text
supports = response.candidates[0].grounding_metadata.grounding_supports
chunks = response.candidates[0].grounding_metadata.grounding_chunks
# Sort supports by end_index in descending order to avoid shifting issues when inserting.
sorted_supports = sorted(supports, key=lambda s: s.segment.end_index, reverse=True)
for support in sorted_supports:
end_index = support.segment.end_index
if support.grounding_chunk_indices:
# Create citation string like [1](link1)[2](link2)
citation_links = []
for i in support.grounding_chunk_indices:
if i < len(chunks):
uri = chunks[i].web.uri
citation_links.append(f"[{i + 1}]({uri})")
citation_string = ", ".join(citation_links)
text = text[:end_index] + citation_string + text[end_index:]
return text
# Assuming response with grounding metadata
text_with_citations = add_citations(response)
print(text_with_citations)
JavaScript
function addCitations(response) {
let text = response.text;
const supports = response.candidates[0]?.groundingMetadata?.groundingSupports;
const chunks = response.candidates[0]?.groundingMetadata?.groundingChunks;
// Sort supports by end_index in descending order to avoid shifting issues when inserting.
const sortedSupports = [...supports].sort(
(a, b) => (b.segment?.endIndex ?? 0) - (a.segment?.endIndex ?? 0),
);
for (const support of sortedSupports) {
const endIndex = support.segment?.endIndex;
if (endIndex === undefined || !support.groundingChunkIndices?.length) {
continue;
}
const citationLinks = support.groundingChunkIndices
.map(i => {
const uri = chunks[i]?.web?.uri;
if (uri) {
return `[${i + 1}](${uri})`;
}
return null;
})
.filter(Boolean);
if (citationLinks.length > 0) {
const citationString = citationLinks.join(", ");
text = text.slice(0, endIndex) + citationString + text.slice(endIndex);
}
}
return text;
}
const textWithCitations = addCitations(response);
console.log(textWithCitations);
Die neue Antwort mit den Einfügungen sieht dann so aus:
Spain won Euro 2024, defeating England 2-1 in the final.[1](https:/...), [2](https:/...), [4](https:/...), [5](https:/...) This victory marks Spain's record-breaking fourth European Championship title.[5]((https:/...), [2](https:/...), [3](https:/...), [4](https:/...)
Preise
Wenn Sie die Funktion „Fundierung mit der Google Suche“ verwenden, wird Ihr Projekt pro API-Anfrage abgerechnet, die das google_search
-Tool enthält. Wenn das Modell mehrere Suchanfragen ausführt, um einen einzelnen Prompt zu beantworten (z. B. die Suche nach "UEFA Euro 2024 winner"
und "Spain vs England Euro 2024 final score"
innerhalb desselben API-Aufrufs), wird dies als eine einzige abrechenbare Nutzung des Tools für diese Anfrage gezählt.
Detaillierte Preisinformationen finden Sie auf der Preisseite der Gemini API.
Unterstützte Modelle
Experimentelle und Vorabversionen sind nicht enthalten. Die Funktionen finden Sie auf der Seite Modellübersicht.
Modell | Fundierung mit der Google Suche |
---|---|
Gemini 2.5 Pro | ✔️ |
Gemini 2.5 Flash | ✔️ |
Gemini 2.0 Flash | ✔️ |
Gemini 1.5 Pro, | ✔️ |
Gemini 1.5 Flash | ✔️ |
Grounding mit Gemini 1.5-Modellen (alt)
Für Gemini 2.0 und höher wird das Tool google_search
empfohlen. Gemini 1.5 unterstützt das Legacy-Tool google_search_retrieval
. Dieses Tool bietet einen dynamic
-Modus, mit dem das Modell entscheiden kann, ob eine Suche ausgeführt werden soll, basierend auf der Wahrscheinlichkeit, dass für den Prompt aktuelle Informationen erforderlich sind. Wenn die Konfidenz des Modells über dem von Ihnen festgelegten dynamic_threshold
liegt (ein Wert zwischen 0,0 und 1,0), wird eine Suche durchgeführt.
Python
# Note: This is a legacy approach for Gemini 1.5 models.
# The 'google_search' tool is recommended for all new development.
import os
from google import genai
from google.genai import types
client = genai.Client(api_key=os.getenv("GEMINI_API_KEY"))
retrieval_tool = types.Tool(
google_search_retrieval=types.GoogleSearchRetrieval(
dynamic_retrieval_config=types.DynamicRetrievalConfig(
mode=types.DynamicRetrievalConfigMode.MODE_DYNAMIC,
dynamic_threshold=0.7 # Only search if confidence > 70%
)
)
)
config = types.GenerateContentConfig(
tools=[retrieval_tool]
)
response = client.models.generate_content(
model='gemini-1.5-flash',
contents="Who won the euro 2024?",
config=config,
)
print(response.text)
if not response.candidates[0].grounding_metadata:
print("\nModel answered from its own knowledge.")
JavaScript
// Note: This is a legacy approach for Gemini 1.5 models.
// The 'googleSearch' tool is recommended for all new development.
import { GoogleGenAI, DynamicRetrievalConfigMode } from "@google/genai";
const ai = new GoogleGenAI({ apiKey: process.env.GEMINI_API_KEY });
const retrievalTool = {
googleSearchRetrieval: {
dynamicRetrievalConfig: {
mode: DynamicRetrievalConfigMode.MODE_DYNAMIC,
dynamicThreshold: 0.7, // Only search if confidence > 70%
},
},
};
const config = {
tools: [retrievalTool],
};
const response = await ai.models.generateContent({
model: "gemini-1.5-flash",
contents: "Who won the euro 2024?",
config,
});
console.log(response.text);
if (!response.candidates?.[0]?.groundingMetadata) {
console.log("\nModel answered from its own knowledge.");
}
REST
curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash:generateContent?key=$GEMINI_API_KEY" \
-H "Content-Type: application/json" \
-X POST \
-d '{
"contents": [
{"parts": [{"text": "Who won the euro 2024?"}]}
],
"tools": [{
"google_search_retrieval": {
"dynamic_retrieval_config": {
"mode": "MODE_DYNAMIC",
"dynamic_threshold": 0.7
}
}
}]
}'
Nächste Schritte
- Im Gemini API Cookbook finden Sie ein Beispiel für die Fundierung mit der Google Suche.
- Weitere Informationen zu anderen verfügbaren Tools wie dem Funktionsaufruf
- Informationen zum Erweitern von Prompts mit bestimmten URLs mit dem URL-Kontext-Tool