dsh-web-search-local:無密鑰多引擎網絡搜索插件

前言

DeepSeek Harness (DSH) 的 ctx.web 接口本身是模型無關的,默認提供程序 dsh-web-search-deepseek 卻依賴 DeepSeek 服務端的搜索能力。當切換到本地模型(如 Ollama)時,由於缺少 API Key,搜索功能會失效。gausszhou/dsh-web-search-local 插件通過註冊本地提供程序,繞過 DeepSeek 服務端搜索,支持本地模型直接調用網絡搜索與頁面抓取。

功能概覽

該插件提供兩類提供程序:
- local-multi:本地多引擎網絡搜索提供程序。
- local-fetch:本地頁面抓取提供程序。

搜索採用分層策略:SearXNG(私有)-> 全球(Google, DuckDuckGo, Mojeek)-> CN(Bing, Baidu, Sogou, 360)。同層引擎並行查詢,結果合併輪詢。單層無結果時降級至下一層。頁面抓取支持字符集感知解碼(含 GBK)。

安裝與啓用

通過 DSH CLI 安裝,插件會自動激活。

dsh plugin add @gausszhou/dsh-web-search-local

安裝後,web 配置會自動切換到 local-multi / local-fetch 提供程序,並禁用 web-search-deepseek。如需調整默認配置,可在 cordis.patch.yml 中覆蓋。

配置說明

在 cordis.patch.yml 中配置引擎列表、代理及超時等參數。

config:
  engines: [searxng, google, duckduckgo, mojeek, bing, baidu, sogou, 360]
  skipWithoutProxy: [google, duckduckgo, mojeek]
  proxyUrl: ''  # ''自動 | 'off' | 'http://host:port'
  searxngBaseUrl: 'http://127.0.0.1:8080'
  searchTimeoutMs: 12000
  engineMinIntervalMs: 1500

支持通過環境變量 HTTPS_PROXY 或 HTTP_PROXY 設置代理。代理僅對全球引擎生效,CN 引擎直連。

速率限制與韌性

插件內置應對引擎限流的機制:
- 節流:engineMinIntervalMs 防止單引擎重複調用。
- 熔斷器:遇到驗證牆或異常時觸發冷卻。
- 降級:DuckDuckGo 遇到限制時自動嘗試 Lite 接口。

注意事項

  • 需要運行 Node.js >= 20.3。
  • Node 進程不讀取系統瀏覽器代理,需通過配置或環境變量指定。
  • Google 引擎易受抓取限制,建議配置 SearXNG。
羽毛球分组比赛记分
小程序二维码

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

小夜