前言¶
DeepSeek Harness (DSH) 提供了一套联网能力接口 (ctx.web),用于让模型访问外部信息。DSH 自带的搜索 provider 在工作时会占用模型轮次。brilliant751/dsh-web-search-litellm 插件为 DSH 提供了另一种选择:它直接对接 LiteLLM 的 /v1/search 端点,实现一次 HTTP 请求完成搜索,不占用模型计算资源。
是什么¶
这是一个基于 LiteLLM /v1/search 的 Web 搜索 Provider,专供 DeepSeek Harness 的 ctx.web seam 使用。
* 维护者: brilliant751
* 定位: 将 DSH 的搜索请求转换为 LiteLLM 的搜索请求,复用现有的网关和虚拟密钥。
核心功能¶
- 直接对接 LiteLLM: 调用 LiteLLM 的
/v1/search端点,而非模型轮次。 - 注册 Provider: 向
ctx.web注册 id 为litellm的WebSearchProvider。 - 单次请求: 每次搜索对应一次 HTTP 请求。
- 资源复用: 复用现有的 LiteLLM 网关和虚拟密钥,保持 Chat 和 Search 走同一代理。
安装与启用¶
在终端中运行以下命令安装插件。该命令会将插件添加到 dsh.profile.bundles 中,从而注册 litellm provider 并设为活跃的搜索后端。
dsh plugin --profile web add @brilliant751/dsh-web-search-litellm
安装后,需要重启 dsh web 使配置生效。
配置说明¶
插件的默认配置位于 cordis.patch.yml,主要包含以下三个配置项:
| 配置项 | 默认值 | 说明 |
|---|---|---|
baseURL |
https://your-litellm.example.com/v1 |
LiteLLM 网关的基础地址,程序会在此基础上追加 /search。 |
apiKeyEnv |
DEEPSEEK_API_KEY |
密钥的环境变量名,用于在凭证存储中查找密钥。 |
searchToolName |
google |
LiteLLM 网关中配置的搜索工具名称。 |
注意: cordis.patch.yml 中的配置会完全替换目标行的内容,而不是合并。若需修改配置,必须重写完整的配置块。
前置要求¶
在使用此插件前,必须确保 LiteLLM 网关已正确配置搜索工具。
- 在 LiteLLM 的
config.yaml中设置search_tools,并指定一个本地的search_tool_name(例如google)。 - 使用虚拟密钥验证该工具是否可访问。在终端执行:
curl https://your-litellm.example.com/v1/search/tools \
-H 'Authorization: Bearer YOUR_LITELLM_VIRTUAL_KEY'
返回结果中的 data[].search_tool_name 必须包含你配置的名称。
兼容性与限制¶
- DSH 版本: 支持从
0.1.0-rc.6到0.1.2-rc.1的 DSH Web Seam 预发布版本。 - Node.js: 需要 Node.js 20 或更高版本。
- 结果映射: 插件仅将 LiteLLM 返回的
results映射到ctx.web的sources字段,模型端使用的工具接口保持不变 (@deepseek-ai/dsh-tool-web)。
安全与许可¶
- 许可: MIT 许可证。
- 权限: 安装插件会将该插件的代码以你的当前权限运行。
- 安全: 插件只会将配置的
baseURL作为目标发送 LiteLLM 密钥,请确保该地址指向你信任的网关。
目录与源码¶
- GitHub: https://github.com/brilliant751/dsh-web-search-litellm
- 插件目录: https://www.skillhub.cn/plugins/brilliant751/dsh-web-search-litellm