doc: 增加 .env 的注释

This commit is contained in:
zenfun
2025-12-24 14:51:57 +08:00
parent 7f160a8d2a
commit 38d2329991
3 changed files with 44 additions and 23 deletions

View File

@@ -41,8 +41,9 @@ graph TD
Master -- 签发 --> Key[Key 子令牌]
Master -- 关联 --> Namespace[Namespace 命名空间]
Namespace -- 定义 --> Binding[Binding 路由规则]
Binding -- 映射 --> Provider[Provider 上游供应商]
Provider -- 包含 --> Model[Model 模型能力]
Binding -- 映射 --> ProviderGroup[ProviderGroup 上游组]
ProviderGroup -- 包含 --> APIKey[APIKey 上游凭证]
Binding -. 关联 .-> Model[Model 能力表]
```
### 2.2 身份与权限模型
@@ -57,22 +58,28 @@ graph TD
- `allow_ips`/`deny_ips`:支持 CIDR 格式的 IP 白名单/黑名单。
### 2.3 路由与供应商模型
- **Provider (供应商)**:上游 AI 服务商(如 OpenAI, Anthropic
- `weight`:在同一分组内的负载均衡权重
- `auto_ban`:若开启,当上游持续报错时,系统会自动暂时禁用该供应商
- **Model (模型能力)**:定义模型的基础属性(上下文长度、功能支持等)
- **ProviderGroup (上游组)**:一组同类型上游定义(如 OpenAI / Anthropic / Compatible)。
- `base_url``models` 在 Group 层统一声明
- `name` 即路由的 `route_group`(内部使用)
- **APIKey (上游凭证)**:具体可用的 key 池
- `weight`:同组内负载均衡权重。
- `auto_ban` / `ban_until`:支持自动熔断与手动禁用。
- **Model (模型能力表)**:全局能力注册表(上下文长度、功能支持等)。
- **Namespace (命名空间)**:逻辑隔离单位,用于组织 Binding 规则。
- **Binding (路由规则)**:核心路由逻辑。
-`namespace.public_model`(用户请求的模型名)映射到特定的 `route_group`
- `selector_type`:匹配模式(目前主要为 `exact` 精确匹配)
-`bindingKey = namespace.public_model` 映射到 `group_id`ProviderGroup
- 同一 `bindingKey` 可存在多条 Binding候选通过 `weight` 进行加权选择
- `selector_type` + `selector_value` 用于从 Group 的 `models` 中解析上游 true_model。
- 能力校验以 `bindingKey` 为 keyCP 会将 true_model 能力汇总到 `bindingKey`)。
- 客户端请求若未携带 namespaceDP 会使用 key 的 `default_namespace` 生成 `bindingKey`
### 2.4 状态机约定
| 状态值 | 适用对象 | 含义 |
| :--- | :--- | :--- |
| `active` | 所有 | 正常可用。 |
| `suspended` | Master, Key, Namespace | 已停用,请求将被拦截。 |
| `auto_disabled` | Provider | 因故障被系统自动熔断。 |
| `manual_disabled` | Provider | 被管理员手动禁用。 |
| `auto_disabled` | APIKey | 因故障被系统自动熔断。 |
| `manual_disabled` | APIKey | 被管理员手动禁用。 |
---
@@ -101,7 +108,7 @@ graph TD
### 4.1 管理端 (Admin API) - 需 Admin Token
- **租户管理**:创建 Master、签发子 Key、实时 QPS 监控、冻结/解冻。
- **供应商管理**支持从预设模板创建、测试连通性、自动拉取上游模型列表
- **上游管理**ProviderGroup + APIKey 的 CRUD 与批量操作
- **模型注册表**:管理全局模型能力,支持从远程 `models.dev` 刷新和回滚。
- **日志审计**:全站请求日志查询、按条件批量删除日志、配置 Webhook 告警。
@@ -144,31 +151,41 @@ graph TD
```
### 5.2 供应商与路由配置
1. **添加 OpenAI 供应商**
1. **创建 ProviderGroup**
```bash
curl -X POST http://localhost:8080/admin/providers/custom \
curl -X POST http://localhost:8080/admin/provider-groups \
-H "Authorization: Bearer <admin_token>" \
-H "Content-Type: application/json" \
-d '{
"name": "openai-primary",
"name": "openai-default",
"type": "openai",
"base_url": "https://api.openai.com/v1",
"models": ["gpt-4o", "gpt-4o-mini"]
}'
```
2. **创建 APIKey**
```bash
curl -X POST http://localhost:8080/admin/api-keys \
-H "Authorization: Bearer <admin_token>" \
-H "Content-Type: application/json" \
-d '{
"group_id": 1,
"api_key": "sk-...",
"group": "default",
"models": ["gpt-4", "gpt-3.5-turbo"],
"weight": 10
}'
```
2. **创建模型路由 (Binding)**
3. **创建模型路由 (Binding)**
```bash
curl -X POST http://localhost:8080/admin/bindings \
-H "Authorization: Bearer <admin_token>" \
-H "Content-Type: application/json" \
-d '{
"namespace": "default",
"public_model": "gpt-4-latest",
"route_group": "default",
"public_model": "gpt-4o",
"group_id": 1,
"selector_type": "exact",
"selector_value": "gpt-4"
"selector_value": "gpt-4o",
"weight": 1
}'
```