49 lines
1.1 KiB
Markdown
49 lines
1.1 KiB
Markdown
# 模型与路由模块设计
|
|
|
|
## 1. 分层设计
|
|
|
|
| 层 | 职责 |
|
|
|----|------|
|
|
| 配置层 | 管理服务商、模型、路由规则和知识库模型绑定 |
|
|
| 路由层 | 根据任务类型、范围和策略选择模型 |
|
|
| 调用层 | 通过 OpenAI-compatible 客户端调用 Chat/Embedding |
|
|
| 观测层 | 写入模型调用日志,供运行观测查询 |
|
|
|
|
## 2. 路由输入
|
|
|
|
模型路由至少需要:
|
|
|
|
- `taskType`
|
|
- `matchScope`
|
|
- `scopeId`
|
|
- `bizType`
|
|
- `bizId`
|
|
- 调用参数。
|
|
|
|
`matchScope` 初始支持 `GLOBAL`、`RAG_STORE`、`AGENT`。
|
|
|
|
## 3. 路由输出
|
|
|
|
路由结果包含:
|
|
|
|
- 服务商。
|
|
- 模型配置。
|
|
- 上游模型名。
|
|
- 超时时间。
|
|
- Fallback 列表。
|
|
- 调用选项。
|
|
|
|
## 4. 失败策略
|
|
|
|
- 主模型失败时按 Fallback 顺序重试。
|
|
- 全部失败时返回统一错误。
|
|
- 每次调用均写入 `model_call_log`。
|
|
- Fallback 成功时状态记为 `FALLBACK_SUCCESS`。
|
|
|
|
## 5. 与其他模块关系
|
|
|
|
- 知识资产模块使用 Embedding 路由和知识库模型绑定。
|
|
- Workflow 和 Agent 使用 Chat 路由。
|
|
- 运行观测读取 `model_call_log`。
|
|
|