RAG应用功能边界

18 阅读5分钟

对齐边界

下面说的是**独立检索服务(Retrieval Service)**的能力,不含Agent循环、召回评估、多轮检索决策(这部分放在主Agent)。 这个RAG服务只负责:文档入库处理流水线 + 检索接口 + 运维/权限/评估;对外输出原始chunk+元信息,不做答案生成、不决定如何搜索及搜索几次。

分成五大块:【文档接入&解析流水线】、【分块与索引管理】、【在线检索核心能力】、【企业管控能力】、【观测&评估运维能力】,再加进阶多模态/知识图谱扩展。

一、文档接入 & 解析流水线(Ingestion)

这是离线侧,把原始文件变成可检索内容

  1. 多源连接器

    • 文件:PDF、Word、Excel、PPT、Markdown、txt、epub、扫描件
    • 数据源:对象存储(MinIO/COS)、本地目录、网页爬虫、API同步、数据库、Git、OA/SharePoint/Jira等
    • 增量同步:定时轮询、Webhook触发变更、监听消息队列,只处理新增/修改文档,避免全量重刷
  2. 文档解析引擎

    • 普通解析:提取文字、保留标题层级、表格提取、目录、页码、章节位置元数据
    • OCR:扫描件、图片里文字识别;复杂场景版面解析(Layout解析,区分正文/表头/注释/页眉页脚)
    • 清洗:去水印、去重复页眉页脚、乱码修复、空白段落过滤、格式标准化
    • 多模态解析:图注提取、图表OCR、图片转描述(VL解析)
  3. 文档版本管理

    • 同一文档多版本存档,支持版本切换、旧版本索引冻结;文档删除/软删除、索引清理

二、分块、Embedding、索引管理(Index)

  1. 多种分块策略(可按知识库/文档类型配置)

    • 基础:固定长度分块、递归分块
    • 进阶:标题感知分块、语义分块、表格独立分块、按章节边界切分,带重叠窗口
    • 块级元数据绑定:文档ID、文件名、页码、章节、上传人、部门、时间、标签、权限标签
  2. Embedding管理

    • Embedding模型路由,支持多Embedding共存(不同库用不同模型)
    • 向量归一化、向量压缩(PQ)
    • 模型切换时批量重向量化流水线
  3. 索引与存储

    • 向量库(Milvus/Qdrant/pgvector)+ 全文库(ES/Elasticsearch)双索引
    • 多租户/Namespace隔离、知识库隔离、库级开关
    • 索引生命周期:热索引、冷归档、TTL、自动清理失效chunk

三、在线检索核心API能力(给主Agent调用的核心)

这就是你主Agent调用的工具接口,只返回chunk,不生成答案

  1. 混合检索 Hybrid Search

    • 稠密向量检索(语义)+ BM25稀疏关键词检索 + RRF融合打分(业界标配)
    • 纯向量、纯关键词、混合三种模式可切换
  2. 检索过滤

    • 元数据过滤:时间范围、文档类型、部门、设备编号、规程版本、标签
    • 文档级ACL权限过滤:接口传入用户身份,自动过滤该用户不可见的chunk(防越权)
  3. Rerank重排

    • 先粗召回topN(比如20~50)→ 重排模型打分 → 返回topK
    • 支持开关、自定义reranker、超时降级(重排挂了直接返回粗排结果)
  4. 结果后处理

    • 去重、near-duplicate合并、过滤低分碎片
    • 返回结构统一:chunk文本、来源文档ID、页码、章节、分数、原始文件链接、元数据
  5. 缓存、限流、熔断、降级

    • 查询缓存(Redis,相同query+相同过滤条件复用召回结果,设置过期)
    • 接口限流、并发控制、超时设置;向量库/ES异常时自动降级策略
  6. 多路知识库路由

    • 一个检索接口,根据路由参数,自动路由到不同知识库(规程库、缺陷库、历史方案库)

✅ 区分:Query Rewrite / Sub-question 放在主Agent,不在这个检索服务里

四、企业管控 & 安全能力(生产必加)

  1. 权限体系

    • 知识库级权限、文档级权限、用户/角色/部门ACL
    • 接口鉴权:API Key、JWT、和主业务SSO打通
  2. 内容安全

    • 入库内容审核、检索结果敏感词过滤、脱敏(手机号、身份证、涉密字段)
  3. 知识库管理后台(Web)

    • 上传文档、查看文档列表、预览、手动触发重新解析/重分块/重建索引
    • 标签管理、知识库创建、开关、统计(文档数量、chunk数量、存储占用)
    • 手动测试检索:输入query,看召回chunk、分数、重排效果(调试用)

五、可观测、评估、迭代能力

  1. 链路Tracing

    • 每次检索埋点:query、过滤条件、召回数量、重排前后分数、耗时、返回chunkID、用户ID、知识库ID
    • 对接LangFuse/LangSmith,和上层Agent的trace打通,一条链路看到:Agent调用retrieve → 检索内部全流程
  2. 指标监控(Prometheus+Grafana)

    • P95/P99延迟、QPS、错误率、缓存命中率、召回数量分布、重排耗时
    • 入库流水线指标:解析失败率、向量化失败、同步延迟
  3. RAG评估模块(离线评估)

    • 接入Ragas、DeepEval:Context Recall、Context Precision、Faithfulness
    • 测试集管理、批量评测、版本对比(改分块/Embedding/reranker前后效果对比)
    • 人工标注入口:标注召回是否相关,回流测试集
  4. 反馈闭环

    • 检索结果标记:“相关/不相关”,用于后续优化分块、过滤、rerank

六、进阶扩展能力(按需上,不是标配)

  1. 多模态检索:图文混合,图检索、表格检索、VL解析后的图文对齐检索
  2. GraphRAG知识图谱检索:实体、关系抽取,子图检索,和向量检索并行返回(适合设备、规程、缺陷关联查询)
  3. 摘要索引/小摘要辅助检索:chunk摘要单独建索引(注意:原始chunk依然保留返回给Agent,不能只用摘要)
  4. 引用定位:PDF原文精确定位(页码+坐标,前端可以高亮原文)

七、重点边界,避免耦合

✅ 在检索服务里:解析、分块、建索引、混合检索、过滤、重排、权限过滤、返回原始片段
❌ 不在检索服务里(放到主Agent) :query改写、子问题拆解、判断要不要检索、评估召回够不够、多轮循环检索、答案生成、幻觉校验