系统架构
本文档基于当前代码仓库梳理系统组件、数据流与运行拓扑,聚焦已实现能力。
架构目标
- 提供可扩展的对话服务入口,支持 SSE 与 WebSocket。
- 支持 Agent 与知识源管理,并以 RAG 方式增强回答。
- 支持 Agent 级 MCP Server 挂载,按策略调用外部工具(出站)。
- 支持文档上传、解析、分块与向量检索。
组件清单
| 组件 | 目录 | 说明 |
|---|---|---|
| AI 服务 | ai_service/ |
FastAPI + LangGraph 编排器与 RAG 能力 |
| Demo 后端 | demo-backend/ |
Socket IO 中转服务 |
| Demo 前端 | demo-frontend/ |
对话演示前端 |
| Admin 前端 | admin-frontend/ |
Agent 与知识源管理界面 |
| 文档与配置 | docs/ mkdocs.yml |
文档系统与导航 |
运行拓扑
flowchart LR
User[用户浏览器]
DemoFE[Demo 前端]
AdminFE[Admin 前端]
DemoBE[Demo 后端 Socket IO]
API[AI 服务 FastAPI]
Orchestrator[编排器 LangGraph]
ModelLoader[模型加载器]
DB[关系型数据库]
MinIO[对象存储 MinIO]
Qdrant[向量库 Qdrant]
User --> DemoFE
User --> AdminFE
DemoFE --> DemoBE
DemoBE --> API
AdminFE --> API
API --> Orchestrator
Orchestrator --> ModelLoader
API --> DB
API --> MinIO
API --> Qdrant
关键数据流
对话请求
flowchart LR
Client[客户端] --> API[FastAPI]
API --> Orchestrator[LangGraph 编排器]
Orchestrator --> LLM[聊天模型]
Orchestrator -->|可选| RAG[RAG 检索]
RAG --> Qdrant[向量库]
Qdrant --> DB[文本块数据库]
Orchestrator --> MCP[MCP Client]
MCP --> ExtMCP[外部 MCP Server]
Orchestrator --> API
API --> Client
文档摄取
flowchart LR
Upload[上传文档] --> MinIO[MinIO 存储]
MinIO --> Parser[解析器]
Parser --> Chunker[分块服务]
Chunker --> Embedder[嵌入服务]
Embedder --> Qdrant[向量库]
Chunker --> DB[文本块数据库]
目录与职责映射
ai_service/api/:API 路由与协议定义ai_service/orchestrator/:LangGraph 编排器与状态模型ai_service/services/:RAG、摄取、分块、嵌入ai_service/services/mcp_*:MCP 挂载解析、策略、客户端、审计、密钥管理ai_service/storage/:数据库模型、MinIO 与 Qdrant 客户端ai_service/utils/:配置、日志、模型加载
如需了解具体 API 端点,请查看「核心概念 → API 服务」与「API 参考」。