
- ChatGPT (OpenAI)、Gemini(Google)和 Claude(Anthropic)已正式在 API 层面内置联网搜索,均以「服务器端检索工具」的形式提供,调用简单、自动返回带引用的实时内容。
- DeepSeek-R1 提供了“enable_search”参数,但目前仅在阿里云 LLM API 网关及 OpenSearch 场景下生效,属区域/版本受限的公测能力。
- 字节跳动豆包与通义千问暂未在通用 chat-completions API 中开放官方搜索工具,只能通过 Ark 插件(豆包)或“官网工作流/网页端工具链”(千问)调用,SDK/HTTP 原生接口仍需自行接入外部搜索 API。
- 各家计费方式差异明显——OpenAI 与 Anthropic按「搜索调用+生成 token」双计费,Google 采用「$35/千次检索」单独计价,DeepSeek 在 Quark Search 通道内暂免单独收费。
- 功能最细致的是 Claude:可限制 max_uses、白名单/黑名单域名、本地化 user_location,并支持多轮渐进检索;Gemini 则允许动态阈值 retrieval_threshold 控制是否检索;OpenAI 提供 search_context_size 选项平衡质量-费用。
各模型联网搜索能力横向对比
模型 | 是否内置搜索 | 启用方式 / 关键参数 | 返回格式 & 引用 | 计费策略 | 主要限制与备注 |
---|---|---|---|---|---|
DeepSeek-R1 | 限定公测 | enable_search:true (仅 deepseek-r1,需在阿里云 LLM API / OpenSearch 调用) | 摘要+URL | 暂随深度求索 token 计价,无单独检索费 | 依赖夸克搜索,国内可用;其他 DeepSeek 系列暂不支持 |
豆包 Doubao | 无通用接口 | 在火山方舟 bot/应用 配置“联网插件”,API 侧收到结构化结果 JSON | 自行拼接 | 与推理 token 同价;插件流量日 1000 次免费 | 仅 Ark 平台可用;OpenAI 兼容 / 直接 REST 暂无法 enable_search |
通义千问 Qwen | 无通用接口 | DashScope 网页“工具链”带搜索;API 未开放 | 摘要+URL | N/A | 用户需自行 RAG 或 Bing/Brave API + 函数调用 |
ChatGPT (OpenAI) | ✅ | a) Chat Completions 选 gpt-4o-search-preview 并可传 web_search_options ;b) Responses API 在 tools 数组加入 {"type":"web_search_preview"} | 内联引用 url_citation | 搜索费计入模型定价 (22.5/10 美元每百万 tokens),不同 context_size 成本阶梯7 | 仅 4o 系列;β阶段,部分 API 参数不支持6 |
Gemini (Google) | ✅ | tools:[{"google_search":{}}] ,可在 client.models.generate_content 或 Vertex AI Chat Completions 使用 | 内联链接+Search Suggestions | $35 / 1000 次检索,token 另计 | 动态检索阈值 retrieval_threshold ;可与多达 10 个检索源混用 |
Claude 3.x | ✅ | tools:[{"type":"web_search_20250305","name":"web_search","max_uses":N,...}] | 强制返回出处;可设 allowed_domains / blocked_domains / user_location | $10 / 1000 次检索+模型 token | Claude 3.7 Sonnet、3.5 系列及 4 Opus 支持;默认迭代检索,可限定 max_uses |
逐模型解析
1. DeepSeek
DeepSeek 在阿里云 LLM API 控制台可对 deepseek-r1 打开「联网搜索」插件。调用时在请求体设置
"enable_search": true
即可由后台调用夸克搜索返回摘要片段并拼接到上下文中,并在消息尾部给出简短 URL 引用。功能尚属公测,尚未向 DeepSeek-V3/V2 等其他型号开放。
2. 豆包(Doubao)
火山引擎 Ark 支持为 bot/工作流挂载「联网插件」,返回结构定义见官方文档(site_name/summary/url
等字段)。插件实际调用字节系搜索(含抖音百科、字节搜索等),但 OpenAI 兼容 chat/completions
接口暂无 enable_search
字段,需通过 Ark 流程或自行集成外部搜索源。
3. 通义千问(Qwen)
DashScope 网页版已将千问同「联网搜索、网页解析」打包,但 SDK / HTTP API 暂未暴露对应参数。开发者通常采用 函数调用+Bing/Brave SERP API 实现检索再回写上下文。阿里云 OpenSearch 最近只对 DeepSeek-R1 试点,千问暂未列入。
4. ChatGPT / OpenAI
- 两条调用路径
- Chat Completions 直接选
gpt-4o-search-preview
/gpt-4o-mini-search-preview
,可附web_search_options
(search_context_size
/user_location
等)。 - Responses API 任意模型 +
tools:[{"type":"web_search_preview"}]
在需要时自动检索6。
- 输出 以
url_citation
嵌入文本并在annotations
带完整 URL。 - 计价 检索使用独立模型,token 价格略高;不同
search_context_size
影响费用7。
5. Gemini
在 Gemini Developer API 或 Vertex AI 调用时加入
"tools": [{"google_search":{}}]
即可启用 Grounding with Google Search,Google 在后台完成查询、去重、排序,并返回带来源链接的答案。
可通过 dynamic_retrieval.rerank_threshold
(AI Studio UI)或 SDK retrieval_threshold
精细控制是否检索;user_location
自动影响本地化结果。付费层面按检索请求计价 $35/千次。
6. Claude
将 "type":"web_search_20250305"
工具加入 tools
字段并指定 max_uses
即可;Claude 会自行决定查询词、迭代多次并生成带引用结果。
高级控制:
- 域名过滤
allowed_domains
/blocked_domains
- 地域
user_location
- 迭代深度
max_uses
——超限将触发max_uses_exceeded
错误1。
费用 $10/千次检索+模型 token,现已覆盖 Claude 4 Opus、3.7 Sonnet、3.5 Haiku/Sonnet。
选型建议
- 立即用到“官方级”实时信息:首选 Gemini(质量+全球检索覆盖)或 Claude(引用控制粒度高),若已有 OpenAI 生态则可用 GPT-4o-search-preview 快速接入。
- 团队在国内落地、需备案合规:DeepSeek-R1 的 Quark Search 通道是现阶段可公测的选择;豆包目前需通过 Ark 插件使用;千问则建议结合自建 RAG。
- 要严格限定信息源或减少幻觉:Claude 的域名黑白名单和
max_uses
能提供最强可控性。 - 成本敏感且查询量大:把检索放在自身后端,用 SERP API+函数调用让任意模型阅读搜索结果,可完全避开平台搜索费。
参考代码片段
# OpenAI Responses API 调用内置检索
from openai import OpenAI
client = OpenAI()
resp = client.responses.create(
model="gpt-4o",
tools=[{"type":"web_search_preview", "search_context_size":"low"}],
input="最新 GPT-4o 模型的价格是多少?"
)
print(resp.output_text)
# Gemini Developer API 调用 Google Search Grounding
from google import genai
cli = genai.Client()
resp = cli.models.generate_content(
model="gemini-2.5-flash",
contents="今年奥运会乒乓球男单冠军是谁?",
config=genai.types.GenerateContentConfig(
tools=[{"google_search":{}}],
)
)
print(resp.text)
# Claude 3.7 Sonnet 启用 web_search,限制最多 2 次查询
import anthropic, os, json
client = anthropic.Anthropic(api_key=os.getenv("ANTHROPIC_API_KEY"))
msg = client.messages.create(
model="claude-3-7-sonnet-20250219",
max_tokens=1024,
tools=[{
"type":"web_search_20250305",
"name":"web_search",
"max_uses":2,
"allowed_domains":["bbc.com","reuters.com"]
}],
messages=[{"role":"user","content":"请给出最近一次英国基准利率决议要点"}]
)
print(json.dumps(msg,indent=2))
总结:真正原生、开箱即用的“联网搜索”目前仅存在于 OpenAI GPT-4o 系列、Google Gemini、Anthropic Claude 以及小范围公测的 DeepSeek-R1。其他(豆包、通义千问等)仍需插件或外部搜索 API 配合。选择时应综合考虑调用简易度、引用透明度、费用及监管合规,并预留 fallback 方案(自建 RAG 或函数调用)以应对服务变动。