文章目录
- 主要改动
- Qoder 排队不中断
- API Key 可绑定指定 Qoder 账号
- 支持账号消费优先级
- Qoder 额度统计增强
- Qoder 模型列表补强
- 钉钉告警
- Docker 部署
在实际使用 Qoder + Claude Code / Codex 过程中,针对排队、超时、额度分配、账号切换和告警这些场景做的一些增强,整理后开源出来,方便有类似需求的人参考。
项目地址:GitHub-9router-qoder-plus
仅作为开源学习和技术交流使用,请遵守相关平台和服务的使用规则。
主要改动
Qoder 排队不中断
Qoder 高峰期经常会返回排队状态。这个版本支持识别排队响应,并按配置等待重试,而不是直接失败。
API Key 可绑定指定 Qoder 账号
可以为某个 API Key 指定只能使用某一个或某几个 Qoder 账号,并且支持给每个账号单独分配可消费额度。
支持账号消费优先级
如果一个 Key 绑定了多个 Qoder 账号,可以单独设置消费顺序。这样可以优先消耗某个账号,额度用完后再切换下一个账号,减少频繁切换账号对缓存命中率的影响。
Qoder 额度统计增强
增强了 Qoder 额度解析,除了套餐内额度,也尽量兼容资源包额度。
同时支持:
- Key 级别 Qoder 用量统计
- 每个账号单独分配额度
- 已使用 / 总分配额度展示
- 分配额度用完后的拒绝保护
- 手动重置用量统计
Qoder 模型列表补强
对 Qoder 模型列表做了一些兜底和显示名优化,让模型名称尽量对齐 Qoder 侧的 display name,并支持通过 display name 直接调用,同时增加了对应模型的倍率显示。
钉钉告警
增加了钉钉告警配置,主要用于这些场景:
- 长时间没有模型调用
- 某个 Key 的 Qoder 分配额度耗尽
- Key 用量达到指定百分比阈值
Docker 部署
通过 Docker 快速部署
git clone https://github.com/MoonCoder-HAPPY/9router-qoder-plus.git cd 9router-qoder-plus docker build -t 9router-qoder-plus:latest .启动容器
docker run -d \ --name 9router \ --restart unless-stopped \ -p 20128:20128 \ -v "$HOME/.9router:/app/data" \ -e DATA_DIR=/app/data \ -e HOSTNAME=0.0.0.0 \ -e PORT=20128 \ -e NODE_ENV=production \ -e REQUIRE_API_KEY=true \ -e JWT_SECRET='加密密钥【需修改】' \ -e INITIAL_PASSWORD='管理员密码【需修改】' \ -e NEXT_TELEMETRY_DISABLED=1 \ -e QODER_QUEUE_MAX_ATTEMPTS=15 \ -e QODER_QUEUE_BASE_DELAY_MS=5000 \ -e QODER_QUEUE_MAX_DELAY_MS=60000 \ -e QODER_STREAM_TIMEOUT_MS=600000 \ -e QODER_STALL_TIMEOUT_MS=600000 \ 9router-qoder-plus:latest访问
- Dashboard:
http://服务器IP:20128/dashboard - OpenAI-compatible Endpoint:
http://服务器IP:20128/v1 - Health check:
http://服务器IP:20128/api/health
如果是在云服务器部署,记得开放对应端口,默认
20128。