🎯 RAG核心原理
RAG = Retrieval-Augmented Generation(检索增强生成)。简单说就是"先从你的私有数据里找答案,再让大模型基于找到的内容生成回答"。
完整流程:
用户提问 → ① 问题向量化(转成数学向量)→ ② 从向量数据库检索最相似的3-5段文档 → ③ 将文档+问题拼成提示词 → ④ 大模型基于检索内容生成答案
✅ 好处:无需训练模型、资料可随时更新、答案有据可查、成本极低、大客户愿意付费(数据不出网)。
🔧 RAG技术架构
文档解析层
PDF/Word/Excel/PPT/TXT/HTML/Markdown → 文本提取
- 📄 PDF:PyMuPDF/PdfPlumber提取文本+表格
- 📝 Word:python-docx解析正文
- 📊 Excel:openpyxl提取单元格
- 🔗 网页:Trafilatura/BeautifulSoup抓取
LangChain/LlamaIndex内置了所有解析器!
文本分割(Chunking)
将长文档切成语义完整的块,核心参数:
- 大小:256-1024 tokens/块(按场景调整)
- 重叠:15-20% token重叠,避免断句丢信息
- 策略:语义分割 > 固定长度分割
好的Chunk策略能提升检索准确率30%以上。
向量化(Embedding)
将文本转为数学向量(浮点数数组)
- 🌐 海外:OpenAI text-embedding-3-small/large
- 🇨🇳 中文最佳:BGE-M3 (BAAI) / m3e
- 💰 免费:Qwen-Embedding-0.6B / text2vec-large-chinese
中文场景推荐BGE-M3,免费开源,效果接近OpenAI。
向量数据库
- 🚀 Chroma:轻量嵌入式,0配置,适合验证/个人
- 🏭 Milvus:生产级,十亿级向量,适合企业
- ☁️ Pinecone:托管SaaS,免运维,按量付费
- 📦 FAISS:Meta开源,内存索引,最快检索
- 🔨 Qdrant:Rust实现,性能强劲
🛠️ 主流RAG工具选型
| 工具 | 特点 | 适合人群 | 部署方式 | 费用 |
| Dify | 可视化RAG搭建,拖拽式工作流 | 非技术人员/技术团队 | Docker自部署 | 免费 |
| LangChain | 模块化框架,Python生态最全 | 开发者 | 代码集成 | 免费 |
| LlamaIndex | 专注RAG,数据连接器最丰富 | 开发者 | 代码集成 | 免费 |
| AnythingLLM | 本地TUI,数据不出机 | 个人/企业内网 | Docker/桌面端 | 免费 |
| Coze | 字节出品,零代码Bot搭建 | 非技术人员 | SaaS | 免费/付费 |
| FastGPT | 国产开源,知识库管理完善 | 技术团队 | Docker自部署 | 免费 |
| RAGFlow | 文档解析质量极高,PDF支持好 | 文档密集型 | Docker自部署 | 免费 |
| Haystack | 生产级RAG,NLP全栈 | 企业团队 | Docker/Python | 免费 |
⚡ Dify+DeepSeek 快速搭建
适合场景:企业内部知识库、客服Bot、培训资料问答、行业Chat网站
Docker部署Difygit clone https://github.com/langgenius/dify.git
cd dify/docker && docker-compose up -d访问 http://localhost:3001,注册管理员账号
添加DeepSeek API Key在Dify后台「系统设置-模型供应商」添加DeepSeek的API Key及Embedding模型(推荐 BGE-M3 或 text-embedding-3-small)
创建知识库「知识库-新建」→ 上传PDF/Word/Markdown等文件 → Dify自动解析+分块+向量化。支持批量上传,单库可达百万级文档。
创建AI应用「工作室-新建」→ 选择"聊天助手" → 关联知识库 → 调整系统提示词 → 发布。支持对话/分类/流式输出多种模式。
嵌入到网站/企微/钉钉Dify提供:内嵌iframe代码、公开API接口、Webhook集成。5分钟接入企业微信/钉钉/飞书/网站。
💰 成本估算:Dify免费自部署(¥30/月服务器) + DeepSeek API(¥1-5/天中小用量) + 域名(¥50/年) = 每天约¥1-5。企业级方案(Milvus+多节点)约¥500-2000/月。
🎯 行业Chat应用方案:前端React/Vue → API网关(jsdelivr) → 后端FastAPI → Dify API → 向量库Milvus + DeepSeek/GPT。下次上传新文档即时生效,无需重新训练。权限控制实现多租户(不同客户不同知识库)。
📋 RAG高级优化技巧
🔍 混合检索(提升召回率30%+)
向量搜索 + 关键词搜索(BM25)双路并行,结果重排序。单独向量搜索可能丢失精确匹配的结果,混合模式可以互补。推荐使用Qdrant/Elasticsearch做混合检索。
🔄 重排序(Rerank)
初检索Top-50→高级语义Rerank→取Top-5。Cross-encoder Rerank比向量搜索准确率高10-15%,只对少量候选重排,速度可接受。推荐BGE-Reranker-v2或Cohere Rerank。
📌 引用溯源
在答案中标注知识来源。用户点击标注直接跳转原文。大幅提升可信度,企业客户特别看重这一点。Dify/RAGFlow内置此功能。
🔄 增量更新
上传新文档 → 自动解析/分块/向量化 → 5秒内生效,无需重建索引。支持定时同步数据源(如数据库/网盘)。Dify的"定时同步"功能可以自动检查数据源更新。
📌 不训练大模型 vs 训练大模型
💡 什么时候需要微调?① 你的输出格式要求极其固定(比如一直输出JSON);② 需要大量领域术语的表述风格迁移;③ 模型的输出质量需要从70分提升到85分以上。除此之外,RAG都是更好的选择。