feat(routing): add canonical shadow provider pack

This commit is contained in:
phamnazage-jpg
2026-05-29 12:29:05 +08:00
parent b88aac7f79
commit 3c061f3ddb
8 changed files with 173 additions and 0 deletions

View File

@@ -108,6 +108,14 @@
- 前端只看到一个逻辑分组
- 插件层先做 route 级 sticky再把请求稳定转发到某个宿主 shadow group
- 宿主继续只做单线路 group 内的 account sticky / 调度
- 2026-05-29 已基于上述结论新增 canonical shadow pack
- `packs/openai-cn-pack-shadow-asxs/`
- provider`gpt-asxs-shadow-lab`
- 当前约束是:
- 一个 route 对应一个独立宿主 shadow group
- 宿主 shadow group 只承载 canonical upstream model`gpt-5.4``gpt-5.4-mini`
- alias/public model 的抽象只保留在插件 `logical_group -> route -> shadow_model` 层,不再下沉到宿主 channel
- 设计与验收路径已单独沉淀到 `docs/SHADOW_PROVIDER_VALIDATION.md`
- 2026-05-28 已新增插件整体需求盘点 `docs/PLUGIN_REQUIREMENTS_OVERVIEW_2026-05-28.md`
- 已把“增加模型、维护逻辑分组、智能路由、供应商帐号导入与停启用、普通用户前端”五大功能域统一收口
- 并明确区分 `已完成 / 待优化 / 待完成 / 未来规划`

View File

@@ -1,5 +1,8 @@
# Route Lab Validation
> 该文档现在只保留“同 group 多 channel + alias 下沉”失败实验的历史记录。
> 针对插件前置路由架构的当前正确方向,请改看 [docs/SHADOW_PROVIDER_VALIDATION.md](/home/long/project/sub2api-cn-relay-manager/docs/SHADOW_PROVIDER_VALIDATION.md)。
本文件记录 `asxs + codex2api` 同组双线路实验的最小验证路径。
## 目标

View File

@@ -0,0 +1,70 @@
# Shadow Provider Validation
本文件记录插件前置路由架构下,`shadow provider` 的最小正确验证路径。
## 目标
验证以下结论是否成立:
1. 插件层可以继续维护 `logical_group/public_model`
2. 宿主层的 `shadow group` 只承载 canonical upstream model
3. 真实 managed key 能通过宿主 `/v1/models``/v1/chat/completions`
4. 旧的 alias/public model 不再下沉到 stock host 的 `channel_mapped + restrict_models` 组合
## 设计结论
旧的 `route-lab` 已证明两件事:
1. 当前宿主不支持“多个 channel 复用同一个 group”
2.`weishaw/sub2api:0.1.129` 上,把 alias 继续下沉到宿主 shadow group会触发 `channel pricing restriction`
因此新的 shadow provider 约束是:
```text
plugin logical group
-> route
-> shadow group (host)
-> canonical models only
```
## 当前实验 pack
- pack 目录:`packs/openai-cn-pack-shadow-asxs`
- provider`gpt-asxs-shadow-lab`
## 实验建模
```text
Shadow Group: GPT ASXS Shadow 实验
Channel: GPT ASXS Shadow
Models:
- gpt-5.4
- gpt-5.4-mini
```
关键点:
- shadow group 不再暴露 `gpt-5.4-asxs`
- 插件 route 层如果需要 alias必须在 `logical_group_route_models.shadow_model` 之外处理
- stock host 只看到 canonical 模型
## 建议验证顺序
1. 导入 `gpt-asxs-shadow-lab`
2. 记录 `group_id / channel_id / account_id`
3. 用宿主订阅 key 直接验证:
- `GET /v1/models`
- `POST /v1/chat/completions`
4. 再用插件管理面创建临时 `logical_group / route`
5.`POST /api/routing/proxy/chat/completions`
6. 核对:
- `effective_gateway_key_source=managed_subscription`
- `forward.upstream_status=200`
- `route_decision_logs` 已写回同一 `request_id`
## 成功标准
- managed key `/v1/models` 返回 canonical model
- managed key `/v1/chat/completions` 返回 `200`
- 插件 `route proxy` 走真实 shadow group 时返回 `200`
- 不再出现 `channel pricing restriction`