Skip to content
MVennnPublic

About

把模型供应商接进 ZCode 客户端的脚本与文档:模型探测、按成本档分档、思考参数矩阵。

Topics

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

ModelBus

ModelBus

DSH 主宿主 + 各类 agent 的模型目录与路由工具仓

一份 catalog/ 模型目录真源,投影到 DSH 的 cordis.patch.yml;各类 agent 共用同一份路由策略。

CI 源码仓库 问题反馈 Python Node.js License


这是什么

一个工具仓库,不是一个应用。它做三件事:

  • 探测 —— 逐个模型试:能不能连、走哪种协议、工具调用能不能用、思考参数怎么关;
  • 同步 —— 把探测结论整理成 provider 分组,按成本档 / 积分倍率写进 catalog/ 真源,再投影到 DSH cordis.patch.yml 与兼容投影;
  • 记录 —— 把踩过的坑、协议归属、参数矩阵固化成文档,换套餐时不用重试一遍。

主宿主是 DSH:tools/dsh_sync.py 把模型目录投影到 ~/.dsh/profiles/<profile>/cordis.patch.yml, DSH 会话、子代理与各类 agent 共用 gateways/zgate 单一入口(127.0.0.1:7871); ZCode 仍作为兼容投影保留,不再是中心。tools/agent_profiles.py 给每个 agent 提供只读投影接口。 方向、命名分层与落地批次见 docs/DSH-FIRST.md。

仓里的 providers/opencode-go/、providers/workbuddy/ 与 providers/qoder/ 是三个跑通的完整示例(OpenCode-Go 套餐、 WorkBuddy2API 网关、qoder2api-hub 网关);现在统一成三组(主力 / 免费 / 省钱), 模型 ID 只用型号名(如 DeepSeek-4.1-Flash),同型号跨渠道合并成一条链路(WB 固定链首,其余按价格 / 前缀 / 渠道稳定排序),由 tools/model_alias.py 生成、gateways/zgate(Go,单进程,监听 127.0.0.1:7871)按 alias map 分流到 7 个 upstreams(OC / WB / QD / QW / QN / GM / HJ),并按需托管 2 个本地网关子进程(WorkBuddy 7863 / Qoder 8790)。方法本身与供应商无关,接一个新供应商要做的四步见 docs/MODEL-PROVIDERS.md §0。

边界:本仓库不含 DSH 宿主、也不含 ZCode 客户端,只写宿主配置 —— DSH 侧 cordis.patch.yml、兼容投影 provider_config.json; 脚本只碰兼容投影里的三个位置 —— 落点与写法见 docs/MODEL-PROVIDERS.md §1。

环境要求

项 要求
主宿主 DSH(DeepSeekRuntime):读 ~/.dsh/profiles/<profile>/cordis.patch.yml;会话 / 子代理 / 各类 agent 共用 127.0.0.1:7871 单一入口
兼容投影 ZCode 桌面端(Windows,可选):读 ~/.zcode/v2/provider_config.json
运行时 Python 3(脚本只用标准库;门面重生成脚本 tools/make_social_preview.py 例外,需 numpy + Pillow)、Node.js 18+(跑探测/旧版路由);统一入口 gateways/zgate 是单个 Go 二进制,日常运行不需要 Go(只有自行构建时需要 Go 1.22+,见 docs/TOOLS.md §0)
配置与凭据 DSH 的 cordis.patch.yml + 兼容投影 provider_config.json(默认在 ~/.zcode/v2/);凭据只走环境变量,变量名与取值见 docs/SECRETS.md
网络 能直连你的供应商;三个 chat 组统一指向 127.0.0.1:7871(zgate),由它按需拉起 WorkBuddy 网关(7863)与 Qoder hub(8790)两个本地子进程。生命周期、自启与换版见 docs/MAINTENANCE.md §8、docs/ZGATE-LIFECYCLE.md

使用

顺序不能乱:先刷价格表 → 再探测 → 最后同步。探测要慢 —— 一个模型间隔至少 20 秒, 太密会把对方的账号池打爆;同步是秒级的。

  1. 准备环境变量 —— OPENCODE_GO_KEY(OpenCode-Go)、WB_GATEWAY_KEY(WorkBuddy 网关)、QD_API_KEY(Qoder 网关)、QWEN_API_KEY / QWEN_BASE(千问直连)、QINIU_API_KEY(七牛云 AI 网关);部分也可用 git-ignored 的 providers/*/.env.local。凭据一律从环境变量读,只写变量名、不写真值,完整清单见 docs/SECRETS.md §3.5。
  2. 刷价格表 —— WorkBuddy 侧先跑 providers/workbuddy/workbuddy_fetch_pricing.py; OpenCode-Go 侧不用刷,同步脚本每次现拉目录与价格;Qoder 侧也不用刷,qoder_sync.py 每次现拉 /v1/models。
  3. 探测 —— providers/workbuddy/workbuddy_probe.py --sleep 20、providers/opencode-go/probe/probe_models.py、 providers/qoder/qoder_probe.py。必须按宿主生效请求体探测(effective_body.js 复刻的规则合并语义):裸 body 能通不代表按宿主规则合并后能通。
  4. 探测并归一化 —— 先更新主力候选(可选),再跑统一探测,最后由 model_alias.py 生成三组 + alias map:
python tools/arena_leaderboard.py --refresh --write   # 可选:外部榜单 → 主力候选
python tools/model_probe.py
python tools/model_alias.py --slot auto --probe-file ~/.zcode/v2/model_probe.json --apply

主力由两部分组成:人工 MAIN_IDS + 榜单候选(分数接近 DeepSeek 且积分 ≤ 0.11 的 已配置模型)。榜单口径与 2026-10-23 的候选见 docs/BENCHMARKS.md §8。

旧的 go_model_sync.py / workbuddy_sync.py / qoder_sync.py 现在只作 数据采集;它们的旧 ID 会由 model_alias.py 归一化成统一的型号名。命名、 积分换算与桥接规则见 docs/MODEL-ALIAS.md。

model_alias.py 会先备份再原子替换 provider_config.json;兼容投影端约 1 秒轮询该文件,DSH 侧消费 cordis.patch.yml, 写完一般不用重启宿主。统一入口(gateways/zgate)、alias map、协议桥与各脚本产物见 docs/TOOLS.md, 命名与积分规则见 docs/MODEL-ALIAS.md, 日常刷新、限速与回退见 docs/MAINTENANCE.md。

反馈

接不上某个供应商、探测结果对不上、想要新的判定手法,都可以到 Issues 反馈;想参与贡献见 CONTRIBUTING, 安全问题按 SECURITY 报告。反馈时请带上:

  • 跑的是哪个脚本、卡在哪一步、报错原文
  • 涉及的模型与 provider、DSH profile 版本(或兼容宿主版本)
  • 对应的环境变量是否已设置(不要把 key 贴出来)
  • 探测的输出文件(providers/workbuddy/cache/ 下那两份,发之前先扫一眼有没有凭据)

免责声明

本项目仅供学习与个人使用。

  • 本仓库不上传、不收集任何数据;脚本只与你自己机器上的配置和你自己的模型网关交互
  • 脚本会修改你自己的宿主配置(DSH cordis.patch.yml / 兼容投影 provider_config.json),写之前会自动备份,仍建议自己再备份一份
  • 示例涉及的 opencode.ai、WorkBuddy2API、Qoder 与你自行接入的其它供应商都是第三方服务, 本项目与它们不存在任何隶属、合作、授权或认可关系
  • 模型价格、额度、可用性与隐私策略一律以服务商当时的说明为准,本仓文档只是某一时刻的快照; 仓里的模型清单与分组按成本档 / 积分倍率排,是主观取舍,不是推荐
  • 使用本项目产生的任何后果由使用者自行承担

「ZCode」「OpenCode Zen / Go」等商标、标识的权利均归其权利人所有。本项目与之不存在任何隶属、合作、授权、认可或支持关系。

开源鸣谢

本仓库建立在这些项目与服务之上(逐项声明见 NOTICE):

项目 用途
WorkBuddy2API Panel(链路:Sliverkiss/workbuddy2api 已删库 → linguo2625469/workbuddy2api-panel 2026-10-21 停更 → 本仓现跟踪此分支) 腾讯 CodeBuddy 多账号网关,WorkBuddy 侧全部请求都发给它(MIT;本仓不含其源码,只通过 HTTP 调用)
qoder2api-hub Qoder 账号网关,Qoder 侧全部请求都发给它(MIT;本仓不含其源码,只通过 HTTP 调用)
Qoder(qoder.com.cn / qoder.com) Qoder 侧的模型服务与账号(商业服务)
OpenCode Zen / Go(opencode.ai) 模型套餐与 API 网关,OpenCode-Go 侧全部请求都发给它(商业服务)
ZCode 兼容投影宿主,本仓保留其配置落点并复刻其规则合并语义(Apache-2.0)
ZCodium ZCode 的 MIT 授权独立审计 fork,思考规则切片的来源(MIT)
Python 3 / Node.js 脚本运行时

调研过的 14 个同类型项目,以及本仓实际复制的上游文件与来源凭证,见 docs/UPSTREAM.md。

许可证

本项目以 MIT License 发布。第三方组件与服务的版权与条款声明见 NOTICE。

About

把模型供应商接进 ZCode 客户端的脚本与文档:模型探测、按成本档分档、思考参数矩阵。

Topics

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages