RAG 检索增强
RAG(Retrieval-Augmented Generation) 在生成前从外部知识库检索相关片段,降低幻觉、支持私有数据。LangChain 提供 Loader、Splitter、Embedding、VectorStore、Retriever 全链路组件。
RAG 流水线
索引阶段(离线)
要点:
- chunk_size / overlap 影响召回粒度
- 生产常用 Chroma / Pinecone / pgvector / Qdrant 等
- 索引与查询可使用不同 Embedding 模型(需一致)
检索阶段(在线)
简单 LCEL / Runnable 链
RAG Agent(推荐)
让 Agent 自己决定何时检索:
Agentic RAG 适合多步检索、比较、过滤;纯链式 RAG 适合固定问答。
提升 RAG 质量
与 Middleware 结合
- 在
before_model自动检索并注入 context(隐式 RAG) - 或通过工具显式检索(可解释、可审计)
企业场景常偏好 显式工具 + 日志,便于合规。
常见问题
检索为空? 检查 embedding 模型、语言、chunk 是否过碎。
答非所问? 提高 k、加 rerank、优化 prompt 要求「仅依据 context」。
延迟高? 缓存 embedding、异步索引、缩小 k。