71 lines
2.0 KiB
Markdown
71 lines
2.0 KiB
Markdown
# 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`
|