Использование Google Поиска позволяет Gemini подключать модель к веб-контенту в режиме реального времени и работать со всеми доступными языками. Это позволяет Gemini предоставлять более точные ответы и ссылаться на проверяемые источники, находящиеся за пределами его знаний.
Заземление поможет вам создавать приложения, которые могут:
- Повышайте фактическую точность: уменьшайте галлюцинации модели, основывая ответы на реальной информации.
- Получайте доступ к информации в режиме реального времени: отвечайте на вопросы о последних событиях и темах.
Предоставьте ссылки: завоюйте доверие пользователей, указав источники утверждений о модели.
Питон
from google import genai
from google.genai import types
client = genai.Client()
grounding_tool = types.Tool(
google_search=types.GoogleSearch()
)
config = types.GenerateContentConfig(
tools=[grounding_tool]
)
response = client.models.generate_content(
model="gemini-2.5-flash",
contents="Who won the euro 2024?",
config=config,
)
print(response.text)
JavaScript
import { GoogleGenAI } from "@google/genai";
const ai = new GoogleGenAI({});
const groundingTool = {
googleSearch: {},
};
const config = {
tools: [groundingTool],
};
const response = await ai.models.generateContent({
model: "gemini-2.5-flash",
contents: "Who won the euro 2024?",
config,
});
console.log(response.text);
ОТДЫХ
curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash:generateContent" \
-H "x-goog-api-key: $GEMINI_API_KEY" \
-H "Content-Type: application/json" \
-X POST \
-d '{
"contents": [
{
"parts": [
{"text": "Who won the euro 2024?"}
]
}
],
"tools": [
{
"google_search": {}
}
]
}'
Дополнительную информацию можно получить, воспользовавшись инструментом поиска .
Как работает заземление с помощью поиска Google
При включении инструмента google_search модель автоматически обрабатывает весь рабочий процесс поиска, обработки и цитирования информации.

- Запрос пользователя: Ваше приложение отправляет запрос пользователя в API Gemini с включенным инструментом
google_search. - Анализ подсказки: модель анализирует подсказку и определяет, может ли поиск Google улучшить ответ.
- Поиск Google: при необходимости модель автоматически генерирует один или несколько поисковых запросов и выполняет их.
- Обработка результатов поиска: модель обрабатывает результаты поиска, синтезирует информацию и формулирует ответ.
- Обоснованный ответ: API возвращает окончательный, удобный для пользователя ответ, основанный на результатах поиска. Этот ответ включает текстовый ответ модели и
groundingMetadataс поисковыми запросами, результатами поиска и цитатами.
Понимание реакции заземления
При успешном обосновании ответа он включает поле groundingMetadata . Эти структурированные данные необходимы для проверки заявлений и создания полноценного цитирования в вашем приложении.
{
"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]
}
]
}
}
]
}
API Gemini возвращает следующую информацию с помощью groundingMetadata :
-
webSearchQueries: Массив использованных поисковых запросов. Полезно для отладки и понимания процесса рассуждений модели. -
searchEntryPoint: Содержит HTML и CSS для отображения необходимых поисковых подсказок. Полные требования к использованию подробно описаны в Условиях обслуживания . -
groundingChunks: Массив объектов, содержащих веб-источники (uriиtitle). -
groundingSupports: Массив фрагментов для связиtextответа модели с источниками вgroundingChunks. Каждый фрагмент связываетsegmentтекста (определяемыйstartIndexиendIndex) с одним или несколькимиgroundingChunkIndices. Это ключ к созданию встроенных ссылок.
Обоснование с помощью поиска Google можно также использовать в сочетании с инструментом контекста URL для обоснования ответов как в общедоступных веб-данных, так и в конкретных предоставленных вами URL-адресах.
Атрибуция источников с помощью встроенных ссылок
API возвращает структурированные данные о цитировании, предоставляя вам полный контроль над отображением источников в пользовательском интерфейсе. Вы можете использовать поля groundingSupports и groundingChunks для прямой связи утверждений модели с их источниками. Ниже представлен общий шаблон обработки метаданных для создания ответа со встроенными кликабельными цитатами.
Питон
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);
Новый ответ со встроенными цитатами будет выглядеть так:
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:/...)
Цены
При использовании Grounding with Google Search ваш проект оплачивается за каждый поисковый запрос, который модель решает выполнить. Если модель решает выполнить несколько поисковых запросов для ответа на одну подсказку (например, поиск по запросам "UEFA Euro 2024 winner" и "Spain vs England Euro 2024 final score" в одном вызове API), это считается двумя оплачиваемыми использованиями инструмента для данного запроса.
Подробную информацию о ценах смотрите на странице цен Gemini API .
Поддерживаемые модели
Экспериментальные и предварительные модели не включены. С их возможностями можно ознакомиться на странице обзора моделей .
| Модель | Заземление с помощью поиска Google |
|---|---|
| Джемини 2.5 Про | ✔️ |
| Близнецы 2.5 Флэш | ✔️ |
| Gemini 2.5 Flash-Lite | ✔️ |
| Gemini 2.0 Flash | ✔️ |
| Джемини 1.5 Про | ✔️ |
| Близнецы 1.5 Флэш | ✔️ |
Поддерживаемые комбинации инструментов
Вы можете использовать Grounding with Google Search вместе с другими инструментами, такими как выполнение кода и контекст URL, для поддержки более сложных вариантов использования.
Заземление с моделями Gemini 1.5 (устаревшие)
Хотя инструмент google_search рекомендуется для Gemini 2.0 и более поздних версий, Gemini 1.5 поддерживает устаревший инструмент google_search_retrieval . Этот инструмент предоставляет dynamic режим, позволяющий модели решать, следует ли выполнять поиск, основываясь на её уверенности в том, что запрос требует свежей информации. Если уверенность модели превышает заданный вами dynamic_threshold (значение от 0,0 до 1,0), она выполнит поиск.
Питон
# 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()
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({});
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.");
}
ОТДЫХ
curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash:generateContent" \
-H "x-goog-api-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
}
}
}]
}'
Что дальше?
- Попробуйте раздел «Заземление с поиском Google» в кулинарной книге API Gemini .
- Узнайте о других доступных инструментах, таких как вызов функций .
- Узнайте, как дополнять запросы конкретными URL-адресами с помощью инструмента контекста URL .