前言¶
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