Exa 提供了一个搜索 API,可让您访问公开的网络数据,这些数据经过优化,可用于为大语言模型回答建立依据。本页介绍了如何使用 Exa 将 Gemini 回答接地。
在 Gemini Enterprise Agent Platform 上使用 Exa 网页搜索进行接地是一项单独的服务(如您的 Cloud de Confiance by S3NS 协议中所定义),它将 Gemini 模型连接到 Exa's search API 提供的公开网络数据。
使用场景
通过让模型访问最新的相关网络数据,使用 Exa 进行接地可以提高准确性并减少幻觉。常见用例包括:
- 通用智能体和聊天机器人:检索最新信息,生成更可靠的回答。
- 研究智能体:跨多个来源进行深入的深网研究。
- 编码智能体:拉取最新的代码段、文档和技术参考资料。
- 语音智能体:网络检索,支持实时、低延迟的语音交互。
- 特定于垂直领域的智能体:提取针对特定行业或知识垂直领域量身定制的最新领域特定信息。
- 数据丰富化:使用当前网络上下文和元数据扩充内部数据集。
- 自动化工作流:定期收集新闻、人物、公司或其他经常更新的数据,以用于内部或生产工作流。
示例
谁赢得了 2026 年超级碗?
| 不接地 | 接地 |
|---|---|
| 我无法告诉您谁赢得了 2026 年超级碗,因为该赛事尚未举行。 | 西雅图海鹰队在 2026 年 2 月 8 日举行的第 60 届超级碗中以 29-13 的比分击败新英格兰爱国者队。 来源 :domain1.com、domain2.com,... |
支持的模型
本部分列出了支持使用 Exa 网页搜索进行接地的模型。
点击即可展开支持的模型
准备工作
如需使用 Exa 进行接地,您需要从 Exa 的网站获取 API 密钥。此 API 密钥用于向 Gemini 发送的请求中。
使用 Exa 将 Gemini 回答接地
使用 Google Gen AI SDK 或 REST API 从 Gemini 请求接地回答。为获得最佳性能,我们建议您对可选参数使用默认设置,除非您严格要求使用非默认值。
在运行示例之前,请完成前提条件, 包括获取 Exa API 密钥。
Python
安装
pip install --upgrade google-genai
如需了解详情,请参阅 SDK 参考文档。
设置环境变量以将 Google Gen AI SDK 与 Vertex AI 搭配使用:
# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values # with appropriate values for your project. export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT export GOOGLE_CLOUD_LOCATION=global export GOOGLE_GENAI_USE_ENTERPRISE=True
在运行示例之前,请先进行以下替换:
- MODEL_ID:要使用的受支持模型的 ID,例如
gemini-2.5-flash。 - TEXT:要发送给模型的文本提示。
- API_KEY:您的 Exa 网页搜索 API 密钥。
- SEARCH_TYPE:可选:要运行的 Exa 搜索
的类型。支持的值包括
fast和instant。默认为fast,它提供全面结果,延迟时间更短,非常适合面向用户的搜索和交互式工作流。对于需要最低延迟的体验(例如聊天、语音智能体和自动补全),请使用instant;它会优先考虑速度而非搜索浏览页数,从而最大限度地缩短响应时间。 - EXCLUDE_DOMAINS:可选:要从搜索结果中排除的网域列表。如果指定了此参数,系统将不会返回来自这些网域的结果。如需排除多个网域,请将每个网域作为单独的带引号的字符串添加到列表中(例如,
["example.com", "example.net"])。您最多可以指定 1200 个网域。 - INCLUDE_DOMAINS:可选:要包含在搜索中的网域列表。如果指定了此参数,结果将仅来自这些网域。如需包含多个网域,请将每个网域作为单独的带引号的字符串添加到列表中(例如,
["example.com", "example.net"])。您最多可以指定 1200 个网域。 - MAX_CHARACTERS:可选:要为突出显示返回的最大 字符数。控制每个 网址返回的突出显示文本的总长度。
- NUM_RESULTS:可选:用于接地的搜索结果数量上限。如果未指定,则默认为
5。
from google import genai
from google.genai import types
client = genai.Client()
response = client.models.generate_content(
model="MODEL_ID",
contents="TEXT",
config=types.GenerateContentConfig(
tools=[
types.Tool(
exa_ai_search=types.ToolExaAiSearch(
# Required. Your API key for Exa web search.
api_key="API_KEY",
# Optional. Customize the search. Click a placeholder to
# enter a value, or remove the line to accept the default.
custom_configs={
"type": "SEARCH_TYPE",
"excludeDomains": ["EXCLUDE_DOMAINS"],
"includeDomains": ["INCLUDE_DOMAINS"],
"contents": {
"highlights": {
"maxCharacters": MAX_CHARACTERS,
},
},
"numResults": NUM_RESULTS,
},
)
)
],
),
)
print(response.text)
# The grounding metadata contains the web sources used to ground the response.
print(response.candidates[0].grounding_metadata.grounding_chunks)
Java
了解如何安装或更新 Java。
如需了解详情,请参阅 SDK 参考文档。
设置环境变量以将 Google Gen AI SDK 与 Vertex AI 搭配使用:
# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values # with appropriate values for your project. export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT export GOOGLE_CLOUD_LOCATION=global export GOOGLE_GENAI_USE_ENTERPRISE=True
在运行示例之前,请先进行以下替换:
- MODEL_ID:要使用的受支持模型的 ID,例如
gemini-2.5-flash。 - TEXT:要发送给模型的文本提示。
- API_KEY:您的 Exa 网页搜索 API 密钥。
- SEARCH_TYPE:可选:要运行的 Exa 搜索
的类型。支持的值包括
fast和instant。默认为fast,它提供全面结果,延迟时间更短,非常适合面向用户的搜索和交互式工作流。对于需要最低延迟的体验(例如聊天、语音智能体和自动补全),请使用instant;它会优先考虑速度而非搜索浏览页数,从而最大限度地缩短响应时间。 - EXCLUDE_DOMAINS:可选:要从搜索结果中排除的网域列表。如果指定了此参数,系统将不会返回来自这些网域的结果。如需排除多个网域,请将每个网域作为单独的带引号的字符串添加到列表中(例如,
["example.com", "example.net"])。您最多可以指定 1200 个网域。 - INCLUDE_DOMAINS:可选:要包含在搜索中的网域列表。如果指定了此参数,结果将仅来自这些网域。如需包含多个网域,请将每个网域作为单独的带引号的字符串添加到列表中(例如,
["example.com", "example.net"])。您最多可以指定 1200 个网域。 - MAX_CHARACTERS:可选:要为突出显示返回的最大 字符数。控制每个 网址返回的突出显示文本的总长度。
- NUM_RESULTS:可选:用于接地的搜索结果数量上限。如果未指定,则默认为
5。
import com.google.genai.Client;
import com.google.genai.types.GenerateContentConfig;
import com.google.genai.types.GenerateContentResponse;
import com.google.genai.types.Tool;
import com.google.genai.types.ToolExaAiSearch;
import java.util.List;
import java.util.Map;
public class ExaGroundingSample {
public static void main(String[] args) {
try (Client client = Client.builder().build()) {
GenerateContentConfig config =
GenerateContentConfig.builder()
.tools(
Tool.builder()
.exaAiSearch(
ToolExaAiSearch.builder()
// Required. Your API key for Exa web search.
.apiKey("API_KEY")
// Optional. Customize the search. Click a
// placeholder to enter a value, or remove the
// entry to accept the default.
.customConfigs(
Map.of(
"type", "SEARCH_TYPE",
"excludeDomains",
List.of("EXCLUDE_DOMAINS"),
"includeDomains",
List.of("INCLUDE_DOMAINS"),
"contents",
Map.of(
"highlights",
Map.of(
"maxCharacters",
MAX_CHARACTERS)),
"numResults", NUM_RESULTS))
.build())
.build())
.build();
GenerateContentResponse response =
client.models.generateContent(
"MODEL_ID", "TEXT", config);
System.out.println(response.text());
// The grounding metadata contains the web sources used to ground the response.
System.out.println(
response.candidates().get().get(0).groundingMetadata().get().groundingChunks().get());
}
}
}
Node.js
安装
npm install @google/genai
如需了解详情,请参阅 SDK 参考文档。
设置环境变量以将 Google Gen AI SDK 与 Vertex AI 搭配使用:
# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values # with appropriate values for your project. export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT export GOOGLE_CLOUD_LOCATION=global export GOOGLE_GENAI_USE_ENTERPRISE=True
在运行示例之前,请先进行以下替换:
- MODEL_ID:要使用的受支持模型的 ID,例如
gemini-2.5-flash。 - TEXT:要发送给模型的文本提示。
- API_KEY:您的 Exa 网页搜索 API 密钥。
- SEARCH_TYPE:可选:要运行的 Exa 搜索
的类型。支持的值包括
fast和instant。默认为fast,它提供全面结果,延迟时间更短,非常适合面向用户的搜索和交互式工作流。对于需要最低延迟的体验(例如聊天、语音智能体和自动补全),请使用instant;它会优先考虑速度而非搜索浏览页数,从而最大限度地缩短响应时间。 - EXCLUDE_DOMAINS:可选:要从搜索结果中排除的网域列表。如果指定了此参数,系统将不会返回来自这些网域的结果。如需排除多个网域,请将每个网域作为单独的带引号的字符串添加到列表中(例如,
["example.com", "example.net"])。您最多可以指定 1200 个网域。 - INCLUDE_DOMAINS:可选:要包含在搜索中的网域列表。如果指定了此参数,结果将仅来自这些网域。如需包含多个网域,请将每个网域作为单独的带引号的字符串添加到列表中(例如,
["example.com", "example.net"])。您最多可以指定 1200 个网域。 - MAX_CHARACTERS:可选:要为突出显示返回的最大 字符数。控制每个 网址返回的突出显示文本的总长度。
- NUM_RESULTS:可选:用于接地的搜索结果数量上限。如果未指定,则默认为
5。
import {GoogleGenAI} from '@google/genai';
const ai = new GoogleGenAI({});
const response = await ai.models.generateContent({
model: 'MODEL_ID',
contents: 'TEXT',
config: {
tools: [
{
exaAiSearch: {
// Required. Your API key for Exa web search.
apiKey: 'API_KEY',
// Optional. Customize the search. Click a placeholder to enter a
// value, or remove the line to accept the default.
customConfigs: {
type: 'SEARCH_TYPE',
excludeDomains: ['EXCLUDE_DOMAINS'],
includeDomains: ['INCLUDE_DOMAINS'],
contents: {
highlights: {
maxCharacters: MAX_CHARACTERS,
},
},
numResults: NUM_RESULTS,
},
},
},
],
},
});
console.log(response.text);
// The grounding metadata contains the web sources used to ground the response.
console.log(response.candidates[0].groundingMetadata.groundingChunks);
REST
在使用任何请求数据之前,请先进行以下替换:
- LOCATION:处理请求的区域。如需使用 全球端点,请清除端点名称中的相应位置,并将资源位置配置为 `global`。
- PROJECT_ID:您的 Cloud de Confiance by S3NS 项目 ID。
- MODEL_ID:要使用模型的 ID。
- TEXT:要发送给模型的文本提示。
- API_KEY:您的 Exa 网页搜索 API 密钥。
- SEARCH_TYPE:可选:要运行的 Exa 搜索
要运行的类型。支持的值包括
fast和instant。默认为fast,它提供全面结果,延迟时间更短,非常适合面向用户的搜索和交互式工作流。对于需要最低延迟的体验(例如聊天、语音智能体和自动补全),请使用instant;它会优先考虑速度而非搜索浏览页数,从而最大限度地缩短响应时间。 - EXCLUDE_DOMAINS:可选:要从搜索结果中排除的网域列表。如果指定了此参数,系统将不会返回来自这些网域的结果。 您最多可以指定 1200 个网域。
- INCLUDE_DOMAINS:可选:要包含在搜索中的网域列表。如果指定了此参数,结果将仅来自这些网域。 您最多可以指定 1200 个网域。
- MAX_CHARACTERS:可选:要为突出显示返回的最大字符数 。控制每个网址返回的突出显示文本的总长度。
- NUM_RESULTS:可选:用于接地的搜索结果数量上限。如果未指定,则默认为
5。
HTTP 方法和网址:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:generateContent
请求 JSON 正文:
{
"contents": [{
"role": "user",
"parts": [{
"text": "TEXT"
}]
}],
"tools": [{
"exaAiSearch": {
"api_key": "API_KEY",
"customConfigs": {
"type": "SEARCH_TYPE",
"excludeDomains": ["EXCLUDE_DOMAINS"],
"includeDomains": ["INCLUDE_DOMAINS"],
"contents": {
"highlights": {
"maxCharacters": MAX_CHARACTERS
}
},
"numResults": NUM_RESULTS
}
}
}],
"model": "projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID"
}
如需发送您的请求,请展开以下选项之一:
您应该收到类似以下内容的 JSON 响应。
Quota
默认配额为每分钟 200 个提示。如果您需要提高速率限制,请将您的使用场景和要求发送至 support@exa.ai 并抄送给您的 Google 客户支持团队。
结算
使用 Exa 进行接地会产生以下费用: