Files
sub2api-cn-relay-manager/docs/SHADOW_PROVIDER_VALIDATION.md

71 lines
2.0 KiB
Markdown
Raw Normal View History

# 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`