前言¶
用 DeepSeek Harness(DSH)接 AMD Radeon Cloud(Token Factory)时,模型并发会在 idle、busy、full 之间变化。撞上 full 往往要等配额腾出来,而原先要么去网页控制台看「AI Capacity」,要么等限流报错。维护者 lcy362 的客户端插件 dsh-radeon-capacity 把控制台同源的数据接到 DSH 模型选择器:在点选模型之前就能看到每个模型的忙闲水位,并在当前模型名同一行显示选中模型的容量读数。它不接管模型调用,传输与用量仍由 DSH 自带的 dsh-llm-pi-ai 负责。
这是什么¶
dsh-radeon-capacity 是 DSH 的独立插件,分类为客户端。核心能力是容量读数;已配置 Radeon provider 的用户安装后通常无需额外填写。额度信息会一并展示,但 AMD 目前免费不限量,该数字仅作参考,不影响能否调用。插件也可选代为写入 provider 配置(落在 DSH 用户层,卸载插件后 provider 仍保留)。
- 目录页:https://www.skillhub.cn/plugins/lcy362/dsh-radeon-capacity
- 源码:https://github.com/lcy362/dsh-radeon-capacity
- 许可:MIT(
package.json版本 0.1.0,要求dsh>=0.2.0-rc.1 <0.3.0-0,Node >=22)
界面上的表现¶
读数挂在 conversation.input.right,与模型选择器同在 standardControls 容器内、渲染在选择器左侧,因此与模型名并排;选定模型但尚未开始会话时也会显示(与模型选择器共用同一 sessionId 守卫)。
| 位置 | 内容 |
|---|---|
| 模型选择器 | 每个 Radeon 模型名后一枚徽章:● 12%(绿)/ ● 63%(橙)/ ● 100%(红) |
| 模型选择器同一行 | 当前选中模型的容量在模型名左侧;额度弱化跟在后面,例如 ● Busy 55% · $0.97 / $1.00 |
| 设置 → 插件 → dsh-radeon-capacity | 已写入模型与实时容量列表;可选配置区 |
徽章仅在探测到 Radeon provider 后注册;未配置 Radeon 时不占用槽位,不会顶掉内核自带的模型标注。界面读数为英文(Idle / Busy / Full,与 AMD 控制台术语一致);设置页跟随 DSH 的 locale,中英双语。
核心功能¶
容量读数¶
数据来自控制台内部路由 GET /radeon/api/tokenfactory/load,响应形态类似:
{ "models": { "GLM-5.3-Flash": { "state": "full", "label": "At capacity", "utilization": 100 } } }
该端点 TTFB 约 25 秒、cache-control: no-store,且返回的模型集合会浮动(约 13~16 个有流量的模型)。插件在宿主侧做缓存与单飞,采用 stale-while-revalidate:过期先展示旧值、后台刷新,避免界面卡在单次长请求上。默认容量缓存 capacityTtlMs: 30000,读数新鲜度大致在 30 秒量级。
额度展示(可选)¶
网关在正常响应上附带 x-ratelimit-* 头。插件可用 max_tokens: 1 探针读取(约 0.31 秒,占 1 次 RPM),默认 60 秒 TTL。不做门控、不参与告警;tooltip 标明仅供参考。不需要时可设 quotaProbe: false,仅去掉额度参考,容量不受影响。
Provider 识别与可选配置¶
已配好 Radeon 的人:装完即有读数。插件按 baseURL 是否含 developer.amd.com.cn 识别,不要求改 provider 名称或密钥引用名。
尚未配置 provider 时,可在插件设置页填写 provider id、凭据引用名、rc-… API 密钥并「写入配置」。写入的是用户层 profile 补丁,卸载插件后 provider 仍可用。配置页展示已写入模型及「已写入 / 新增 / 将移除」状态;提交后立即返回,不等待容量端点刷新。
内置对话模型档位表与 reasoningEfforts、compat 等实测项,写入 provider 时一并带上;配置页还会对照 GET /v1/models 列出线上有而表里没有的模型供勾选。
安装与启用¶
从插件市场安装(推荐)¶
在 DSH「设置 → 插件 → 发现」中添加市场来源 URL:
https://raw.githubusercontent.com/lcy362/dsh-radeon-capacity/main/market/index.json
国内访问 raw.githubusercontent.com 不稳定时,可使用 jsDelivr:
https://cdn.jsdelivr.net/gh/lcy362/dsh-radeon-capacity@main/market/index.json
在「发现」中安装 Radeon Capacity 即可(市场按钉死的 commit 安装)。
从源码安装¶
cd ~/.dsh/profiles/desktop
pnpm add dsh-radeon-capacity
并在 ~/.dsh/profiles/desktop/package.json 的 dsh.profile.bundles 中登记 dsh-radeon-capacity。
一般无需重启 DSH:profile 的 package.json 与 cordis.patch.yml 变更会经 HMR 重算补丁;客户端 bundle 变更会推 /plugins/events 并热更新。仅当日志出现 changed modules keep running their previous code until a restart 时,已加载过的模块可能需要重启。
典型用法¶
场景一:已有 Radeon provider
安装市场或 pnpm add 后打开 DSH,在模型选择器中查看各模型徽章与当前行容量即可,无需改现有 cordis 配置。
场景二:首次接入 Radeon
- 安装插件;
- 打开「设置 → 插件 → dsh-radeon-capacity」;
- 填写 provider id(默认
amd)、凭据引用(默认AMD_API_KEY)、API 密钥; - 点「写入配置」,按需勾选模型列表;
- 回到对话界面,在选模型前观察容量徽章。
可选插件配置(写在 profile 的 cordis.patch.yml 中 radeon-capacity 节点下)示例:
- id: radeon-capacity
name: dsh-radeon-capacity
config:
providerId: amd
apiKeyEnv: AMD_API_KEY
displayName: Radeon Cloud
baseURL: https://developer.amd.com.cn/radeon/api/v1
quotaProbe: true
capacityTtlMs: 30000
quotaTtlMs: 60000
适用场景与注意¶
适合谁:在 DSH 里日常使用 AMD Radeon Cloud、希望减少切控制台或撞 full 后才察觉拥塞的开发者。
运行与信任:插件以当前 DSH 进程权限运行,会向 Radeon API 发起读数与可选探针请求。安装前建议阅读仓库源码与 MIT 许可证,自行评估凭据与网络暴露面。
已知限制(来自 README):
- 容量读数最细约 30 秒级,不是秒级实时;
full表示并发预算已满,插件不做硬禁用,只标红提示;- 上游只返回有流量的模型,冷门模型可能无读数;
- 容量端点为控制台内部路由,未文档化,失败时静默降级为「暂无读数」;
- 接管模型名旁徽章槽后,需与内核
dsh-client-ui-deepseek-model-label-1017的判定保持一致;可通过配置关闭modelLabelBadge以降低耦合(代价是选择器内无容量徽章)。
本地验证:npm test(44 项);真机冒烟可用 node scripts/smoke.mjs(不打印密钥)。
结尾¶
dsh-radeon-capacity 把 Radeon 控制台侧的 AI Capacity 接到 DSH 模型选择器同一行,让你在发起对话前判断模型是否拥挤;调用链路仍走 DSH 原有 LLM 插件。更多信息见 SkillHub 目录页 与 GitHub 仓库。