# ai AI 网关服务 > 版本:0.1(骨架) > 日期:2026-07-07 > 状态:P5 待交付 > 关联文档:[架构影响地图](../../architecture/004_architecture_impact_map.md) --- ## 1. 模块职责 ai 是 AI 网关限界上下文(Python 实现),管理 LLMCall、Prompt、Generation 聚合。 统一封装 LLM 调用(多模型路由、重试、限流、成本控制),提供辅助出题、表达优化、分层提问等能力。 通过 gRPC 查询 content 题库与 data-ana 学情数据,结合知识图谱生成个性化内容。 --- ## 2. 技术栈 | 类别 | 技术 | 版本 | 用途 | |------|------|------|------| | 语言 | Python | 3.12+ | AI 生态 | | 框架 | FastAPI | 0.110+ | 异步 API | | LLM SDK | openai / anthropic | - | 多模型调用 | | 编排 | LangGraph | - | LLM 工作流编排 | | 检索 | Elasticsearch | 8.x | 题库检索(RAG) | | 缓存 | Redis | 7.x | Prompt 缓存、结果缓存 | | 校验 | pydantic | 2.x | 运行时校验 | | 追踪 | OpenTelemetry | - | LLM 调用链追踪 | --- ## 3. 架构图 ```mermaid graph TB BFF[BFF 聚合层] -->|gRPC| AI[ai 服务] AI --> ROUTER[ModelRouter
多模型路由] AI --> ORCH[LangGraph 编排] AI --> RAG[RAG 检索增强] RAG -->|gRPC| CONTENT[content 题库] RAG -->|gRPC| ANA[data-ana 学情] AI -->[(ES
题库检索)] AI -->[(Redis
结果缓存)] AI --> LLM[LLM API
OpenAI/Claude] ``` > 待 P5 交付时补充完整的分层架构图与 LLM 编排图。 --- ## 4. 核心流程图 ```mermaid sequenceDiagram participant T as 教师 participant BFF as BFF participant AI as ai 服务 participant CONTENT as content participant ANA as data-ana participant LLM as LLM API T->>BFF: AI 辅助出题 BFF->>AI: gRPC GenerateQuestions(topic, difficulty) AI->>CONTENT: gRPC 查询相关题目 + 知识点 AI->>ANA: gRPC 查询学情掌握度 AI->>AI: LangGraph 编排 Prompt AI->>LLM: 调用 LLM 生成 LLM-->>AI: 生成结果 AI->>AI: 质量校验 + 缓存 AI-->>BFF: 生成的题目列表 ``` > 待 P5 交付时补充:表达优化流程、分层提问流程、差异化建议流程。 --- ## 5. 对外契约 - **gRPC 服务**:AIService(GenerateQuestions、OptimizeExpression、SuggestDifferentiation、GenerateLayeredQuestions)(待 P5 定义 protobuf) - **消费事件**:无(按需 gRPC 调用) - **发布事件**:`edu.ai.generation.completed`(可选,用于审计) - **缓存**:Redis 存储生成结果(相同 prompt 24 小时缓存) > 待 P5 交付时补充完整 protobuf 定义与 Prompt 模板规范。 --- ## 6. 依赖关系 - **上游**:teacher-bff(AI 辅助功能) - **下游**:LLM API(OpenAI/Claude)、Elasticsearch、Redis、content(gRPC)、data-ana(gRPC) - **跨服务**:gRPC 调用 content 题库与 data-ana 学情,不消费事件 --- ## 7. 架构约束 1. LLM 调用必须经 ModelRouter,支持多模型故障切换 2. 生成内容必须经质量校验,禁止直接返回未校验结果 3. 调用成本必须记录,按用户/学校维度限额 4. Prompt 模板必须版本化管理,禁止硬编码 5. RAG 检索必须优先于 LLM 生成,减少幻觉 > 待 P5 交付时补充完整约束清单。 --- ## 8. 架构决策 > 待 P5 交付时补充 ADR 记录,预计包括:Python+FastAPI 选型、LangGraph 编排选型、多模型路由策略、RAG 检索策略、成本控制策略。