Функцию «Заземление с помощью поиска Google» в Gemini API и AI Studio можно использовать для повышения точности и актуальности ответов модели. В дополнение к более фактическим ответам, когда включено заземление с помощью поиска Google, Gemini API возвращает источники заземления (встроенные вспомогательные ссылки) и предложения поиска Google вместе с содержимым ответа. Поисковые предложения указывают пользователям на результаты поиска, соответствующие обоснованному ответу.
Заземление с помощью Google Поиска поддерживает только текстовые подсказки. Он не поддерживает мультимодальные подсказки (текст и изображение, текст и аудио и т. д.). Заземление с помощью Google Search поддерживает все доступные языки для моделей Gemini.
Это руководство поможет вам начать работу с заземлением с помощью поиска Google с помощью одного из SDK Gemini API или REST API.
Настройка модели для использования поиска Google
Чем полезно заземление с помощью Google Поиска?
В генеративном ИИ под заземлением понимается процесс подключения модели к проверяемым источникам информации. Эти источники могут предоставлять информацию о реальных рабочих местах или другой конкретный контекст. Заземление помогает повысить точность, надежность и полезность выходных сигналов ИИ.
Обоснование особенно важно для подсказок, требующих актуальной информации из Интернета. Используя заземление, модель может получить доступ к информации после окончания срока ее знаний, получить источники информации и ответить на вопросы, на которые иначе она не смогла бы точно ответить.
Используя Google AI Studio или Gemini API, вы можете перенести выходные данные модели в поиск Google. Использование Google Поиска дает следующие преимущества:
- Позволяет моделировать ответы, привязанные к конкретному контенту.
- Уменьшает галлюцинации модели, которые представляют собой случаи, когда модель генерирует контент, не соответствующий действительности.
- Привязывает ответы модели к источникам, которые пользователь может просмотреть и открыть.
- Повышает надежность и применимость создаваемого контента.
Когда вы используете заземление с поиском Google, вы эффективно подключаете модель к надежным результатам поиска в Интернете. Поскольку ответы необоснованной модели основаны на изученных шаблонах, вы можете не получить фактические ответы на подсказки о текущих событиях (например, запрос прогноза погоды или окончательный счет недавнего футбольного матча). Поскольку Интернет обеспечивает доступ к новой информации, обоснованная подсказка может дать более актуальные ответы со ссылкой на источники.
Ниже приведен пример сравнения необоснованного ответа и обоснованного ответа, созданного с использованием API. (Ответы были получены в октябре 2024 года.)
Незаземленные Близнецы | Заземление с помощью поиска Google |
---|---|
Подсказка: кто выиграл Суперкубок в этом году? Ответ: В этом году (2023) «Канзас-Сити Чифс» выиграли Суперкубок LVII. | Подсказка: кто выиграл Суперкубок в этом году? Ответ: «Канзас-Сити Чифс» выиграли Суперкубок LVIII в этом году, победив «Сан-Франциско Форти Найнерс» в дополнительное время со счетом 25:22. |
В необоснованном ответе модель ссылается на победу «Канзас-Сити Чифс» в Суперкубке 2023 года. В обоснованном ответе модель правильно ссылается на свою недавнюю победу в 2024 году.
На следующем изображении показано, как выглядит обоснованный ответ в AI Studio.
Предложения поиска 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,7. Если пороговое значение равно нулю, ответ всегда основывается на поиске Google. Для всех других значений порога применимо следующее:
- Если оценка прогноза превышает пороговое значение или равна ему, ответ основывается на результатах поиска Google. Более низкий порог означает, что больше запросов имеют ответы, созданные с помощью заземления с помощью поиска Google.
- Если оценка прогноза меньше порогового значения, модель все равно может сгенерировать ответ, но это не связано с поиском Google.
Чтобы узнать, как установить порог динамического получения с помощью SDK или REST API, см. соответствующий пример кода .
Если вы используете AI Studio, вы можете установить порог динамического извлечения, нажав «Изменить заземление» .
Чтобы найти хороший порог, соответствующий потребностям вашего бизнеса, вы можете создать репрезентативный набор запросов, с которыми вы ожидаете столкнуться. Затем вы можете отсортировать запросы в соответствии с оценкой прогноза в ответе и выбрать подходящий порог для вашего варианта использования.
Обоснованный ответ
Если ваш запрос успешно связан с поиском 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 .