Skip to content

RAG应用落地

RAG应用落地

介绍

RAG(检索增强生成)的落地,不是简单调用一个 API 就能完成的,而是一个端到端的系统工程。要真正实现“可用、好用、可控、可维护”的企业级 RAG 系统,需从 数据、架构、检索、生成、评估、安全 六大维度进行系统化设计。

以下是 RAG 落地的完整路径与关键实践:

明确业务场景

不要为了用 RAG 而用 RAG,先回答:

  • 用户的核心问题是什么?(如:查政策、问产品、解代码)
  • 是否存在私有/动态/专业性强的知识源?
  • 模型“幻觉”是否不可接受?

适合 RAG 的场景特征:

  • 知识更新频繁(如促销规则)
  • 内容敏感/私有(如公司制度)
  • 需要引用来源(如法律、医疗)
  • 回答必须准确(如客服、运维)

构建高质量知识库

数据源接入——数据是根基

  • 支持格式:PDF、Word、Markdown、HTML、数据库、API、Confluence 等
  • 工具建议:Unstructured、LlamaParse、Apache Tika

文档预处理

  • 去噪:删除页眉页脚、水印、无关广告
  • 结构保留:提取标题、章节、表格、代码块
  • 多模态处理(如含图文档):OCR + 图生文(可选)

智能分块(Chunking)——关键!

  • 块太小 → 语义断裂;块太大 → 噪声干扰。建议 300–800 字为宜。
分块策略适用场景工具
固定长度(如512字符)快速原型LangChain TextSplitter
语义分块技术文档、论文Semantic Chunking(基于Sentence-BERT)
上下文增强分块法律条文、合同当前块+前后段
带标题/元数据分块企业手册、年报提取章节名作为前缀

向量化与存储

选择嵌入模型(Embedding Model)——检索基础

  • 中文推荐:bge-large-zh-v1.5text-embedding-3-large(OpenAI)
  • 多语言:multilingual-e5-large
  • 注意:嵌入模型需与检索任务对齐(如问答 vs 摘要)

向量数据库选型

  • 建议:生产环境优先选支持 混合检索(向量+关键词) 和 元数据过滤 的数据库。
数据库优势适用规模
Milvus / Zilliz高性能、支持标量过滤中大型企业
Pinecone全托管、易用中小团队
Qdrant开源、支持 payload 过滤自研部署

优化检索流程

查询理解与改写——提升召回 & 精准度

  • 使用 LLM 对用户问题做 查询扩展(Query Expansion) 例:用户问“怎么退货?” → 扩展为:“退货流程”、“7天无理由退货条件”、“退款到账时间”
  • 工具:LangChain 的 MultiQueryRetriever

多路召回(Hybrid Retrieval)

  • 向量检索(语义相似)
  • 关键词检索(BM25,保底召回)
  • 规则召回(如按文档类型、发布时间过滤)
  • 融合策略:加权打分、RRF(Reciprocal Rank Fusion)

重排序(Reranking)——大幅提升精度

  • 第一阶段:向量库召回 Top 20
  • 第二阶段:用 Cross-Encoder(如 bge-reranker-large)精细打分,取 Top 3–5
  • 效果:解决“表面相似但语义无关”问题

Prompt 工程与生成控制

构造高质量 Prompt

shell
你是一个专业客服,请根据以下参考资料回答问题。
仅使用参考资料中的信息,不要编造。
如果参考资料无法回答,请说“我无法回答该问题”。

参考资料:
{retrieved_contexts}

问题:{user_query}

控制生成行为

  • 设置 temperature=0 减少随机性
  • 限制输出长度
  • 添加 JSON Schema 强制结构化输出(如返回“答案+引用ID”)

评估与迭代

关键指标——闭环优化

维度指标工具
检索质量Recall@K, MRRBEIR benchmark
生成质量Faithfulness(忠实度)、Answer RelevanceTruLens、Ragas
系统性能延迟(P95 < 2s)、吞吐量Prometheus + Grafana
业务效果用户满意度、转人工率A/B 测试

Ragas 评估示例

python
from ragas import evaluate
from ragas.metrics import faithfulness, answer_relevancy

result = evaluate(
    dataset=your_dataset,
    metrics=[faithfulness, answer_relevancy]
)

安全与合规

企业刚需

  • 权限控制:基于角色过滤可检索文档(如 HR 只能看人事制度)
  • 数据脱敏:在向量化前清洗敏感信息(身份证、手机号)
  • 审计日志:记录“谁问了什么,引用了哪些文档”
  • 本地化部署:敏感行业(金融、政务)建议私有化嵌入模型 + 向量库

典型落地架构图

shell
用户提问

[查询预处理] → 查询改写 / 意图识别

[多路检索] → 向量库 + 关键词引擎 + 规则过滤

[重排序] → Cross-Encoder 精排

[Prompt 构造] → 拼接上下文 + 指令

[LLM 生成] → 私有模型 / API(如 Qwen-Max)

[后处理] → 敏感词过滤、引用标注

返回答案 + 来源链接

推荐工具链

2025年主流

功能推荐工具
框架LangChain、LlamaIndex、Haystack
向量库Milvus、Qdrant、Pinecone
嵌入模型BGE 系列、OpenAI Embeddings
重排序BGE-Reranker、Cohere Rerank
评估Ragas、TruLens、DeepEval
部署Docker + FastAPI + Kubernetes

RAG 落地的关键

不是模型越强越好,而是“检索准 + 知识新 + 流程稳

  • 数据 > 模型:80% 的效果来自知识库质量与分块策略;
  • 评估驱动迭代:没有评估,优化就是盲人摸象;
  • 场景闭环:从“能回答”到“被信任”,需要可解释、可追溯、可纠错。