67 lines
2.2 KiB
Markdown
67 lines
2.2 KiB
Markdown
|
|
# sub2api-cn-relay-manager
|
|||
|
|
|
|||
|
|
`sub2api-cn-relay-manager` 是一个独立于 `sub2api` 宿主仓库的外部伴生安装器 / 控制面项目。
|
|||
|
|
|
|||
|
|
目标不是修改 `sub2api`,也不是把国产模型能力硬塞进宿主源码,而是通过 `sub2api` 已有的管理 API,把“国产模型 OpenAI 兼容中转能力”以独立交付物的形式安装到任意一台已部署的 `sub2api` 实例上。
|
|||
|
|
|
|||
|
|
## 项目定位
|
|||
|
|
|
|||
|
|
- 宿主:第三方开源系统 `sub2api`
|
|||
|
|
- 约束:不修改宿主代码,不 fork 宿主,不要求宿主内置原生插件运行时
|
|||
|
|
- 交付:一个独立控制面项目 + 一个或多个 `model_pack`
|
|||
|
|
- 结果:管理员可一键导入多个国产模型 key,普通用户继续只用 `sub2api` 标准 API
|
|||
|
|
|
|||
|
|
## 这个项目解决的问题
|
|||
|
|
|
|||
|
|
- 不同机器部署了 `sub2api` 后,如何用同一套交付物补齐国产模型中转能力
|
|||
|
|
- 如何把多个国产模型 key 批量导入为可用的宿主资源
|
|||
|
|
- 如何在不改宿主的前提下实现热生效、探测、对账和漂移发现
|
|||
|
|
- 如何让普通用户完全无感,继续走 `sub2api` 标准接口
|
|||
|
|
|
|||
|
|
## 非目标
|
|||
|
|
|
|||
|
|
- 不做宿主原生插件系统
|
|||
|
|
- 不做任意第三方 Go 代码动态加载
|
|||
|
|
- 不要求宿主识别“插件”概念
|
|||
|
|
- 不接管宿主网关流量
|
|||
|
|
|
|||
|
|
## 目录结构
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
sub2api-cn-relay-manager/
|
|||
|
|
cmd/ # 未来 CLI / server 入口
|
|||
|
|
internal/ # 未来控制面后端实现
|
|||
|
|
web/ # 未来管理端前端
|
|||
|
|
docs/
|
|||
|
|
2026-05-12-sub2api-cn-relay-manager-solution.md
|
|||
|
|
packs/
|
|||
|
|
openai-cn-pack/
|
|||
|
|
README.md
|
|||
|
|
pack.json.example
|
|||
|
|
providers/
|
|||
|
|
deepseek.json.example
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 交付模型
|
|||
|
|
|
|||
|
|
本项目最终会拆成两个可独立发布的产物:
|
|||
|
|
|
|||
|
|
1. `sub2api-cn-relay-manager`
|
|||
|
|
- 外部控制面 / 安装器
|
|||
|
|
- 连接已有 `sub2api`
|
|||
|
|
- 安装模型包
|
|||
|
|
- 调用宿主管理 API 创建资源
|
|||
|
|
- 做 smoke test、对账和状态展示
|
|||
|
|
|
|||
|
|
2. `model_pack`
|
|||
|
|
- 只包含 provider 定义、默认模板、导入规则和校验信息
|
|||
|
|
- 不携带宿主执行代码
|
|||
|
|
- 可以跨机器复用
|
|||
|
|
|
|||
|
|
## 当前文档
|
|||
|
|
|
|||
|
|
完整方案见:
|
|||
|
|
|
|||
|
|
- [docs/2026-05-12-sub2api-cn-relay-manager-solution.md](./docs/2026-05-12-sub2api-cn-relay-manager-solution.md)
|
|||
|
|
|