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。
羽毛球分组比赛记分
小程序二维码

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

小夜