api-server/docs/architecture/m-ai-migration-inventory.md
wangdl 1f2d7825e7
All checks were successful
Deploy API Server / build-and-unit (push) Successful in 40s
Deploy API Server / current-integration (push) Successful in 30s
Deploy API Server / backward-compat (push) Successful in 0s
Deploy API Server / deploy (push) Successful in 1m3s
docs(ai): close unified business migration phase
- Inventory: updated with M-AI-08 PASS as baseline, Legacy retention details
- Closure: all 6 milestones PASS commits recorded, feature flag matrix
- Rollout plan: 7-stage progressive rollout with metrics & rollback
- Gitea: M-AI-09 renamed to M-AI-RETIRE-01
- Stage naming: M-AI-HARDENING + M-AI-RETIRE for post-migration phases

AI core business migration stage: DONE
Next stage: production grayscale rollout (M-AI-HARDENING)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-22 22:19:37 +08:00

141 lines
7.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# M-AI 迁移盘点AI Workflow 全量清单
> 审计日期2026-06-22
> 基线M-AI-08 PASScommit `e769d67`
> 阶段状态AI 核心业务迁移 — DONE
---
## 一、全量 AI Workflow 清单
| # | Workflow | 公开入口 | 模型调用方 | 当前执行方式 | 已迁移 | 里程碑 | 后续处理 |
|---|----------|---------|-----------|-------------|:---:|--------|---------|
| 1 | Active Recall 分析 | `POST /ai-analysis` / `POST /active-recalls/:id/submit` | ActiveRecallExecutor / AiAnalysisWorker | Unified Engine + 旧 Worker 双路径 | ✅ | M-AI-04 | 旧 Worker 待退役 |
| 2 | Feynman 评估 | `POST /ai-analysis/feynman` | FeynmanExecutor / AiAnalysisWorker | Unified Engine + 旧 Worker 双路径 | ✅ | M-AI-05 | 旧 Worker 待退役 |
| 3 | ReviewCard 生成 | `POST /ai/analysis/feynman`子Job | ReviewCardGenerationExecutor / ReviewCardGenerationWorkflow | Unified Child Job + Legacy EventBus 双路径 | ✅ | M-AI-06 | 旧 Subscriber 待退役 |
| 4 | Quiz 生成 | `POST /api/ai/jobs`jobType=quiz_generation | QuizGenerationExecutor / 外部 Runtime | Unified Engine + 旧 Runtime 轮询双路径 | ✅ | M-AI-07 | 旧 Runtime 待退役 |
| 5 | **学习状态分析** | `POST /api/ai/jobs`jobType=learning_state_analysis | **外部 Runtime** | 旧 Runtime 轮询 → aiRuntimeJob 表 | ❌ | **M-AI-08** | 本批迁移 |
| 6 | **薄弱点分析** | `POST /api/ai/jobs`jobType=weak_point_analysis | **外部 Runtime** | 旧 Runtime 轮询 → aiRuntimeJob 表 | ❌ | **M-AI-08** | 本批迁移 |
| 7 | **下一步行动规划** | `POST /api/ai/jobs`jobType=next_action_planning | **外部 Runtime** | 旧 Runtime 轮询 → aiRuntimeJob 表 | ❌ | **M-AI-08** | 本批迁移 |
| 8 | **闪卡生成** | `POST /api/ai/jobs`jobType=flashcard_generation | **外部 Runtime** | 旧 Runtime 轮询 → Flashcard | ❌ | **M-AI-08** | 本批迁移 |
| 9 | 学习趋势分析 | `GET /api/activity/trend` | LearningTrendWorkflow → AiGateway | Legacy Workflow 直接调用 AiGateway | ❌ | 延期 | 非核心首版功能 |
| 10 | 知识导入 | `POST /api/knowledge-bases/:kbId/items/import` | KnowledgeImportWorkflow → AiGateway | Legacy Workflow 直接调用 AiGateway | ❌ | 延期 | 非核心首版功能 |
| 11 | RAG 聊天 | WebSocket / `POST /api/rag-chat` | RagChatService → AiGateway | 独立服务,不在 Job Engine 中 | ❌ | 延期 | 独立系统,非 Job 模型 |
| 12 | 向量 Rerank | 内部RAG 管道) | VectorService → AiGateway | 独立服务调用 | ❌ | 延期 | 独立系统,非 Job 模型 |
| 13 | Admin Hermes Chat | Admin 内部 | AdminAiChatService → 直接 HTTP | 绕过 AiGateway直接 fetch | ❌ | 延期 | Admin 工具,非生产用户路径 |
| 14 | Synthetic Job | 测试 | SyntheticResultProjector → Engine | Unified EngineNODE_ENV=test | ✅ | M-AI-03 | 测试工具 |
| 15 | Legacy AiAnalysisWorker | BullMQ ai-analysis 队列 | ActiveRecallAnalysisWorkflow / FeynmanEvaluationWorkflow → AiGateway | 旧 Worker双路径中的 Legacy 分支) | ⚠️ | M-AI-04/05 | 保留至 Legacy 退役 |
| 16 | ReviewCardSubscriber | EventBus ai.analysis.completed | ReviewCardGenerationWorkflow → AiGateway | EventBus 订阅Legacy 分支) | ⚠️ | M-AI-06 | 保留至 Legacy 退役 |
---
## 二、分类汇总
### 已迁移6
| # | Workflow | Milestone |
|---|----------|-----------|
| 1 | Active Recall | M-AI-04 |
| 2 | Feynman | M-AI-05 |
| 3 | ReviewCard | M-AI-06 |
| 4 | Quiz | M-AI-07 |
| 14 | Synthetic | M-AI-03 |
| * | (Engine 基础设施) | M-AI-03 |
### M-AI-08 范围4
| # | Workflow | 当前模型 | 当前数据表 | 优先级 |
|---|----------|---------|-----------|--------|
| 5 | learning_state_analysis | 外部 Runtime | AiLearningAnalysis | 高 |
| 6 | weak_point_analysis | 外部 Runtime | WeakPointCandidate | 高 |
| 7 | next_action_planning | 外部 Runtime | NextActionRecommendation | 高 |
| 8 | flashcard_generation | 外部 Runtime | Flashcard | 中 |
这四个作业类型均通过外部 Runtime 轮询机制执行,使用 `AiRuntimeJob` 表而非统一 `AiJob` 表。需要内联 Prompt/Schema 并通过 AiGateway 调用。
### 明确延期5
| # | Workflow | 原因 |
|---|----------|------|
| 9 | 学习趋势 | 短期可视化,非核心分析 |
| 10 | 知识导入 | 独立功能链 |
| 11 | RAG 聊天 | 独立系统,非 Job 模型 |
| 12 | 向量 Rerank | 独立管道 |
| 13 | Admin Chat | Admin 工具 |
### 待退役2
| # | Workflow | 何时退役 |
|---|----------|---------|
| 15 | Legacy AiAnalysisWorker | M-AI-09 Heavy Runtime 退场 |
| 16 | ReviewCardSubscriber (Legacy) | M-AI-09 Heavy Runtime 退场 |
---
## 三、Legacy 保留清单与退役前置条件
### 当前保留的 Legacy 链路
| Legacy 组件 | 当前用途 | Unified 替代 | 默认流量 | Feature Flag | 退役前置条件 |
|------------|---------|-------------|---------|-------------|------------|
| AiAnalysisWorker | active-recall / feynman-evaluation 旧队列 | ActiveRecallExecutor / FeynmanExecutor | Legacy 默认 | ACTIVE_RECALL_ENGINE_MODE / FEYNMAN_ENGINE_MODE | Unified 生产 100%Legacy 流量=0 |
| ReviewCardSubscriber | ai.analysis.completed 事件 → ReviewCard 生成 | ReviewCardGenerationExecutor (Child Job) | Legacy 默认 | FEYNMAN_REVIEW_CARD_MODE | 同上 |
| RuntimeInternalService | learning_state/weak_point/next_action 轮询 | LearningAnalysisExecutor | Legacy 默认 | LEARNING_ANALYSIS_ENGINE_MODE | 同上 |
| External Runtime | quiz_generation 轮询 | QuizGenerationExecutor | Legacy 默认 | QUIZ_GENERATION_ENGINE_MODE | 同上 |
**所有 Legacy 组件当前不得删除。** 必须满足 M-AI-RETIRE Gate 全部条件后方可退役。
### 退役前置条件(冻结)
```text
- Unified 生产流量达到 100%
- 连续观察期内无 P0/P1
- 失败率在允许范围
- 无双执行 / 无重复产物 / 无重复扣费
- 无跨用户事件
- 成本符合预算
- 所有 Flag 可回滚
- Legacy 流量为 0
- Legacy Queue 无新任务
- 历史 Legacy Job 已处理完成
```
---
## 四、闭环判定
### 核心生产 AI Workflow 状态
```text
已迁移到 Unified Engine 6 个
M-AI-08 范围内(本批): 4 个
明确延期(非阻塞): 5 个
待退役Legacy 双路径): 2 个
─────────────────────────────────
总计: 17 个
```
### 判定
```
M-AI-08 是否为最后一个核心业务迁移里程碑:是
理由:
- M-AI-08 覆盖剩余 4 个核心生产 AI Workflow均通过 Runtime 轮询)
- 延期的 5 个为非核心/独立系统,不阻塞业务迁移主线
- Legacy 双路径Active Recall/Feynman在 Engine 层面已完成迁移,
仅待 M-AI-09 退役旧 Worker
```
---
## 四、未登记模型调用检查
| 检查项 | 状态 | 证据 |
|--------|:--:|------|
| 是否存在未登记的生产模型调用 | **否** | 全部 17 个 Workflow 已盘点 |
| 是否存在 Controller 直连 Provider | **否** | 所有调用通过 AiGateway 或外部 Runtime |
| 是否存在 Service 绕过 AiGateway | **仅 Admin Chat** | Admin 工具,非生产用户路径 |
| 是否存在生产 Worker 绕过统一 Job | **Runtime 4 个** | 本批 M-AI-08 迁移 |
| 是否存在无主人的 Legacy AI Queue | **ai-analysis** | 仍有双路径M-AI-09 退役 |