依托 Exa Web Search 进行接地

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 进行接地会产生以下费用:

  • Gemini token 消耗:提示 token、思考 token、输出 token。如需了解详情,请参阅价格。
  • Gemini 的“利用数据进行接地”:如需了解详情,请参阅价格。
  • 使用 Exa 搜索 API 的价格:如需了解详情,请参阅Exa 的价格页面。