Функцию «Заземление с помощью поиска Google» в Gemini API и AI Studio можно использовать для повышения точности и актуальности ответов модели. В дополнение к более фактическим ответам, когда включено заземление с помощью поиска Google, Gemini API возвращает источники заземления (встроенные вспомогательные ссылки) и предложения поиска Google вместе с содержимым ответа. Поисковые предложения указывают пользователям на результаты поиска, соответствующие обоснованному ответу.
Это руководство поможет вам начать работу с заземлением с помощью поиска Google с помощью одного из SDK Gemini API или REST API.
Настройка заземления поиска
Начиная с Gemini 2.0, поиск Google доступен в качестве инструмента. Это означает, что модель может решить, когда использовать поиск Google. В следующем примере показано, как настроить поиск в качестве инструмента.
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)
Функциональность «Поиск как инструмент» также обеспечивает многоэтапный поиск и запросы с использованием нескольких инструментов (например, сочетание заземления с поиском Google и выполнением кода).
Поиск как инструмент обеспечивает сложные подсказки и рабочие процессы, требующие планирования, рассуждений и размышлений:
- Обоснование для повышения фактичности и актуальности и предоставления более точных ответов.
- Получение артефактов из Интернета для дальнейшего анализа.
- Поиск подходящих изображений, видео или других медиафайлов для помощи в мультимодальных рассуждениях или задачах генерации.
- Кодирование, устранение технических неполадок и другие специализированные задачи.
- Поиск информации для конкретного региона или помощь в точном переводе контента
- Поиск подходящих веб-сайтов для дальнейшего просмотра
Заземление с помощью Google Search работает со всеми доступными языками при выполнении текстовых подсказок. На платном уровне Gemini Developer API вы можете бесплатно получать 1500 запросов заземления с помощью поиска Google в день, при этом за дополнительные запросы взимается стандартная плата в размере 35 долларов США за 1000 запросов.
Вы можете узнать больше , воспользовавшись блокнотом «Инструмент поиска» .
Предложения поиска Google
Чтобы использовать заземление с помощью поиска Google, вам необходимо отобразить предложения поиска Google, которые представляют собой предлагаемые запросы, включенные в метаданные обоснованного ответа. Дополнительную информацию о требованиях к отображению см. в разделе «Использование предложений поиска Google» .
Поиск в Google
Динамический поиск
Некоторые запросы, вероятно, выиграют больше от заземления с помощью поиска Google, чем другие. Функция динамического поиска дает вам дополнительный контроль над тем, когда использовать заземление в поиске Google.
Если режим динамического поиска не указан, всегда срабатывает заземление с помощью поиска Google. Если для режима установлен динамический, модель решает, когда использовать заземление, на основе порогового значения, которое вы можете настроить. Порог представляет собой значение с плавающей запятой в диапазоне [0,1] и по умолчанию равно 0,3. Если пороговое значение равно 0, ответ всегда основан на поиске Google; если это 1, то это никогда не так.
Как работает динамическое извлечение
Вы можете использовать динамический поиск в своем запросе, чтобы выбрать, когда включать заземление с помощью Google Поиска. Это полезно, когда подсказка не требует ответа, основанного на поиске Google, и модель может предоставить ответ, основанный на собственных знаниях, без заземления. Это помогает более эффективно управлять задержкой, качеством и затратами.
Прежде чем использовать конфигурацию динамического получения в своем запросе, ознакомьтесь со следующей терминологией:
Оценка прогноза : когда вы запрашиваете обоснованный ответ, Gemini присваивает подсказке оценку прогнозирования . Оценка прогноза представляет собой значение с плавающей запятой в диапазоне [0,1]. Его ценность зависит от того, может ли подсказка получить пользу от обоснования ответа самой актуальной информацией из поиска Google. Таким образом, если подсказка требует ответа, основанного на самых последних фактах в сети, она имеет более высокий балл прогнозирования. Подсказка, для которой достаточно ответа, сгенерированного моделью, имеет более низкую оценку прогноза.
Вот примеры некоторых подсказок и их оценки прогнозов.
Быстрый Оценка прогноза Комментарий «Напиши стихотворение о пионах» 0,13 Модель может полагаться на свои знания, и ответ не требует обоснования. «Посоветуйте игрушку ребенку 2 лет» 0,36 Модель может полагаться на свои знания, и ответ не требует обоснования. «Можете ли вы дать рецепт гуакамоле в азиатском стиле?» 0,55 Поиск Google может дать обоснованный ответ, но обоснование не является строго обязательным; знаний модели может быть достаточно. «Что такое Agent Builder? Как в Agent Builder выставляется счет за заземление?» 0,72 Для получения обоснованного ответа требуется поиск в Google. «Кто выиграл последний Гран-при Формулы-1?» 0,97 Для получения обоснованного ответа требуется поиск в Google. Порог : в вашем запросе API вы можете указать конфигурацию динамического получения с порогом. Порог представляет собой значение с плавающей запятой в диапазоне [0,1] и по умолчанию равно 0,3. Если пороговое значение равно нулю, ответ всегда основывается на поиске Google. Для всех других значений порога применимо следующее:
- Если оценка прогноза превышает пороговое значение или равна ему, ответ основывается на результатах поиска Google. Более низкий порог означает, что больше запросов имеют ответы, созданные с помощью заземления с помощью поиска Google.
- Если оценка прогноза меньше порогового значения, модель все равно может сгенерировать ответ, но это не связано с поиском Google.
Чтобы узнать, как установить порог динамического получения с помощью SDK или REST API, см. соответствующий пример кода .
Чтобы найти хороший порог, соответствующий потребностям вашего бизнеса, вы можете создать репрезентативный набор запросов, с которыми вы ожидаете столкнуться. Затем вы можете отсортировать запросы в соответствии с оценкой прогноза в ответе и выбрать подходящий порог для вашего варианта использования.
Обоснованный ответ
Если ваш запрос успешно связан с поиском Google, ответ будет включать groundingMetadata
. Обоснованный ответ может выглядеть примерно так (части ответа опущены для краткости):
{
"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"
]
}
}
],
...
}
Если ответ не включает groundingMetadata
, это означает, что ответ не был успешно обоснован. Это может произойти по нескольким причинам, включая низкую релевантность источника или неполную информацию в ответе модели.
При создании обоснованного результата метаданные содержат URI, которые перенаправляют издателям контента, который использовался для создания обоснованного результата. Эти URI содержат поддомен vertexaisearch
, как в этом усеченном примере: https://vertexaisearch.cloud.google.com/grounding-api-redirect/...
. Метаданные также содержат домены издателей. Предоставленные URI остаются доступными в течение 30 дней после получения обоснованного результата.
Поле renderedContent
в searchEntryPoint
— это предоставленный код для реализации предложений поиска Google. Дополнительную информацию см. в разделе Использование предложений поиска Google .