DreamRift/dsh-web-search-pool

DreamRift★ 2JavaScriptLast synced: 2026-08-16

Open on GitHub

DeepSeek Harness 网页搜索插件:多个 Tavily/Exa key 按限流负载均衡,429 自动换 key,含设置页 UI 与 Tavily 额度总览。

README excerpt

AI 搜索 Key 池负载均衡 dsh-web-search-pool 是 DeepSeek Harness 的网页搜索插件。它把多个 Tavily key 和可选的 Exa key 组织成一个 key 池,按每个 key 的 RPM 限流自动负载均衡,并在 429、凭据缺失、额度耗尽或上游失败时 自动切换到其他 key 或供应商。插件还提供设置页卡片,可配置 key 池、查看 Tavily 额度总览并手动刷新。 - 设计依据与决策记录: AI搜索Key池负载均衡-开发计划.md - 挂载与配置: docs/挂载指南.md - 全面检查报告: docs/全面检查报告.md (含 2026-08-16 稳定性/效率/跨平台重构记录) - 许可证: LICENSE (MIT) 部署 1. 克隆本仓库,进入项目目录并生成可安装包(推荐,避免 ESM symlink 解析问题): 2. 在 $DSH HOME/profiles/web/package.json 的 dependencies 中加入 tgz 依赖: 3. 安装 profile 依赖并编辑 cordis.patch.yml : 4. 按 docs/挂载指南.md 配置 web.searchProvider 、key 池、凭据和 settings 白名单脚本。 5. 重启 dsh web 。 如果直接使用 file: 引用,必须在插件源码目录先安装 peer 依赖, 否则启动会报 Cannot find package '@deepseek-ai/dsh-settings' : 方案概览 方案 A :在 DSH 内写一个「多 key 多供应商」 WebSearchProvider (id search-pool )composition 插件, 内部实现 key 池 + 令牌桶限流 + 加权轮询调度 + Tavily/Exa 适配 + 429 换 key + 供应商 failover。 限流状态用进程内存(个人单机单实例)。 - Host 侧 :provider 挂载到 web profile( cordis.patch.yml ),提供搜索。 - Client 侧 :包内 client half 在设置页「网页搜索」卡片下方注册「搜索 Key 池」卡片,支持查看/编辑配置、 搜索开关切换、key 备注。 - 核心调度逻辑抽成 不依赖 DSH 的独立模块 ( src/core 、 src/adapters ),未来可无缝升级到 多实例/多客户端共享形态(开发计划第 5 节路径 B1/B2)。 目录结构 核心设计 - KeyPool : entries: { id, provider, credentialRef, rpm, remark? }[] ,管理每个 key 的 cooldownUntil / f…

View full README on GitHub →
Searchdeepseek-harnessdsh-pluginexaload-balancingtavilyweb-searchsearch

Category