🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

商汤多Key轮换池 Phoeky/dsh-sensenova-pool

DeepSeek Harnessv0.2.1
Phoeky4 天前有提交已提供中文文档扫描:未发现敏感能力

DeepSeek Harness插件:商汤日日新SenseNova多 Key 轮换池 — 填入key 即可零配置接入…

35.9/100
综合分
4
GitHub 星标
528
npm 周下载
—/5
用户评分

数据截至 2026/11/3 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add dsh-sensenova-pool
npm 源 · dsh-sensenova-pool 的发布者账号已校验与本仓库一致

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么
dsh 原生插件 · other
装得上吗
本站已在 dsh 0.2.1-rc.2 下真实安装成功
非静态推断
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 4 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查✓ 自动检查通过
展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✓npm 包dsh-sensenova-pool @ 0.2.1
✓Node 引擎要求 ^22.19.0 || >=24.0.0 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/11/3 11:53:38

安全扫描自动 · 静态分析源码
v2.7.0
🟢 扫描:未发现敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描未发现敏感能力:最多只发网络请求、读取自身元数据或只读文件,未发现执行命令、文件写入或敏感信息读取。

写入剪贴板(不计风险)发起外部网络请求
查看扫描证据(共 6 处,展示前 6 条)
  • 发起网络请求
    lib/index.js:617
    const response = await fetch(url, {
  • 发起网络请求
    lib/client.js:151
    const response = await fetch(path, {
  • 发起网络请求
    lib/client.js:163
    const response = await fetch(path, {
  • 写入剪贴板
    lib/client.js:184
    await navigator.clipboard.writeText(text);
  • 发起网络请求
    lib/shim.js:158
    const result = await requestWithRotation(pool, rotation, (apiKey, signal) => fetch(upstreamUrl, {
  • 发起网络请求
    lib/routes.js:283
    const response = await fetch(`${base}/chat/completions`, {
扫描于 2026/11/2(1 天前) · 范围 入口闭包 + 全包扫描 · 来源 npm 发布包

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/schemastery@deepseek-ai/dsh-llm@deepseek-ai/dsh-llm-pi-ai
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

界面预览

2 张 · 点击查看大图

功能亮点

  • 多Key轮换池
  • 遇限流自动切换
  • 零配置接入
展开完整介绍(98 字)↓

DeepSeek Harness插件:商汤日日新(SenseNova)多 Key 轮换池 — 填入key 即可零配置接入 DeepSeek Harness,遇 429 限流自动切换下一把 key。

v0.2.12026-10-30
· dsh-sensenova-pool v0.2.1 修复 issue #2 的 400。 · 问题 400 {"message":"inference request is invalid","type":"invalid_request_error"} 400 {"message":"invalid arguments","type":"invalid_request_error","code":"3"} 原作者怀疑是 reasoning_effort 取值被上游拒收。实际排查后确认这是一整类问题。 · 根因 shim 一直把请求体 原样转发给商汤(这是"透明代理"的应有之义),但商汤的 schema 校验比 OpenAI 官方严得多,而 DSH 的 pi-ai 层完全按 OpenAI 规范构造请求。于是 「官方接受、商汤不认」的写法会直接撞 400,而且换 Key 根本解不开——这正是 issue #2 里"换 Key 无用"的原因。 实测(deepseek-v4-flash,逐例对真实上游验证)以下写法全部 400: | 请求体写法 | 上游返回 | |---|---| | {"role":"developer","content":"…"} | inference request is invalid | | {"role":"assistant","content":null}(无 tool_calls) | inference request is invalid | | {"role":"assistant"}(缺 content 字段) | inference request is invalid | | {"role":"system","content":null} | inference request is invalid | | {"role":"tool","content":null} / 缺 content | inference request is invalid | | tool_calls[*].function.arguments 传对象 | invalid arguments (code:3) | | content 传数字 | invalid arguments | | temperature 传字符串 | invalid arguments | | logprobs / top_logprobs / metadata | invalid arguments | | reasoning_effort: "off" | field ReasoningEffort invalid | 关键实测:developer → 400,同一份内容改成 system → 200。 · 修复内容 新增 src/sanitize.ts,在 shim 转发之前做语义等价规范化: · role:developer → system(OpenAI 新规范里替代 system 的角色) · content:缺失 / null 的 assistant·system·tool → "" (带 tool_calls 的 assistant 保持 null 不动,商汤接受,动它有风险) · arguments:传对象 → 序列化成 JSON 字符串 · content 标量:数字/布尔 → 字符串 · 采样参数:temperature/top_p/frequency_penalty/presence_penalty 字符串 → 数字 · reasoning_effort:off → none · 摘除:logprobs / top_logprobs / metadata · 刻意不代改的三类 改了只会把错误往后推,甚至篡改用户意图: · user.content 为 null/"":确实是空用户轮,上游报 user content required · 数值越界(temperature=3、frequency_penalty=5):上游报错信息已足够明确 · developer 之外的其他未知 role · 重要修正:max 与 minimal 是合法档位 初版按"off/max/minimal 都不合法"实现,把 max 映射成 xhigh。真机验证时 上游报错原文写得很明确: should be one of: none, minimal, low, medium, high, xhigh, max 即 max/minimal 本就合法,映射它们会悄悄降低你要求的推理强度。 已修正为只把 off 翻成 none,其余合法值原样保留。 · 新增排障开关 debugReq
v0.2.02026-10-19
· 新增功能 · 设置页一级分区:DSH 设置侧栏新增 dsh-sensenova-pool,Key 池、对外接口、模型可见性集中在一页。插件页里的卡片保留。 · 对外 OpenAI 兼容接口:设置页展示接口地址、端口与 API Key,复制后填进其他 Agent 或客户端即可使用;请求共用同一个 Key 池,遇到 429 同样自动换 Key。 · 对外 Key 持久化:保存在 DSH 凭据库里,重启后不变;支持切换密钥,切换瞬间旧密钥仍然有效,避免在途请求 401。 · 模型可见性:可勾选哪些模型出现在模型选择器里,取消勾选的模型不再注册给 provider,选择跨重启保留。 · 升级说明 · 从 0.1.x 直接升级即可,原有 Key 不需要重新填写。 · 对外 Key 在首次启动时生成,随下一次写入保存到凭据库。
v0.1.32026-10-12
npm: dsh-sensenova-pool@0.1.3 · 修复 · 重启电脑后 Key 池为空(「忘记 Key」) —— 启动竞态。插件只 inject: ['llm'],与 credentials 之间没有顺序保证;cordis 的 Service 在构造函数里就 provide(),而 credentials-local 的 loadInitial()(读 .credentials.yaml 填充内存快照)要到 Service.init 才跑完。旧实现在启动块里只读一次凭据库,冷启动磁盘 IO 慢时读到空快照 → 池子变成 0 把,且此后没有任何补载机制(credentials/record-updated 只在运行期写入时触发,覆盖不到启动装载),只能重新填 Key。 现在改用 cordis 自己的就绪通知 ctx.inject(['credentials'], cb):回调只在凭据服务所属 fiber 变为 ACTIVE(loadInitial() 已填充快照)时触发。精确、零延迟,且宿主没有凭据服务时回调只是不触发,启动路径照常提示填 Key(不会白等超时)。 Key 一直都在,不需要重新填。 · 写入可能抹掉已存的 Key —— saveKeys() 是用 pool.keys() 整体覆盖写记录。若在首次装载完成前写入(启动还没完就点了「添加 Key」),池子里只有刚加的那把,磁盘上原有的 Key 会被静默抹掉。现在写入前会等待首次权威装载(10s 兜底,且仅在凭据服务确实存在时才等)。 · 卸载时的 libuv 崩溃 —— disposer 原先写 void shim.close(),Promise 无人等待,server 仍在监听时进程就可能退出,Windows 上表现为 Assertion failed: !(handle->flags & UV_HANDLE_CLOSING), src\win\async.c, line 94(退出码 0xC0000409)。改为 return shim.close(),由 cordis 等待回环服务真正关闭。 · 测试 · 新增 tools/test-credentials-race.mjs:11 项断言复刻启动竞态(在旧代码上有 6 项失败)。 · 新增 tools/e2e-real-credentials.mjs:真实插件 + 真实 cordis + 真实 credentials-local,在真实 .credentials.yaml 上跑完整启动路径。旧代码复现出与 issue 完全一致的「key 池为空」与 /status total: 0;修复后装载出 2 把 Key。 · 修掉凭据套件里一个既有的 libuv 崩溃:该测试会真实访问外网,进程在 DNS/TLS 未落地时 process.exit() 会触发断言 —— 断言全过却被判失败。测试现已完全离线。 · 离线套件 7/7 通过,typecheck / build 干净。 · 相关 · 修复 #1,感谢 @Drhusku 的详细排障与最小复现思路。 完整说明见 README
数据来自仓库的 GitHub Release,可能与插件实际版本不一致。

README

由 DeepSeek 最新模型翻译生成
dsh-sensenova-pool 商汤日日新(SenseNova)多 Key 轮换池 · DeepSeek Harness 插件 在一个地方填入多把商汤 API Key,就能在 DSH 对话窗口里直接使用日日新的各种模型 —— 遇 429 限流自动切换到下一把 Key,全程无感。 想要一个独立运行、不依赖 DSH 的网关服务? 请移步 Phoeky/st-rotator。 本插件是它在 DeepSeek Harness 里的内嵌版:不装 DSH、或者需要给整个局域网提供服务时,用那个项目更合适。 功能 🔑 多 Key 轮换池 填入任意多把商汤 Key,请求在多把 Key 之间自动轮转,把每把 Key 的额度摊开使用。 Key 管理卡片 - 一次粘贴多把:换行、逗号、分号、空格分隔都可以 - 自动清洗:识别并去除 Bearer 前缀、首尾引号、重复项、明显无效的短串 - 只看得到脱敏值:界面只显示 sk-example...0001 这样的掩码,明文 Key 不会出现在任何界面上 - 单把可测:每把 Key 都能单独「测试」探活,看到真实的可用状态与延迟 - 单独删除:任意一把失效随时移除,不影响其他 Key 🛡 429 限流自动切换 这是本插件的核心能力。商汤的 Key 有较低的 RPM 上限(实测现有 Key 约 3 RPM),单靠重试无法解决。
展开完整文档(README 剩余 1 节)
dsh-sensenova-pool

商汤日日新(SenseNova)多 Key 轮换池 · DeepSeek Harness 插件

在一个地方填入多把商汤 API Key,就能在 DSH 对话窗口里直接使用日日新的各种模型 —— 遇 429 限流自动切换到下一把 Key,全程无感。

想要一个独立运行、不依赖 DSH 的网关服务? 请移步 Phoeky/st-rotator。
本插件是它在 DeepSeek Harness 里的内嵌版:不装 DSH、或者需要给整个局域网提供服务时,用那个项目更合适。

功能

🔑 多 Key 轮换池

填入任意多把商汤 Key,请求在多把 Key 之间自动轮转,把每把 Key 的额度摊开使用。

Key 管理卡片

- 一次粘贴多把:换行、逗号、分号、空格分隔都可以
- 自动清洗:识别并去除 Bearer 前缀、首尾引号、重复项、明显无效的短串
- 只看得到脱敏值:界面只显示 sk-example...0001 这样的掩码,明文 Key 不会出现在任何界面上
- 单把可测:每把 Key 都能单独「测试」探活,看到真实的可用状态与延迟
- 单独删除:任意一把失效随时移除,不影响其他 Key

🛡 429 限流自动切换

这是本插件的核心能力。商汤的 Key 有较低的 RPM 上限(实测现有 Key 约 3 RPM),单靠重试无法解决。本插件的做法:

- 遇 429 立即切换到下一把 Key 重试,用户看不到任何报错
- 每把 Key 独立冷却,按指数退避 + 随机抖动错开解冻时间
- 本地 RPM 预限流主动排队,从源头避开限流,而不是挨打后再退避
- 池子真的耗尽时,回报 503 + Retry-After(而不是 429),交由 DSH 自行退避重试
- 429 计数与冷却状态在卡片上实时可见

截图里的 2/3 成功,1 次限流 是真实发生的记录:这把 Key 触发过 1 次 429,被池子内部消化掉,上层没有收到过任何 429。

🧠 一次接入全部模型

装好插件后,模型选择器里自动出现「商汤日日新(Key 轮换池)」分组,包含以下模型:

| 模型 | 上下文 | 最大输出 | 图片输入 |
| deepseek-v4.1-flash | 1,048,576 | 65,536 | – |
| deepseek-v4-flash | 1,048,576 | 65,536 | – |
| deepseek-v4-pro | 1,048,576 | 65,536 | – |
| deepseek-flash | 1,048,576 | 65,536 | – |
| glm-5.2 | 1,048,576 | 131,072 | – |
| kimi-k3 | 1,048,576 | 65,536 | – |
| sensenova-6.8-flash-lite | 262,144 | 65,536 | ✓ |

启动时内置一份保守目录(无需网络即可用),拿到有效 Key 后自动通过 /v1/models 刷新,商汤日后上线新模型无需升级插件。

思考等级同样支持,可选 none / low / medium / high / xhigh。

⚙️ 零配置

Key 存在 DSH 的凭据库里,不写进任何配置文件。填入即生效,无需重启 DSH、无需改 YAML。

🧩 在 DSH 设置里管理

设置侧栏新增 dsh-sensenova-pool 分区,Key 池、对外接口、模型可见性都在这一页。插件页里的卡片同样可以打开。

🔌 提供对外的 OpenAI 兼容接口

插件在 127.0.0.1 上起一个 OpenAI 兼容服务。设置页显示接口地址和 API Key,复制后填进其他 Agent 或客户端即可使用;请求共用同一个 Key 池,遇到限流同样自动换 Key。

curl http://127.0.0.1:51234/v1/chat/completions \
-H "Authorization: Bearer sk-dsh-…" \
-H "Content-Type: application/json" \
-d '{"model":"glm-5.2","messages":[{"role":"user","content":"ping"}]}'

- API Key 存在凭据库里,重启后不变
- 端口由系统在启动时分配,设置页显示当前值

🎛 管理可选择模型

设置页列出目录里的全部模型。取消勾选的模型不再注册给 provider,也就不会出现在模型选择器里,这个选择重启后保留。套餐里不含某些模型时,可以在这里把它们关掉。

模型可见性

安装

方式一:npm(推荐)

npm install dsh-sensenova-pool

或使用 pnpm:

pnpm add dsh-sensenova-pool

安装后,把 dsh-sensenova-pool 加入 profile package.json 的 dsh.profile.bundles:

{
"dsh": {
"profile": {json
"bundles": [
"dsh-sensenova-pool"
]
}
}
}

方式二:本地开发 bash
git clone https://github.com/Phoeky/dsh-sensenova-pool.git
cd dsh-sensenova-pool
npm install
npm run build

链接到你的 profile

pnpm --dir "$DSH_PROFILE_DIR" add "link:$PWD"

同样需要把 dsh-sensenova-pool 加进 dsh.profile.bundles。

重启 DSH

改完 package.json 后重启 DeepSeek Harness。确认安装成功:插件页的「已安装」列表里会出现本插件。

插件页

使用

1. 填入 Key

打开 设置 → dsh-sensenova-pool(或插件页里本插件的卡片),在弹出的卡片里粘贴一把或多把商汤 Key:

sk-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
sk-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
sk-cccccccccccccccccccccccccccccc

点「添加 Key」。支持多种分隔方式,重复和无效项会被自动过滤。

2. 选择模型

新建会话,在模型选择器里选「商汤日日新(Key 轮换池)」下的任意模型,然后正常对话即可。

3. 需要时调整

| 按钮 | 作用 |
| 测试 | 对单把 Key 发一次极小请求,立刻看到是否可用与延迟 |
| 删除 | 移除单把 Key |
| 清空全部 | 移除所有 Key |
| 刷新模型列表 | 主动从商汤 /v1/models 拉取最新模型目录 |
| 复制(接口区) | 复制接口地址 / 对外 API Key |
| 模型勾选框 | 决定该模型是否出现在模型选择器里 |

4. 接入其他服务

设置页「本地接口」区给出两样东西:

| 字段 | 示例 | 说明 |
| 接口地址 | http://127.0.0.1:51234/v1 | OpenAI 兼容,/chat/completions、/models 都支持,流式/非流式都行 |
| API Key | sk-dsh-… | 填进 Authorization: Bearer 即可 |

任何 OpenAI 客户端都可以直接用它,例如: python from openai import OpenAI

client = OpenAI(base_url="http://127.0.0.1:51234/v1", api_key="sk-dsh-…")
print(client.chat.completions.create(
model="glm-5.2",
messages=[{"role": "user", "content": "你好"}],
).choices[0].message.content)

这个 Key 只被本地 shim 校验,不会发给商汤;真实的商汤 Key 始终只存在于插件内部。

配置项(可选)

绝大多数情况无需改动。如需微调,在 profile 的 cordis.patch.yml 里加入: yaml
- id: llm-sensenova-pool
name: dsh-sensenova-pool
config:
rpmLimit: 2 # 每把 Key 的本地 RPM 预限流上限;0 = 关闭 maxAttempts: 6 # 单个请求最多尝试几把 Key maxConcurrency: 1 # 每把 Key 的并发上限;1 = 串行(推荐) acquireTimeoutMs: 180000 requestTimeoutMs: 60000 baseUrl: https://token.sensenova.cn/v1

rpmLimit: 2 是默认值,基于实测(真实上限约 3 RPM)。调大它不会提高吞吐,只会更容易被限流 —— 想提高吞吐应该增加 Key,而不是加压。

常见问题

模型选择器里没有「商汤日日新」分组?

确认 dsh.profile.bundles 里有 dsh-sensenova-pool,然后重启 DSH。如果分组在但某个模型不见了,去设置页看看是不是被自己勾掉了。

管理卡片在哪?

两个入口都在:设置 → dsh-sensenova-pool(推荐),以及插件页里本插件的详情卡片。旧版 DSH 若没有设置分区,会退回只显示插件页卡片。

一直失败怎么办?

在卡片上点某把 Key 的「测试」看真实原因。403 model is not available in the current token plan 表示该模型不在这个 Key 的套餐里 —— 换模型,而不是换 Key。

DSH 弹「The application could not start or stopped unexpectedly」,完全起不来?

先看崩溃日志里的失败插件名。如果 Failed plugins 指向 credentials,且错误是 record "dsh-sensenova-pool/keys" ... has unknown field "payload",说明凭据库里那条记录的标签写错了 —— DSH 的凭据库对记录做白名单校验,api-key 只认 kind/key/env, grant 只认 kind/payload,一条记录不合规就会让 credentials 插件激活失败,进而中止整个应用启动(0.1.1 及更早版本存在这个写入 bug,已修复)。

手工修复:编辑 $DSH_HOME/.credentials.yaml,把该记录的 kind: api-key 改成 kind: grant(payload.keys 里的 Key 原样保留),然后重启 DSH。
yaml
records:
dsh-sensenova-pool/keys:
kind: grant # ← 必须是 grant;api-key 不接受 payload payload: keys:
- sk-…

崩溃日志位置:Windows 下为 %APPDATA%\@deepseek-ai\dsh-desktop\logs\crash--host.log。

重启电脑后 Key 池空了(「忘记 Key」)?

0.1.2 及更早版本存在一个启动竞态:插件启动时只读一次凭据库,而 DSH 的凭据快照是异步读盘填充的,冷启动磁盘慢时就会读到空快照,于是池子变成 0 把 —— 且此后没有任何补载机制,只能重新填 Key。0.1.3 已修复(改为等凭据服务真正就绪后再装载)。

如果你还在旧版本上遇到,升级即可,不需要重新填 Key(Key 一直好好地在 $DSH_HOME/.credentials.yaml 里)。临时办法是在插件卡片上点一次「刷新/重载」。

报 400 inference request is invalid / 400 invalid arguments?

这是 商汤网关的 schema 校验比 OpenAI 官方严导致的,不是 Key 无效,也不是限流——换 Key 完全没用。Agent(DSH 的 pi-ai 层)会按 OpenAI 规范发出一些「官方接受、商汤不认」的写法:

| 请求体写法 | 商汤 deepseek-v4-flash | 说明 |
| {"role":"developer","content":"…"} | ❌ 400 | OpenAI 新规范里替代 system 的角色,商汤只认 system |
| {"role":"assistant","content":null}(无 tool_calls) | ❌ 400 | 表示「这一轮只有工具调用」的常规写法 |
| {"role":"system","content":null} / {"role":"tool","content":null} | ❌ 400 | 工具结果为空时很常见 |
| tool_calls[].function.arguments 传对象 | ❌ 400 invalid arguments | 必须是 JSON 字符串 |
| content 传数字(123) | ❌ 400 invalid arguments | 必须是字符串或数组 |
| temperature 等传字符串("0.7") | ❌ 400 invalid arguments | 必须是数字 |
| logprobs / top_logprobs / metadata | ❌ 400 | 商汤不支持这些字段 |
| reasoning_effort 传 off | ❌ 400 field ReasoningEffort invalid | 合法值只有 none/minimal/low/medium/high/xhigh/max(off 要翻成 none) |

0.2.1 已修复:shim 在转发前会把这些写法语义等价地规范成商汤接受的形式(developer→system、null/缺失的 content→""、arguments 对象→JSON 字符串、数值字符串→数字、off→none、摘掉不支持字段),你不需要改任何配置。带 tool_calls 的 content: null 会保持原样(商汤接受,动它反而有风险)。

特别说明:max 与 minimal 本来就是合法档位(上游报错原文列全了它们),所以不会被改动或降级 —— 否则会悄悄改掉你要求的推理强度。

刻意不代改的三类(改了只会把错误往后推):user.content 为空、数值越界(如 temperature: 3)、未知 role。

💡 如果升级后仍报 400,说明是清洗层还没覆盖的新写法。此时把 debugRequestOn400 打开,插件的 400 日志里会直接打出实际发出的请求体,一眼就能定位是哪个字段——不用再猜。相关讨论见 issue #2。

Key 会泄漏吗?

不会。界面只显示掩码;明文只存在 DSH 凭据库($DSH_HOME/.credentials.yaml)中,不会写入任何配置文件,也不会出现在日志里。

设置页里的 API Key 和我的商汤 Key 是一回事吗?

不是。设置页「本地接口」区显示的 sk-dsh-… 是本地回环服务自己的校验密钥,只用于让别的本地程序访问 127.0.0.1 上的 shim;它不会被转发给商汤,和你的商汤 Key 没有任何关系。真正的商汤 Key 仍然只以掩码形式出现在列表里。

别的机器能连这个接口吗?

不能,也不需要。shim 只绑定 127.0.0.1,这是刻意的:它背后是你的额度。要在多台机器/整个局域网共享,请用 Phoeky/st-rotator 这类独立网关。

环境要求

- DeepSeek Harness 0.2.0-rc.2 或更高
- Node.js ^22.19.0 || >=24.0.0

致谢

本插件在设计与实现上参考了以下开源项目,特此致谢:

- corrinehu/dsh-workbuddy-connect —— 将第三方模型接入 DSH 的插件范式。本插件的 provider 注册方式与浏览器卡片结构参考了该项目。
- Phoeky/st-rotator —— 商汤 Key 轮换网关。本插件的轮换调度、冷却退避与本地预限流策略参考了该项目。

许可

MIT

想找一个不依赖 DSH 就能跑的独立网关? 看 Phoeky/st-rotator —— 本插件是它的 harness 内版本。如果你不跑 DeepSeek Harness,或者要给整个局域网提供服务,请用那个项目。

SenseNova(商汤日日新)多 Key 轮换池,以 DeepSeek Harness 插件的形式提供。

在一处粘贴一个或多个 SenseNova API Key,就能在 DSH 聊天窗口里直接用上所有 SenseNova 模型 —— 被限流的 Key(HTTP 429)会自动切换,全程无感。

功能

- 在 DSH 设置里管理 —— 设置页有一个名为 dsh-sensenova-pool 的分区,用来放 Key 池、本地端点和模型列表
- 兼容 OpenAI 的端点 —— 设置页会显示 base URL、端口和一个 API Key,可复制到别的智能体或客户端里用;请求共用同一个 Key 池,也共用同一套 429 处理
- 自选显示哪些模型 —— 取消勾选某个模型,它就不再注册到服务商;选择在重启后依然保留
- 多 Key 池 —— 一次粘贴任意数量的 Key(换行 / 逗号 / 分号分隔);前缀、引号、重复项和垃圾字符会自动清理
- 429 自动故障转移 —— 一旦被限流,Key 池立刻换下一个 Key 重试;每个 Key 独立冷却,采用指数退避加抖动,另外还有本地 RPM 预限流,从源头减少 429
- 绝不把 429 往上抛 —— 所有 Key 都用尽时,插件返回 503 + Retry-After,让 DSH 自己退避
- 全模型、零配置 —— 内置目录可离线使用,一旦有可用 Key 就从 /v1/models 刷新,新模型上线无需升级插件
- Key 打码显示 —— 只会显示 sk-example...0001 这种样式的掩码

安装 bash
npm install dsh-sensenova-pool

把 "dsh-sensenova-pool" 加进配置档 package.json 的 dsh.profile.bundles,然后重启 DeepSeek Harness。

用法

打开 设置 → dsh-sensenova-pool(或插件页上的插件卡片),粘贴 Key,点 Add keys,然后在模型选择器的「商汤日日新(Key 轮换池)」分组下挑任意模型。同一页面还会显示本地端点(base URL、端口、API Key),也能让你把某些模型从选择器里隐藏。

疑难排查

重启机器后 Key 池空了(「它把我的 Key 忘了」)?

0.1.2 及更早版本有启动竞态:插件在启动时只读一次凭据存储,而 DSH 是异步从磁盘填充这个存储的。冷启动慢的时候,插件读到的是空快照,Key 池起来就是零个 Key —— 而且之后不会重新加载,只能重新输入。0.1.3 已修复(插件现在会等凭据服务真正就绪再加载)。

升级后 Key 会被重新读到;它们从未丢失(存放在 $DSH_HOME/.credentials.yaml)。如果还在旧版本,点插件卡片上的重新加载,本次会话就能恢复。

致谢
- corrinehu/dsh-workbuddy-connect — 把第三方模型接入 DSH 的插件范式
- Phoeky/st-rotator — SenseNova 密钥轮换网关,本插件的轮换策略源自它

许可证

MIT
预览分享卡片长什么样 ↓Phoeky/dsh-sensenova-pool
分享 · DeepSeek Harness Hub
Phoeky/dsh-sensenova-pool

DeepSeek Harness插件:商汤日日新SenseNova多 Key 轮换池 — 填入key 即可零配置接入…

回到顶部