Dalizi2026/dsh-factory-provider ↗★ 6
dsh-factory-provider
Factory (Droid) Pro subscription as native DSH LLM providers — authenticates with your own Factory API key through a loopback gateway, with a settings page for status, quota, key switching, and diagnostics. · 把 Factory Droid 订阅额度接入 DSH:API key + 回环网关 + 设置页(连接状态/多 key 切换/订阅额度/路由模型/配置/诊断日志)。 适合拥有Factory API key并希望在DSH中直接调用其模型额度的用户。
설치
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:Dalizi2026/dsh-factory-provider使用流程
第 1 步:拿一个 Factory API key
这个插件只用 API key,不需要安装 droid CLI。
- 打开
- 点 Create Key,起个名字(比如
dsh) - 复制那串
fk-...——它只显示一次
key 是长期有效的(不过期),可以直接当推理凭据用,扣的是你的订阅额度,不是另一套计费。
还需要 DSH 本身,并确认 dsh 命令可用。
第 2 步:安装插件
把仓库 clone 到本地任意目录,然后:
dsh plugin --profile desktop add link:
desktop是 DSH 桌面版 GUI 使用的 profile 名;如果你是别的 profile,换成对应的名字- 用
link:安装表示直接引用本地目录——你改了源码,插件就跑新代码(改完需重启 DSH 生效)
安装完成后,重启一次 DeepSeek Harness,让插件完整加载。
卸载:
dsh plugin --profile desktop remove dsh-factory-provider
卸载时插件会自动清理它写进 DSH 的 provider 配置(按 baseURL 识别,不会碰你自己的其他 provider)。
第 3 步:把 key 粘进插件
打开 设置 → Factory (Droid) → 账号与 API key:
- 在「粘贴 Factory API key(fk-…)」输入框里粘上那串 key(可选填备注名)
- 点 保存并使用
保存后插件立刻切到这个 key,不需要重启。key 只存在本机(~/.dsh-factory-provider/accounts//api-key,权限 0600),不写进设置文件,也不进日志。
第 4 步:确认接入成功
打开 设置 → Factory (Droid)(在左栏「内置插件」下方),看「连接状态」面板:
- 徽标显示 API key(表示已配置)
- 能看到 token 有效期和组织 ID
- Provider 写入显示
clean或applied
如果徽标显示未配置 API key,去「账号与 API key」面板粘贴一个(见第 5 步之前的说明)。
最直接的验证:点 测试连接 按钮。它会真实发一条 16-token 的请求走完整链路:
- 成功 → 说明从 DSH 到 Factory 全线打通 ✅
- 失败 → 面板会给出上游返回的状态码和消息
同一个面板还能看「订阅额度」:标准池与 Core 池各自的 5 小时 / 周 / 月 用量进度条、重置倒计时、超额策略。
第 5 步:在 DSH 里选模型
接入成功后,Factory 的模型会出现在 DSH 的模型选择器里,按 provider 分组(Factory (Droid) — …)。直接选就行。
每个模型的可选思考强度(low / medium / high / xhigh / max 等)按 Factory 官方模型表的实际取值写入,在 DSH 的模型选项旁直接选。Claude 系走自适应 thinking(Factory 的 bedrock_anthropic 路由只接受这种),旧式 budget 参数会被上游拒绝。
遇到模型不可用? 部分模型有地区门禁(上游返回 Provider not available in this region),插件已把确认受限的几个从列表里剔除。
第 6 步:按需精简模型列表
DSH 的模型列表太长会很碍事。在设置页「路由与模型」面板里:
- 每个模型左侧有勾选框,逐条挑选;卡片右上角有全选 / 清空
- 勾完点保存
- DSH 的模型列表之后只保留你勾选的模型
语义:
- 一个都不勾 = 显示全部(默认行为,不会把列表清空)
- 某条路由的模型被全部取消勾选 → 该 provider 整条从列表消失
- 想恢复全部,点「全选」再保存
⚠️ 已知问题:保存后模型列表可能需要重启 DSH 才会刷新(配置已正确写入并持久化,但运行中的模型目录不会立刻重建)。设置页的模型勾选本身立即生效、不会丢失。
配置项
cordis.patch.yml 里是出厂默认值;设置页的修改优先且写入插件自己的 settings 命名空间。两边字段一致:
| 字段 | 默认 | 说明 |
|---|---|---|
enabled | true | 关闭后只保留诊断路由,并清理已写入的 provider |
routes | ["generic","anthropic","openai"] | 启用哪几条路由 |
cliVersion | "0.231.0" | 网关呈现给 Factory 的 CLI 版本(UA)。保持默认即可,它是边缘校验的一部分 |
apiBaseURL | "https://prem.factory.ai" | 推理主机。EU 等区域账号若不同,在这里改 |
quotaHost | "https://api.factory.ai" | 额度端点主机 |
keyEnv | "FACTORY_API_KEY" | 未选择任何 key 时,从这个环境变量(以及 DSH 凭据存储)取 key |
proactiveRefreshMinutes | 5 | provider 写入未落地时的重试周期;0 关闭定时器(API key 不过期,无需刷新凭据) |
modelAllowlist | [] | 模型显示范围:[] = 全部;非空则只显示列出的模型(建议在设置页勾选,不要手填) |