feat(route-lab): add shared-group relay validation pack
This commit is contained in:
@@ -85,6 +85,14 @@
|
||||
- 当新填的 `supported_models` 已在现有 provider 或草稿里出现时,页面会直接提示“同模型已存在”,并优先建议复用已有 `provider_id`,避免因为“官方 / 中转”重复新增同一模型定义
|
||||
- `GET /api/packs/{pack_id}/providers` 现已补充返回 `base_url / smoke_test_model / supported_models`,用于前端做模板参考和模型冲突提示
|
||||
- 2026-05-28 继续把这条规则下沉到服务端:`POST /api/provider-drafts`、`PUT /api/provider-drafts/{draft_id}`、`POST /api/provider-drafts/{draft_id}/publish` 现在都会做 pack 级模型冲突校验;同模型若已被其他 provider / draft 占用,会直接返回 `409 provider_model_conflict`
|
||||
- 2026-05-28 已新增独立实验 pack `packs/openai-cn-pack-route-lab/`,用于验证 “同一个 group 下挂多条 GPT 路线” 的方案 B 骨架:
|
||||
- 当前实验 provider 为 `gpt-asxs-route-lab` 与 `gpt-codex2api-route-lab`
|
||||
- 两者共用 `group_template.name=GPT Shared 路由实验` 与 `plan_template.name=GPT Shared 路由实验套餐`
|
||||
- 两者使用不同 `channel_template.name`,并先以不同公开 alias 对外:
|
||||
- `gpt-5.4-asxs` / `gpt-5.4-mini-asxs`
|
||||
- `gpt-5.4-codex2api` / `gpt-5.4-mini-codex2api`
|
||||
- 这轮只解决 “同组多线路” 的第一阶段验证,不代表当前系统已经支持 “同公开模型名双线路 + 显式 route policy”
|
||||
- `codex2api` 当前先按 `https://www.codex2api.com/v1` 作为 API 根地址假设,若 preview/import 失败,需先校正真实 API base URL
|
||||
- 2026-05-26 已把“最终用户 -> 公网域名 -> OpenClaw”这一跳补进正式验证口径:
|
||||
- 公网根地址当前统一为 `https://sub.tksea.top`
|
||||
- OpenClaw 本地 `MiniMax` 运行时故障已定位为 `pi-ai/openai-node` 未继承系统 `HTTP(S)_PROXY`,不是 allowlist 或模型名大小写问题
|
||||
|
||||
70
docs/ROUTE_LAB_VALIDATION.md
Normal file
70
docs/ROUTE_LAB_VALIDATION.md
Normal file
@@ -0,0 +1,70 @@
|
||||
# Route Lab Validation
|
||||
|
||||
本文件记录 `asxs + codex2api` 同组双线路实验的最小验证路径。
|
||||
|
||||
## 目标
|
||||
|
||||
验证以下结论是否成立:
|
||||
|
||||
1. 同一个 `group` 下可以挂两条不同 `base_url` 的 GPT 线路
|
||||
2. 两条线路可以通过不同 `channel` 和不同公开 alias 同时对外暴露
|
||||
3. 用户进入同一个 group 后,可以稳定看到并调用两条线路
|
||||
|
||||
## 实验 pack
|
||||
|
||||
- pack 目录:`packs/openai-cn-pack-route-lab`
|
||||
- provider A:`gpt-asxs-route-lab`
|
||||
- provider B:`gpt-codex2api-route-lab`
|
||||
|
||||
## 实验建模
|
||||
|
||||
```text
|
||||
Group: GPT Shared 路由实验
|
||||
Channel: GPT Shared - asxs
|
||||
Models:
|
||||
- gpt-5.4-asxs -> gpt-5.4
|
||||
- gpt-5.4-mini-asxs -> gpt-5.4-mini
|
||||
|
||||
Channel: GPT Shared - codex2api
|
||||
Models:
|
||||
- gpt-5.4-codex2api -> gpt-5.4
|
||||
- gpt-5.4-mini-codex2api -> gpt-5.4-mini
|
||||
```
|
||||
|
||||
## 关键约束
|
||||
|
||||
- 两条 provider 的 `group_template.name` 必须完全一致
|
||||
- 两条 provider 的 `channel_template.name` 必须不同
|
||||
- 第一轮实验不要把两条线路都暴露成同一个公开模型名
|
||||
- `codex2api` 当前先按 `https://www.codex2api.com/v1` 作为假设 API 根地址;若 preview 失败,需要先校正
|
||||
|
||||
## 建议验证顺序
|
||||
|
||||
1. 静态检查 pack
|
||||
2. 导入 `gpt-asxs-route-lab`
|
||||
3. 记录 `group_id / channel_id / account_ids`
|
||||
4. 导入 `gpt-codex2api-route-lab`
|
||||
5. 再记录 `group_id / channel_id / account_ids`
|
||||
6. 核对:
|
||||
- 两次导入后的 `group_id` 应相同
|
||||
- `channel_id` 应不同
|
||||
- 两组 account 的 `base_url` 应分别落到 `asxs` 与 `codex2api`
|
||||
7. 用同一个 group 下的用户 key 验证:
|
||||
- `GET /v1/models`
|
||||
- `POST /v1/chat/completions`
|
||||
|
||||
## 成功标准
|
||||
|
||||
- 同一个 group 下同时存在两条独立 channel
|
||||
- `gpt-5.4-asxs` 命中 `asxs`
|
||||
- `gpt-5.4-codex2api` 命中 `codex2api`
|
||||
- 关闭其中一条上游后,另一条 alias 仍能独立工作
|
||||
|
||||
## 第二轮暂不做
|
||||
|
||||
第二轮是把两条线路都暴露成同一个公开模型名,例如都叫 `gpt-5.4`。
|
||||
|
||||
这一步当前不建议直接做,因为:
|
||||
|
||||
- 现有服务端有同模型冲突校验
|
||||
- 即使绕过校验,也还缺显式的 route policy,无法保证官方 / 中转的命中优先级和 fallback 语义
|
||||
Reference in New Issue
Block a user