DeepSeek联网搜索API配置教程:附Demo部署

浏览:2次阅读
没有评论
发布日期:

DeepSeek 联网搜索 API现在不用自己接搜索引擎了:在请求的 tools 里声明 deepseek_web_search(联网搜索)和 deepseek_read_url(阅读链接),模型填 deepseek-flash,搜索和抓网页都由服务端完成。本文按官方文档整理三种接口的配置写法、Python 调用示例、开源 chat-demo 部署方法和常见报错。

DeepSeek联网搜索API配置教程:附Demo部署插图
图片来源:DeepSeek API 文档:构建 Chatbot

准备工作:确认模型和接口

DeepSeek 在 2026 年 11 月 13 日发布了全家桶应用 API(详细介绍见本站资讯 DeepSeek 全家桶 API 发布解读)。开始配置前先记住三点:

  • 模型:联网工具目前只支持 deepseek-flash;
  • 密钥:在 DeepSeek 开放平台(platform.deepseek.com)创建 API Key,下文用环境变量 DEEPSEEK_API_KEY 表示;
  • 接口:三种协议都能用,按你现有代码选一个即可。
协议 地址 鉴权头 思考开关写法
Chat Completions https://api.deepseek.com/chat/completions Authorization: Bearer "thinking": {"type": "enabled/disabled"}
Messages(Anthropic 兼容) https://api.deepseek.com/anthropic/v1/messages x-api-key "thinking": {"type": "enabled/disabled"}
Responses https://api.deepseek.com/responses Authorization: Bearer "reasoning": {"effort": "none/low/high/max"},none 为关闭

联网搜索和深度思考搜索的区别

两者用的是同一个工具 deepseek_web_search,区别只在思考开关:

  • 关闭思考 = 联网搜索:模型自己判断要不要搜,一次搜索可以包含多个查询词,回答附带引用,和 DeepSeek 网页端的联网搜索一致;
  • 开启思考 = 深度思考搜索:模型在多步推理中搜索、打开网页、页内查找,官方说明最多调用约 20 次工具后作答;
  • 阅读链接:声明 deepseek_read_url 后,模型会识别用户消息里的链接并抓取网页。只想读链接、不想搜索时,只声明这一个工具。

步骤一:用 curl 测试联网搜索

先用官方文档的 Chat Completions 示例验证 Key 和工具是否可用。下面这个请求开启了思考(即深度思考搜索)、阅读链接、安全校验和会话标题,并以流式返回:

curl https://api.deepseek.com/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer ${DEEPSEEK_API_KEY}" \
  -d '{"model":"deepseek-flash","thinking": {"type":"enabled"},"tools": [{"type": "deepseek_web_search"},
      {"type": "deepseek_read_url"}
    ],
    "safety_check": {"level": "high"},
    "title": {"enabled": true},
    "messages": [{"role": "user", "content": "DeepSeek V4.1 有哪些更新?"}],
    "stream": true
  }'

想要普通联网搜索、少花点推理 Token,把 thinking 改成 {"type": "disabled"} 即可。如果你用的是 Anthropic 格式的 Messages 接口,工具要写成 {"type": "deepseek_web_search", "name": "deepseek_web_search"},鉴权头改为 x-api-key。

步骤二:在 Python 里调用并读取引用

下面用 requests 发一个非流式请求(关闭思考),按官方文档的字段读取回答、引用和工具调用记录:

import os, requests

resp = requests.post(
    "https://api.deepseek.com/chat/completions",
    headers={"Authorization": f"Bearer {os.environ['DEEPSEEK_API_KEY']}"},
    json={
        "model": "deepseek-flash",
        "thinking": {"type": "disabled"},
        "tools": [{"type": "deepseek_web_search"}, {"type": "deepseek_read_url"}],
        "messages": [{"role": "user", "content": "今天有哪些 AI 新闻?"}],
    },
    timeout=300,
)
msg = resp.json()["choices"][0]["message"]
print(msg["content"])                      # 回答正文
for a in msg.get("annotations", []):        # 引用来源
    print(a["url_citation"]["url"])
for step in msg.get("server_tool_calls", []):  # 每一步的搜索 / 读网页记录
    for call in step["calls"]:
        print(call["kind"], call["status"], call["action"])

几个要点(均出自官方联网工具文档):

  • Chat Completions 的回答正文里没有引用角标,引用放在 message.annotations,类型为 url_citation,用 start_index/end_index 定位;
  • 工具调用放在扩展字段 message.server_tool_calls,kind 可能是 search、deep_search、read_link、image_search 等;
  • 流式输出时,工具过程通过 server_tool_event 下发,完整的 server_tool_calls 和 annotations 只在带 finish_reason 的最后一个 chunk 里发送一次。

可选:告诉模型日期和所在地

问“今天的新闻”这类问题时,模型需要知道当前日期。官方提供了 latest_reminder 消息,放在对应的 user 消息之前,Chat Completions 和 Messages 支持,Responses 不支持:

"messages": [{"role": "latest_reminder", "content": "2026-11-14, 星期六, 上海,Web, 中文"},
  {"role": "user", "content": "今天有哪些 AI 新闻?"}
]

步骤三:多轮对话要原样回传

做聊天应用时,每次请求都要带上完整历史,并把之前的 assistant 回复 原样回传。在 Chat Completions 里就是连同 server_tool_calls 一起传回去。官方说明,阅读链接得到的网页靠调用里的 signature 还原;如果你的框架或网关把 server_tool_calls 丢了,请求照样能执行,但之前读过的网页不会再进入上下文。另外,搜索结果和之前轮次的思考本来就不会带进后续轮次,只保留回答正文。

步骤四:部署官方开源 chat-demo

不想自己写前端,可以直接用官方开源的 deepseek-ai/chat-demo。它是纯静态页面,没有应用后端,浏览器直接连 DeepSeek API,API Key 存在浏览器 localStorage,对话存在 IndexedDB。

DeepSeek联网搜索API配置教程:附Demo部署插图1
图片来源:GitHub:deepseek-ai/chat-demo

按 README,有三种用法:

  1. 在线体验:打开 https://deepseek-ai.github.io/chat-demo/(文档里另一个入口是 https://cdn.deepseek.com/chat-demo),在设置里填 API Key;
  2. 下载即用:在仓库 Releases 下载压缩包,解压后双击 index.html;
  3. 源码运行:需要 Node.js 22.12+ 和 pnpm:
git clone https://github.com/deepseek-ai/chat-demo.git
cd chat-demo
pnpm install
pnpm dev        # 打开 http://localhost:8090
pnpm build      # 生成静态文件到 dist/

dist/ 可以直接扔到 Nginx 等静态服务器上(没有服务器可以参考本站的 海外 VPS 专题)。默认 API 地址是 https://api.deepseek.com,如需改成自己的网关,在 rspack.config.ts 里用 createConfig({apiOrigin, devServer}) 设置;注意网关必须支持搜索、阅读链接、标题和 latest_reminder 这些扩展字段。

费用怎么算

工具调用在 Token 费之外单独计费,官方价格为网页搜索、网页抓取各 5 元 / 千次。计费细则:

DeepSeek联网搜索API配置教程:附Demo部署插图2
图片来源:DeepSeek 全家桶应用 API 发布公告
  • 网页搜索:按一次调用里的查询词条数计,3 个查询词计 3 次;失败或没结果不计费;
  • 图片搜索:每张图计 1 次,模型框选区域时每个区域另计 1 次;
  • 阅读链接:按成功抓取的网页数计,开启安全校验后被替换为 url_not_allowed 等错误的网页也计费;
  • 实际计费次数看 usage.server_tool_use 里的 tool_search、tool_fetch、tool_image_search,web_search_requests 只是展示用的结果块数量。

深度思考搜索一次可能调用十几次工具,成本比普通联网搜索高不少,日常问答建议先关闭思考。

常见报错与解决

返回 400:tool_choice 指定了联网工具

tool_choice 不能指定 deepseek_web_search 或 deepseek_read_url,否则返回 400,是否搜索由模型判断。另外 tool_choice: "none" 会关闭全部工具,包括阅读链接。

返回 400:传了 web_search_options

Chat Completions 里声明了这些工具后,再传 OpenAI 风格的 web_search_options 会返回 400,删掉它,改在 tools 里声明。response_format 不是 text,或传了 logprobs、top_logprobs,同样会 400。

temperature 等参数不生效

这是官方设计:声明了联网工具、safety_check 为 high 或开启 title 后,temperature、top_p、stop、seed 等由服务端决定。max_tokens 仍生效,但限制的是每一步推理的输出长度。

阅读链接失败:url_not_accessible / url_not_allowed

url_not_accessible 表示链接无法读取;url_not_allowed 表示不允许读取或网页没通过内容安全审核;unavailable 是服务不可用或调用未完成。换一个可公开访问的链接再试。

OpenAI Python SDK 的 get_final_completion() 报错

官方文档提示:响应以 content_filter 或 length 结束时,OpenAI SDK .stream() 的 get_final_completion() 会报错。遇到时先判断 finish_reason,length 就调大 max_tokens,content_filter 是被安全审核拒答。

401、429 等通用错误

401 检查 Key 是否填对、鉴权头是否匹配协议;429 是并发或频率超限,处理思路可参考本站的 DeepSeek R1 联网搜索 API 配置教程 和 Claude Code 接入 DeepSeek 教程 里的排查步骤。

常见问题

DeepSeek 联网搜索 API 能用在 deepseek-pro 上吗?

按官方文档,目前请使用 deepseek-flash 模型。

对外上线的应用需要注意什么?

官方要求对外提供服务时开启 safety_check,并自行履行内容安全审核、大模型登记、AI 标识等义务。

chat-demo 会把我的 Key 传到第三方吗?

README 说明 Key 和设置存在浏览器本地,消息、附件和语音内容会发到你配置的 API 服务。用公共电脑时记得清理浏览器数据。

信息来源

整理时间:2026-11-14(Asia/Shanghai)。配置方法和价格均据上述官方文档整理,本文未做实测;以 DeepSeek 开放平台最新说明为准。

订阅更新
DeepSeek联网搜索API配置教程:附Demo部署插图9DeepSeek联网搜索API配置教程:附Demo部署插图10微信扫码关注「狠活 AI」
用 RSS 阅读器订阅本站,新教程第一时间收到。RSS 订阅
正文完
 0