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[模型回复]
关键流程
- 获取 Agent 挂载的知识源列表
- 使用嵌入服务对查询生成向量
- 在 Qdrant 中按知识源过滤检索
- 从数据库读取命中的文本块内容
- 生成上下文并拼接到用户问题
参数约定
当前默认参数来自编排器调用:
top_k: 5score_threshold: 0.3max_context_length: 4000
这些值可在编排器调用处调整。
存储策略
| 数据类型 | 存储位置 | 说明 |
|---|---|---|
| 原始文档 | MinIO | 上传后保存原文件 |
| 文本块 | PostgreSQL | 分块后的文本内容 |
| 向量 | Qdrant | 向量索引与 payload |
能力增强(规划中)
当前状态
- 当前流程采用单路向量召回。
- 当前结果直接拼接上下文,未引入重排序。
- 当前仓库暂无独立的 RAG 离线评测模块。
计划补齐项
- 引入重排序流程,提升上下文相关性。
- 增加多路召回与融合策略,提升覆盖率与鲁棒性。
- 建立检索召回与生成质量评测,形成可回归基线。
最后更新
- 2026-02-11
相关代码
ai_service/services/rag_retrieval.pyai_service/orchestrator/graph.py