Files
2026-07-10 17:59:59 +08:00

11 KiB
Executable File

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的幸运星