DeepSeek Harness Web Search Provider via LiteLLM

前言

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 的搜索请求,复用现有的网关和虚拟密钥。

核心功能

  1. 直接对接 LiteLLM: 调用 LiteLLM 的 /v1/search 端点,而非模型轮次。
  2. 注册 Provider: 向 ctx.web 注册 id 为 litellm 的 WebSearchProvider。
  3. 单次请求: 每次搜索对应一次 HTTP 请求。
  4. 资源复用: 复用现有的 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 网关已正确配置搜索工具。

  1. 在 LiteLLM 的 config.yaml 中设置 search_tools,并指定一个本地的 search_tool_name(例如 google)。
  2. 使用虚拟密钥验证该工具是否可访问。在终端执行:
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
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜