跳转至

系统架构

本文档基于当前代码仓库梳理系统组件、数据流与运行拓扑,聚焦已实现能力。

架构目标

  • 提供可扩展的对话服务入口,支持 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 参考」。