什么是 RAG?

RAG(Retrieval-Augmented Generation)通过将外部知识检索与大语言模型生成相结合,解决 LLM 的知识时效性和幻觉问题。

系统架构

1
用户提问 → Query Embedding → 向量检索 → 上下文组装 → LLM 生成 → 回答

关键组件选型

向量数据库

数据库特点适用场景
Milvus高性能、分布式大规模生产环境
Chroma轻量、易上手原型开发
Pinecone全托管不想运维

文档切分策略

1
2
3
4
5
6
7
8
from langchain.text_splitter import RecursiveCharacterTextSplitter

splitter = RecursiveCharacterTextSplitter(
    chunk_size=500,
    chunk_overlap=50,
    separators=["\n\n", "\n", "。", ",", " "]
)
chunks = splitter.split_documents(documents)

检索优化技巧

  1. 混合检索:向量检索 + BM25 关键词检索
  2. Query 改写:用 LLM 扩展用户原始问题
  3. Re-ranking:用 Cross-Encoder 对召回结果重排序

总结

RAG 是当前企业落地 LLM 最实用的模式,关键在于检索质量的优化。