# Gene Family MAS V2 - 架构文档 **版本**: 2.0.0 **最后更新**: 2026-04-17 --- ## 系统架构概览 ``` ┌─────────────────────────────────────────────────────────────┐ │ 前端层 (Vue3) │ │ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │ │ │ RAG查询界面 │ │ Agent状态组件 │ │ 知识图谱可视化│ │ │ └──────────────┘ └──────────────┘ └──────────────┘ │ └─────────────────────────────────────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────────────────────┐ │ API层 (FastAPI) │ │ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │ │ │ RAG路由 │ │ RAPTOR路由 │ │ 时序KG路由 │ │ │ └──────────────┘ └──────────────┘ └──────────────┘ │ │ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │ │ │ 高级RAG路由 │ │ 知识图谱路由 │ │ 推理路由 │ │ │ └──────────────┘ └──────────────┘ └──────────────┘ │ └─────────────────────────────────────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────────────────────┐ │ 服务层 (Services) │ │ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │ │ │ RAG编排器 │ │ RAPTOR检索器 │ │ 时序查询引擎 │ │ │ │ (Self-RAG) │ │ (层次检索) │ │ (时间维度) │ │ │ └──────────────┘ └──────────────┘ └──────────────┘ │ │ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │ │ │ MultiHopRAG │ │ 实体链接 │ │ 引用溯源 │ │ │ └──────────────┘ └──────────────┘ └──────────────┘ │ └─────────────────────────────────────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────────────────────┐ │ 数据层 (Data Layer) │ │ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │ │ │ 向量存储 │ │ 知识图谱 │ │ 时序KG │ │ │ │ (InMemory/ │ │ (Neo4j/ │ │ (内存/JSON) │ │ │ │ Qdrant) │ │ NetworkX) │ │ │ │ │ └──────────────┘ └──────────────┘ └──────────────┘ │ │ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │ │ │ 文档存储 │ │ 反馈数据库 │ │ 配置存储 │ │ │ │ (PDF/JSON) │ │ (SQLite) │ │ (YAML) │ │ │ └──────────────┘ └──────────────┘ └──────────────┘ │ └─────────────────────────────────────────────────────────────┘ ``` --- ## 核心模块详解 ### 1. RAG系统 #### 1.1 基础RAG ``` src/rag/ ├── base.py # 基础类和接口 ├── vector_store.py # 向量存储 ├── embeddings.py # 嵌入模型 ├── retriever.py # 检索器 └── hybrid_retriever.py # 混合检索器 ``` **流程**: 1. 查询分析 (QueryAnalyzer) 2. 检索策略选择 (RetrievalStrategyAgent) 3. 执行检索 (HybridRetriever) 4. 结果评估 (ResultEvaluator) #### 1.2 Agent编排RAG ``` src/rag/agentic/ ├── orchestrator.py # Agent编排器 (LangGraph) ├── query_analyzer.py # 查询分析 ├── retrieval_strategy.py # 检索策略 └── result_evaluator.py # 结果评估 ``` **Self-RAG流程**: ``` 查询 -> 分析 -> 检索 -> 评估 -> 反思 -> [重写?] -> 生成答案 ↑___________________________| ``` **MultiHopRAG流程**: ``` 查询 -> 分析 -> 判断复杂? -> 是 -> 多跳检索 -> 整合结果 | └-> 否 -> 普通检索 ``` #### 1.3 高级RAG功能 ``` src/rag/advanced/ ├── query_expansion.py # 查询扩展 ├── entity_linking.py # 实体链接 ├── citation_tracker.py # 引用溯源 ├── dynamic_kg_builder.py # 动态知识图谱 ├── cross_paper_fusion.py # 跨论文融合 ├── neo4j_graph_algorithms.py # 图算法 └── raptor/ # RAPTOR层次索引 ├── tree_builder.py ├── retriever.py └── summarizer.py ``` ### 2. RAPTOR层次索引 **树结构**: ``` Root (全局摘要) / \ Summary L3 Summary L3 / \ / \ Summary L2 Summary L2 Summary L2 Summary L2 / \ / \ / \ / \ Leaf Leaf Leaf Leaf Leaf Leaf Leaf Leaf ``` **检索策略**: - **Top-Down**: 从根节点开始,逐层向下匹配 - **Cross-Level**: 在所有层同时匹配 - **Multi-Level**: 返回不同层级的结果 ### 3. 时序知识图谱 **数据模型**: ``` TemporalEntity: - entity_id - name - entity_type - valid_time: TimePeriod (start, end) - properties TemporalRelation: - relation_id - source_id - target_id - relation_type - timestamp: TimePoint - temporal_type: BEFORE/AFTER/DURING/CONCURRENT ``` **查询类型**: - 时间范围查询 - 实体历史查询 - 研究进展时间线 - 时间线可视化 --- ## 数据流 ### RAG查询数据流 ``` 用户查询 │ ▼ ┌──────────────┐ │ 查询分析 │ -> 识别意图、提取实体 └──────────────┘ │ ▼ ┌──────────────┐ │ 检索策略 │ -> 选择检索模式 └──────────────┘ │ ▼ ┌──────────────┐ │ 向量检索 │ -> 相似度搜索 │ BM25检索 │ -> 关键词匹配 │ 子串检索 │ -> 精确匹配 └──────────────┘ │ ▼ ┌──────────────┐ │ 结果融合 │ -> 加权排序 └──────────────┘ │ ▼ ┌──────────────┐ │ Self-RAG反思 │ -> 评估充分性 └──────────────┘ │ ├-> 不充分 -> 重写查询 -> 重新检索 │ ▼ ┌──────────────┐ │ 生成答案 │ -> LLM生成 └──────────────┘ │ ▼ ┌──────────────┐ │ 添加引用 │ -> 引用溯源 └──────────────┘ │ ▼ 用户响应 ``` --- ## API设计 ### RESTful API规范 - **基础路径**: `/api/v1` - **资源命名**: 使用名词复数,如 `/rag`, `/entities` - **HTTP方法**: - GET: 查询 - POST: 创建/操作 - DELETE: 删除 - **响应格式**: JSON - **错误处理**: HTTP状态码 + 错误详情 ### 主要API分组 | 分组 | 路径前缀 | 功能 | |------|----------|------| | RAG | `/rag` | 检索增强生成 | | RAPTOR | `/raptor` | 层次索引 | | 时序KG | `/temporal` | 时序知识图谱 | | 高级RAG | `/advanced` | 高级RAG功能 | | 知识图谱 | `/kg` | 知识图谱操作 | --- ## 扩展性设计 ### 1. 模块化设计 - 每个功能模块独立,通过接口交互 - 支持插件式扩展 ### 2. 配置驱动 - 所有组件可通过配置调整 - 支持运行时配置更新 ### 3. 存储抽象 - 向量存储: 支持InMemory、Qdrant等 - 知识图谱: 支持Neo4j、NetworkX等 --- ## 性能考虑 ### 1. 缓存策略 - 查询结果缓存 - 嵌入向量缓存 - 知识图谱节点缓存 ### 2. 异步处理 - LLM调用异步 - 文件上传异步 - 长时间任务后台处理 ### 3. 资源管理 - 向量存储内存管理 - 连接池管理 - 垃圾回收优化 --- ## 安全考虑 ### 1. 输入验证 - 所有API参数验证 - SQL注入防护 - XSS防护 ### 2. 访问控制 - API密钥认证 (可选) - 请求限流 - CORS配置 ### 3. 数据保护 - 敏感配置加密存储 - 日志脱敏 - 数据传输加密 --- ## 监控与日志 ### 1. 指标收集 - 请求延迟 - 成功率 - 资源使用率 ### 2. 日志分级 - DEBUG: 开发调试 - INFO: 正常运行 - WARNING: 警告 - ERROR: 错误 ### 3. 健康检查 - `/health` 端点 - 依赖服务检查 - readiness/liveness探针 --- **文档维护**: xialab的幸运星