Использование Google Поиска позволяет модели Gemini подключаться к общедоступному веб-контенту в режиме реального времени. Это позволяет модели предоставлять более точные и актуальные ответы и ссылаться на проверяемые источники, находящиеся за пределами её знаний.
Использование поиска Google имеет следующие преимущества:
- Повышайте фактическую точность : уменьшайте галлюцинации модели, основывая ответы на информации из реального мира.
- Доступ к информации в режиме реального времени : отвечайте на вопросы о последних событиях и темах.
- Предоставьте ссылки : создайте доверие пользователей или дайте им возможность просматривать соответствующие сайты, указав источники утверждений модели.
- Выполняйте более сложные задачи : извлекайте артефакты и соответствующие изображения, видео или другие медиафайлы для помощи в задачах по рассуждению.
- Улучшите ответы, специфичные для региона или языка : найдите информацию, специфичную для региона, или помогите точно перевести контент.
Обратите внимание, что поддержка Grounding for Google Search доступна для iOS+, Android, Web и Flutter. В Unity она появится в следующей версии.
Поддерживаемые модели
-
gemini-2.5-pro
-
gemini-2.5-flash
-
gemini-2.5-flash-lite-preview-06-17
-
gemini-2.0-flash-001
(и его автоматически обновляемый псевдонимgemini-2.0-flash
) -
gemini-2.0-flash-live-preview-04-09
Поддерживаемые языки
Ознакомьтесь с поддерживаемыми языками для моделей Gemini .
Заземлите модель с помощью поиска Google
Щелкните своего поставщика API Gemini , чтобы просмотреть специфичный для этого поставщика контент и код на этой странице. |
При создании экземпляра GenerativeModel
предоставьте GoogleSearch
в качестве tool
, который модель может использовать для генерации своего ответа.
Быстрый
import FirebaseAI
// Initialize the Gemini Developer API backend service
let ai = FirebaseAI.firebaseAI(backend: .googleAI())
// Create a `GenerativeModel` instance with a model that supports your use case
let model = ai.generativeModel(
modelName: "GEMINI_MODEL_NAME",
// Provide Google Search as a tool that the model can use to generate its response
tools: [Tool.googleSearch()]
)
let response = try await model.generateContent("Who won the euro 2024?")
print(response.text ?? "No text in response.")
// Make sure to comply with the "Grounding with Google Search" usage requirements,
// which includes how you use and display the grounded result
Kotlin
// Initialize the Gemini Developer API backend service
// Create a `GenerativeModel` instance with a model that supports your use case
val model = Firebase.ai(backend = GenerativeBackend.googleAI()).generativeModel(
modelName = "GEMINI_MODEL_NAME",
// Provide Google Search as a tool that the model can use to generate its response
tools = listOf(Tool.GoogleSearch())
)
val response = model.generateContent("Who won the euro 2024?")
print(response.text)
// Make sure to comply with the "Grounding with Google Search" usage requirements,
// which includes how you use and display the grounded result
Java
// Initialize the Gemini Developer API backend service
// Create a `GenerativeModel` instance with a model that supports your use case
GenerativeModel ai = FirebaseAI.getInstance(GenerativeBackend.googleAI())
.generativeModel("GEMINI_MODEL_NAME",
null,
null,
// Provide Google Search as a tool that the model can use to generate its response
List.of(Tool.GoogleSearch()));
// Use the GenerativeModelFutures Java compatibility layer which offers
// support for ListenableFuture and Publisher APIs
GenerativeModelFutures model = GenerativeModelFutures.from(ai);
ListenableFuture response = model.generateContent("Who won the euro 2024?");
Futures.addCallback(response, new FutureCallback() {
@Override
public void onSuccess(GenerateContentResponse result) {
String resultText = result.getText();
System.out.println(resultText);
}
@Override
public void onFailure(Throwable t) {
t.printStackTrace();
}
}, executor);
// Make sure to comply with the "Grounding with Google Search" usage requirements,
// which includes how you use and display the grounded result
Web
import { initializeApp } from "firebase/app";
import { getAI, getGenerativeModel, GoogleAIBackend } from "firebase/ai";
// TODO(developer) Replace the following with your app's Firebase configuration
// See: https://firebase.google.com/docs/web/learn-more#config-object
const firebaseConfig = {
// ...
};
// Initialize FirebaseApp
const firebaseApp = initializeApp(firebaseConfig);
// Initialize the Gemini Developer API backend service
const ai = getAI(firebaseApp, { backend: new GoogleAIBackend() });
// Create a `GenerativeModel` instance with a model that supports your use case
const model = getGenerativeModel(
ai,
{
model: "GEMINI_MODEL_NAME",
// Provide Google Search as a tool that the model can use to generate its response
tools: [{ googleSearch: {} }]
}
);
const result = await model.generateContent("Who won the euro 2024?");
console.log(result.response.text());
// Make sure to comply with the "Grounding with Google Search" usage requirements,
// which includes how you use and display the grounded result
Dart
import 'package:firebase_core/firebase_core.dart';
import 'package:firebase_ai/firebase_ai.dart';
import 'firebase_options.dart';
// Initialize FirebaseApp
await Firebase.initializeApp(
options: DefaultFirebaseOptions.currentPlatform,
);
// Initialize the Gemini Developer API backend service
// Create a `GenerativeModel` instance with a model that supports your use case
final model = FirebaseAI.googleAI().generativeModel(
model: 'GEMINI_MODEL_NAME',
// Provide Google Search as a tool that the model can use to generate its response
tools: [
Tool.googleSearch(),
],
);
final response = await model.generateContent([Content.text("Who won the euro 2024?")]);
print(response.text);
// Make sure to comply with the "Grounding with Google Search" usage requirements,
// which includes how you use and display the grounded result
Единство
Поддержка Unity появится в следующей версии.
Узнайте, как выбрать модельподходящий для вашего варианта использования и приложения.
Для достижения наилучших результатов используйте температуру 1.0
(это значение по умолчанию для всех моделей 2,5). Узнайте, как задать температуру в настройках модели .
Как работает заземление с помощью поиска Google
При использовании инструмента GoogleSearch
модель автоматически управляет всем рабочим процессом поиска, обработки и цитирования информации.
Вот рабочий процесс модели:
- Получение подсказки : Ваше приложение отправляет подсказку модели Gemini с включенным инструментом
GoogleSearch
. - Анализ запроса : модель анализирует запрос и определяет, может ли Google Search улучшить свой ответ.
- Отправка запросов в Google Search : при необходимости модель автоматически генерирует один или несколько поисковых запросов и выполняет их.
- Обработка результатов поиска : модель обрабатывает результаты поиска Google и формулирует ответ на исходный запрос.
- Возвращает «обоснованный результат» : модель возвращает окончательный, удобный для пользователя ответ, основанный на результатах поиска Google. Этот ответ включает текстовый ответ модели и
groundingMetadata
с поисковыми запросами, результатами поиска и цитатами.
Обратите внимание, что использование Google Поиска в качестве инструмента для модели не обязывает модель всегда использовать его для генерации ответа. В таких случаях ответ не будет содержать объекта groundingMetadata
и, следовательно, не будет считаться «обоснованным результатом».
Понять обоснованный результат
Если модель основывает свой ответ на результатах поиска Google, то ответ включает объект groundingMetadata
, содержащий структурированные данные, которые необходимы для проверки утверждений и создания расширенного опыта цитирования в вашем приложении.
Объект groundingMetadata
в «обоснованном результате» содержит следующую информацию:
webSearchQueries
: массив поисковых запросов, отправленных в Google Поиск. Эта информация полезна для отладки и понимания процесса рассуждений модели.searchEntryPoint
: Содержит HTML и CSS для отображения необходимых «подсказок поиска Google». Вам необходимо соблюдать требования к использованию «Grounding with Google Search» для выбранного вами поставщика API: Gemini Developer API или Vertex AI Gemini API (см. раздел «Условия обслуживания» в разделе «Условия обслуживания»). Подробнее об использовании и отображении обоснованных результатов см. далее на этой странице.groundingChunks
: Массив объектов, содержащих веб-источники (uri
иtitle
).groundingSupports
: массив фрагментов для связиtext
ответа модели с источниками вgroundingChunks
. Каждый фрагмент связывает текстовыйsegment
(определяемыйstartIndex
иendIndex
) с одним или несколькими индексамиgroundingChunkIndices
. Это поле помогает создавать встроенные ссылки. Подробнее об использовании и отображении результата с привязкой к основе см. далее на этой странице.
Вот пример ответа, который включает объект 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]
}
]
}
}
]
}
Используйте и отображайте обоснованный результат
Если модель использует инструмент поиска Google для генерации ответа, она предоставит в ответе объект groundingMetadata
.
Требуется для отображения подсказок поиска Google и рекомендуется для отображения цитат .
Помимо соответствия требованиям использования инструмента поиска Google, отображение этой информации помогает вам и вашим конечным пользователям проверять ответы и открывает возможности для дальнейшего обучения.
(Обязательно) Отображать предложения поиска Google
Если ответ содержит «Предложения поиска Google», то вам необходимо соблюдать требования к использованию «Основания с поиском Google», которые включают в себя способ отображения предложений поиска Google.
Объект groundingMetadata
содержит «предложения поиска Google», в частности поле searchEntryPoint
, которое имеет поле renderedContent
, обеспечивающее совместимые стили HTML и CSS, которые необходимо реализовать для отображения предложений поиска в вашем приложении.
Подробную информацию о требованиях к отображению и поведению подсказок поиска Google см. в документации Google Cloud . Обратите внимание: хотя это подробное руководство и содержится в документации Vertex AI Gemini API , оно применимо и к поставщику Gemini Developer API .
См. примеры кода далее в этом разделе.
(Рекомендуется) Отображать цитаты
Объект groundingMetadata
содержит структурированные данные о цитировании, в частности поля groundingSupports
и groundingChunks
. Используйте эту информацию, чтобы напрямую связать утверждения модели с их источниками в вашем пользовательском интерфейсе (встроенными и агрегированными).
См. примеры кода далее в этом разделе.
Примеры кодов
Эти примеры кода предоставляют обобщенные шаблоны использования и отображения обоснованного результата. Однако вы несете ответственность за обеспечение соответствия вашей конкретной реализации требованиям.
Быстрый
// ...
// Get the model's response
let text = response.text
// Get the grounding metadata
if let candidate = response.candidates.first,
let groundingMetadata = candidate.groundingMetadata {
// REQUIRED - display Google Search suggestions
// (renderedContent contains HTML and CSS for the search widget)
if let renderedContent = groundingMetadata.searchEntryPoint?.renderedContent {
// TODO(developer): Display Google Search suggestions using a WebView
}
// RECOMMENDED - display citations
let groundingChunks = groundingMetadata.groundingChunks
for chunk in groundingMetadata.groundingChunks {
if let web = chunk.web {
let title = web.title // for example, "uefa.com"
let uri = web.uri // for example, "https://vertexaisearch.cloud.google.com..."
// TODO(developer): show citation in the UI
}
}
}
Kotlin
// ...
// Get the model's response
val text = response.text
// Get the grounding metadata
val groundingMetadata = response.candidates.firstOrNull()?.groundingMetadata
// REQUIRED - display Google Search suggestions
// (renderedContent contains HTML and CSS for the search widget)
val renderedContent = groundingMetadata?.searchEntryPoint?.renderedContent
if (renderedContent != null) {
// TODO(developer): Display Google Search suggestions using a WebView
}
// RECOMMENDED - display citations
val groundingChunks = groundingMetadata?.groundingChunks
groundingChunks?.let { chunks ->
for (chunk in chunks) {
val title = chunk.web?.title // for example, "uefa.com"
val uri = chunk.web?.uri // for example, "https://vertexaisearch.cloud.google.com..."
// TODO(developer): show citation in the UI
}
}
Java
// ...
Futures.addCallback(response, new FutureCallback() {
@Override
public void onSuccess(GenerateContentResponse result) {
// Get the model's response
String text = result.getText();
// Get the grounding metadata
GroundingMetadata groundingMetadata =
result.getCandidates()[0].getGroundingMetadata();
if (groundingMetadata != null) {
// REQUIRED - display Google Search suggestions
// (renderedContent contains HTML and CSS for the search widget)
String renderedContent =
groundingMetadata.getSearchEntryPoint().getRenderedContent();
if (renderedContent != null) {
// TODO(developer): Display Google Search suggestions using a WebView
}
// RECOMMENDED - display citations
List chunks = groundingMetadata.getGroundingChunks();
if (chunks != null) {
for(GroundingChunk chunk : chunks) {
WebGroundingChunk web = chunk.getWeb();
if (web != null) {
String title = web.getTitle(); // for example, "uefa.com"
String uri = web.getUri(); // for example, "https://vertexaisearch.cloud.google.com..."
// TODO(developer): show citation in the UI
}
}
}
}
}
@Override
public void onFailure(Throwable t) {
t.printStackTrace();
}
}, executor);
Web
// ...
// Get the model's text response
const text = result.response.text();
// Get the grounding metadata
const groundingMetadata = result.response.candidates?.[0]?.groundingMetadata;
// REQUIRED - display Google Search suggestions
// (renderedContent contains HTML and CSS for the search widget)
const renderedContent = groundingMetadata?.searchEntryPoint?.renderedContent;
if (renderedContent) {
// TODO(developer): render this HTML and CSS in the UI
}
// RECOMMENDED - display citations
const groundingChunks = groundingMetadata?.groundingChunks;
if (groundingChunks) {
for (const chunk of groundingChunks) {
const title = chunk.web?.title; // for example, "uefa.com"
const uri = chunk.web?.uri; // for example, "https://vertexaisearch.cloud.google.com..."
// TODO(developer): show citation in the UI
}
}
Dart
// ...
// Get the model's response
final text = response.text;
// Get the grounding metadata
final groundingMetadata = response.candidates.first.groundingMetadata;
// REQUIRED - display Google Search suggestions
// (renderedContent contains HTML and CSS for the search widget)
final renderedContent = groundingMetadata?.searchEntryPoint?.renderedContent;
if (renderedContent != null) {
// TODO(developer): Display Google Search suggestions using a WebView
}
// RECOMMENDED - display citations
final groundingChunks = groundingMetadata?.groundingChunks;
if (groundingChunks != null) {
for (var chunk in groundingChunks) {
final title = chunk.web?.title; // for example, "uefa.com"
final uri = chunk.web?.uri; // for example, "https://vertexaisearch.cloud.google.com..."
// TODO(developer): show citation in the UI
}
}
Единство
Поддержка Unity появится в следующей версии.
Наземные результаты и мониторинг ИИ в консоли Firebase
Если вы включили мониторинг с помощью ИИ в консоли Firebase , ответы хранятся в Cloud Logging . По умолчанию эти данные хранятся 30 дней.
Вы несете ответственность за то, чтобы этот срок хранения или любой другой установленный вами период полностью соответствовал вашему конкретному варианту использования и любым дополнительным требованиям к выбранному вами поставщику API Gemini : Gemini Developer API или Vertex AI Gemini API (см. раздел «Условия обслуживания» в разделе «Особые условия обслуживания»). Вам может потребоваться скорректировать срок хранения в Cloud Logging для соответствия этим требованиям.
Цены и ограничения
Обязательно ознакомьтесь с ценами, доступностью моделей и ограничениями для поиска Google в документации выбранного вами поставщика API Gemini : Gemini Developer API |Vertex AI Gemini API .