feat: 接入模型动态 Fallback 与调用审计

This commit is contained in:
hh
2026-07-21 10:35:50 +08:00
parent 9429133d04
commit d0c3690d47
45 changed files with 9253 additions and 173 deletions
+7 -2
View File
@@ -1,8 +1,8 @@
# AirShelf 后端架构
> 适用目录:`core/backend`。
> 最后核对:2026-07-18
<!-- architecture-sync-commit: bfca22677cd0637b151c801fe53e68eb4ed8a6e3 -->
> 最后核对:2026-07-21。
<!-- architecture-sync-commit: 9429133d04e695e53ba5c485e3e13a379fb3a03a -->
> 本文描述当前代码结构;系统级拓扑见 [core/ARCHITECTURE.md](../ARCHITECTURE.md)。
## 1. 定位
@@ -60,6 +60,8 @@ core/backend/
- SQLite/MySQL 数据库切换。
- Redis cache、Celery broker/result 和业务锁。
- TOS、火山 ARK、火山 TTS、YunQi、TokenSSR 配置。
- `MODEL_ROUTING_POLICY` 集中声明文本、图片、配音和视频的重试、单次超时、总时限、最多候选模型数、最多真实调用数及后处理退避。
- 模型路由策略允许由环境变量覆盖;修改后需要同步重启 API 与 Celery Worker,保证两端使用相同策略。
- AI 功能开关和灰度团队配置。
- 积分赠送等平台参数。
@@ -184,6 +186,7 @@ API 总入口:
- `ModelProvider`
- `ModelConfig`
- `AITask`
- `AIModelAttempt`
- `ImageConversation`
- `QualityWord`
- `PromptTemplate`
@@ -192,6 +195,8 @@ API 总入口:
- 实体提取、基础资产、三视图、生图、生视频和 TTS
- 用户错误转换和生成通知
`AITask` 表示一次用户逻辑任务及其唯一计费生命周期;它与 `AIModelAttempt` 是一对多关系。每条 `AIModelAttempt` 对应一次真实模型请求,按顺序保存供应商/模型快照、重试或 Fallback 标记、状态、耗时、错误、用量、平台成本及脱敏请求/响应摘要,不独立参与积分预留、扣费或任务状态推进。
主要目录和文件:
```text