跳转至

RAG 设计

本文档描述当前实现的检索增强生成流程,基于 ai_service/services/rag_retrieval.py 与编排器集成。

架构概览

flowchart TB
    Input[用户输入] --> Orchestrator[编排器]
    Orchestrator -->|agent_id 存在| RAG[检索服务]
    RAG --> Embed[查询向量化]
    Embed --> Qdrant[向量检索]
    Qdrant --> DB[读取文本块]
    DB --> Context[上下文拼接]
    Context --> Orchestrator
    Orchestrator --> Output[模型回复]

关键流程

  1. 获取 Agent 挂载的知识源列表
  2. 使用嵌入服务对查询生成向量
  3. 在 Qdrant 中按知识源过滤检索
  4. 从数据库读取命中的文本块内容
  5. 生成上下文并拼接到用户问题

参数约定

当前默认参数来自编排器调用:

  • top_k: 5
  • score_threshold: 0.3
  • max_context_length: 4000

这些值可在编排器调用处调整。

存储策略

数据类型 存储位置 说明
原始文档 MinIO 上传后保存原文件
文本块 PostgreSQL 分块后的文本内容
向量 Qdrant 向量索引与 payload

能力增强(规划中)

当前状态

  • 当前流程采用单路向量召回。
  • 当前结果直接拼接上下文,未引入重排序。
  • 当前仓库暂无独立的 RAG 离线评测模块。

计划补齐项

  1. 引入重排序流程,提升上下文相关性。
  2. 增加多路召回与融合策略,提升覆盖率与鲁棒性。
  3. 建立检索召回与生成质量评测,形成可回归基线。

最后更新

  • 2026-02-11

相关代码

  • ai_service/services/rag_retrieval.py
  • ai_service/orchestrator/graph.py