第 3 篇:RAG 主流搭建方案与技术选型——四大搭建模式对比与选型决策

本文为「从零到落地:RAG 检索增强生成实战系列」第 3 篇,完整系列持续更新中。


前言

本篇是选型决策篇,帮你解决一个关键问题:我该用什么方案来做 RAG? 深度对比四大搭建模式,给出按场景的明确推荐,帮你避免”选错方案浪费一周”。

上一篇讲清楚了 RAG 的完整流程:索引阶段把文档变成向量存起来,推理阶段检索相关内容让大模型基于事实回答。原理搞懂了,下一步就是动手实现——但你会发现,市面上的 RAG 方案太多了:Dify、LangChain、LangGraph、LlamaIndex、RAGFlow、Kimi 知识库、FastGPT……每个都在说自己好用,到底该选哪个?

选型选错了的后果很严重:花了两周用 LangChain 搭完,才发现业务团队根本不会维护代码;或者用低代码平台上线了,结果深度定制需求实现不了,只能推倒重来。

本篇学完你将掌握

  • RAG 四大搭建模式的定义、代表产品、优缺点和适用场景
  • 10 种 RAG 能力档位速览,知道”功能层面还有哪些选择”
  • 按使用场景的选型决策表,直接告诉你”这个场景该用什么”
  • Embedding 模型和 LLM 的选型原则

一、四大搭建模式总览

在深入每种模式之前,先看一张总览表快速建立全局认知:

搭建模式 核心特征 代表产品 技术门槛 上线速度
低代码可视化平台 零代码 / 少代码,拖拽搭建 DifyGitHub)、FastGPTGitHub)、Coze 极快(小时级)
开源框架代码自研 代码实现,定制无上限 LangChainLangGraphLlamaIndex 中高 中等(天~周级)
云端 SaaS 托管 零运维,即用即走 Kimi 知识库豆包阿里百炼 极低 极快(分钟级)
一体化私有化套件 Docker 一键部署,数据自持 RAGFlowGitHub)、Dify 社区版GitHub)、FastGPTGitHub)、Open-WebUI 快(半天~1天)

下面逐个拆解。


二、模式一:低代码可视化平台

2.1 是什么

低代码平台把 RAG 的全流程(文档上传、分块配置、模型接入、Prompt 编辑、对话测试)全部封装成可视化界面,点点鼠标就能搭出一个 RAG 应用。你不需要写代码,也不需要理解向量数据库、Embedding 这些底层概念。

2.2 代表产品对比

产品 开源 部署方式 核心优势 核心局限
DifyGitHub 开源 Docker 自部署 / 云端 生态最成熟,知识库 + Workflow + Agent 全能,社区活跃 深度定制受限,复杂逻辑需要 Workflow 编排
FastGPTGitHub 开源 Docker 自部署 / 云端 知识库能力强,工作流灵活,中文生态好 社区规模比 Dify 小,插件生态较新
Coze 闭源 云端(字节跳动) 上手极简,内置丰富插件和 Bot 模板 闭源不可私有化,深度定制受限

2.3 适用场景

  • 业务团队 / 非技术人员:产品经理、运营、客服团队,需要快速上线一个知识库问答
  • 原型验证:老板说”做个 demo 看看效果”,半天搭出来演示
  • 中小企业快速上线:没有专职 AI 开发团队,但有明确的知识库需求

2.4 不适用场景

  • 需要深度定制检索逻辑(自定义重排算法、多级检索策略)
  • 需要和其他系统做复杂集成(自定义 API 编排、异步任务链)
  • 对底层分块、检索过程需要完全控制的研究型项目

💡 建议:如果你的团队没有专职 AI 开发,且需求是”标准知识库问答”,低代码平台是最优选。本系列第 5 篇会用 Dify 完整实战演示。


三、模式二:开源框架代码自研

3.1 是什么

用开源的 RAG 框架写代码实现整个流程。你拥有全部控制权——从分块策略到检索逻辑、从 Prompt 设计到后处理,每一行代码都是你写的。

3.2 框架分类

这个模式内部还可以细分成三类:

基础线性框架

代表:LangChainLlamaIndex

把 RAG 的标准流程封装成一套 API,按顺序调用就行——加载文档、切分、向量化、检索、生成。适合标准 RAG 场景,上手快,生态丰富。

框架 核心定位 优势 局限
LangChain 通用 LLM 应用框架 生态最大,组件最多,社区活跃 抽象层太多,调试困难,简单场景过度封装
LlamaIndex RAG 专用框架 API 简洁,RAG 场景开箱即用,分块和检索策略丰富 非 RAG 场景支持有限,生态不如 LangChain 大

状态机编排框架

代表:LangGraph

把 RAG 流程拆成一个个节点(Node),用图(Graph)来编排节点之间的流转逻辑。支持条件分支、循环、状态管理,适合需要复杂决策逻辑的场景——比如”检索结果不够好就自动改写 Query 重新检索”。

框架 核心定位 优势 局限
LangGraph 状态机 + 图编排 流程可控,支持复杂分支和循环,和 Agent 天然融合 学习曲线陡峭,简单场景过度设计

轻量化原生自研

直接用向量数据库 SDK + LLM API,不依赖任何框架,全部自己写。代码量不大(几十行),但你对每一行都有完全的理解和控制。

方案 核心定位 优势 局限
向量库 SDK + LLM SDK 极简自研 零依赖,完全透明,学习价值极高 生产级功能(分块策略、重排、记忆)需要自己实现

3.3 适用场景

  • AI 开发工程师:需要深度定制检索逻辑、对接复杂业务系统
  • 复杂流程需求:多轮对话 + 条件分支 + Agent 融合
  • 学习和研究:想彻底理解 RAG 底层,不被框架黑盒化

3.4 不适用场景

  • 团队没有 Python 开发能力
  • 需要快速上线(1-2 天内)
  • 需求是标准的知识库问答,不需要定制

💡 建议:代码自研路线,本系列安排了 4 篇实战——第 4 篇原生 Python(入门)、第 6 篇 LangGraph(编排)、第 7 篇 LlamaIndex(RAG 专用),按需求挑读。


四、模式三:云端 SaaS 托管

4.1 是什么

直接用第三方平台提供的”知识库”功能,上传文档就能用,不需要部署任何服务、不需要写任何代码。平台帮你搞定一切:文档解析、向量化、检索、生成。

4.2 代表产品对比

产品 背后厂商 核心优势 核心局限 计费方式
Kimi 知识库 月之暗面 长上下文能力强,中文效果好 数据托管在平台,功能定制受限 按量付费
豆包 字节跳动 集成在飞书生态,上手极简 闭源,不可私有化 按量付费
阿里百炼 阿里云 云生态整合,支持多种模型 绑定阿里云生态 按量付费
百度千帆 百度 文心大模型生态,企业级支持 绑定百度生态 按量付费

4.3 适用场景

  • 个人用户 / 小团队:临时需要一个知识库问答,不想折腾部署
  • 非涉密数据:数据可以放在第三方平台
  • 短期使用 / 一次性任务:比如分析一批公开报告、做竞品调研

4.4 不适用场景

  • 涉密数据、企业内部文档(数据不能出网)
  • 需要深度定制(自定义分块策略、检索算法)
  • 长期高用量使用(按量计费的成本会超过自建方案)

⚠️ 注意:云端 SaaS 的核心风险是数据安全和长期成本。你的文档会上传到第三方服务器,如果涉及商业秘密或用户隐私,这个方案直接排除。长期大量使用时,API 调用费用会持续增长,不如自建方案经济。


五、模式四:一体化私有化部署套件

5.1 是什么

一套开源系统,通过 Docker 一键部署到你自己的服务器上。系统内置了文档解析、向量检索、大模型调用、可视化管理的全部能力,相当于一个”即插即用”的私有 RAG 平台

和模式一(低代码平台)的区别在于:低代码平台侧重“应用搭建”,私有化套件侧重“深度文档处理和检索精度”。和模式二(代码自研)的区别在于:私有化套件不需要写代码,但你有全部源码控制权。

💡 提示:Dify 同时出现在模式一和模式四——它的云端版 / SaaS 版属于低代码平台(模式一),而社区版(开源免费)可以通过 Docker Compose 部署到你自己的服务器上,数据完全自持,本质上就是一套私有化 RAG 平台。这也是 Dify 相比其他低代码平台的核心优势:既能用云端版快速上手,也能用社区版私有化部署,灵活度很高。

5.2 代表产品对比

产品 核心优势 核心局限
RAGFlowGitHub 深度文档解析(PDF 布局分析、表格 OCR),模板化分块,混合检索 + Rerank,支持 RAPTOR 层次化索引 服务器配置要求较高(建议 16GB+ 内存)
Dify 社区版GitHub 知识库 + Workflow + Agent 全能,生态最成熟,社区活跃,模型接入丰富 文档解析深度不如 RAGFlow,复杂知识库场景需要搭配外部工具
FastGPTGitHub 知识库 + 工作流双引擎,中文生态好,社区活跃 文档解析深度不如 RAGFlow
Open-WebUI 轻量级,Ollama 生态集成好,上手简单 RAG 能力相对基础,高级功能少

5.3 适用场景

  • 企业内网 / 涉密场景:数据不能出网,但又不想全量自研
  • 需要深度文档解析:大量 PDF、扫描件、表格类文档
  • 中等技术团队:有运维能力但没有专职 AI 开发

5.4 不适用场景

  • 没有服务器资源、不想运维
  • 只需要简单的知识库问答,低代码平台就够了
  • 需要高度定制的检索逻辑(虽然有源码,但改造成本不低)

💡 建议:私有化场景首选 RAGFlow(文档解析深度和检索精度最好,本系列第 8 篇有完整实战),如果你的团队更需要知识库 + Workflow + Agent 全能型平台,Dify 社区版也是优秀的私有化选择(本系列第 5 篇有完整实战)。


六、RAG 能力档位速览

搞清楚了搭建模式,再看一下 RAG 在功能层面有哪些”能力档位”。这张表帮你建立一个全局认知——知道 RAG 能做到什么程度,具体实现在后续实战篇和高阶篇中逐个展开。

6.1 基础能力(本系列实战篇覆盖)

能力档位 说明 典型场景 对应实战篇
基础单轮 RAG 最经典的文档问答:提问→检索→回答 简单知识库 第 4-8 篇
多轮对话 RAG 带历史记忆的连续问答,支持追问和上下文衔接 客服、对话助手 第 6-7 篇
混合检索 RAG 向量检索 + 关键词检索融合,提升召回率 生产环境标配 第 7-8 篇
上下文压缩 RAG 精简检索内容,剔除冗余,节省 Token 长文档、大知识库 第 9 篇

6.2 高阶变种(本系列拓展篇覆盖)

能力档位 说明 典型场景 对应拓展篇
GraphRAG 知识图谱 + 向量检索融合 实体关系强的专业库(法律、医学) 拓展篇
多模态 RAG 图文、表格、PDF 混合检索 图纸、报表、扫描件 拓展篇
Agentic RAG Agent 自主决定检索策略 复杂任务、工具联动 拓展篇
AutoRAG 全链路自动化调优 持续迭代的大型知识库 拓展篇
实时 RAG 数据增量更新 + 流式问答 动态业务数据 拓展篇
Code RAG 代码分词、语法感知检索 代码仓库、技术文档 拓展篇

💡 提示:基础能力(前四行)覆盖了 80% 的实际场景。高阶变种在特定领域有显著提升,但复杂度也更高,建议先跑通基础 RAG 再按需学习。


七、选型决策表

这是本篇最核心的部分。按你的实际场景,直接查表找答案。

7.1 按场景推荐方案

使用场景 推荐搭建模式 推荐工具 配套向量库 Embedding 建议 LLM 建议
个人学习、原型验证 原生 Python 自研 手写代码(第 4 篇) Chroma / FAISS bge-large-zh-v1.5(本地) DeepSeek API
中小企业快速上线 低代码平台 Dify(第 5 篇) 平台内置 / Milvus 轻量部署 平台内置或自配 DeepSeek / Qwen API
定制化开发、Agent 联动 代码编排框架 LangGraph(第 6 篇) Milvus / Weaviate bge-large-zh-v1.5 GPT-4o / Qwen-Max
RAG 专用、开箱即用 RAG 专用框架 LlamaIndex(第 7 篇) Chroma / Qdrant bge-large-zh-v1.5 DeepSeek / GPT-4o
企业内网私有化 私有化套件 RAGFlow(第 8 篇)/ Dify 社区版(第 5 篇) 系统内置(Elasticsearch) 系统内置或自配 本地 Ollama + Qwen2.5
个人临时使用、非涉密 云端 SaaS Kimi 知识库 平台内置 平台内置 平台内置

7.2 按团队能力推荐

团队情况 推荐方案 理由
无开发人员 低代码平台 / 云端 SaaS 零代码上手,快速上线
1-2 个 Python 开发 LangGraph / LlamaIndex 自研 有代码能力,可以做定制化
有运维无 AI 开发 RAGFlow / Dify 社区版私有化部署 Docker 部署即可,不需要写 AI 代码
AI 专业团队 原生自研 + LangGraph 完全控制,性能优化空间最大

7.3 决策流程图

如果你还是不确定,按这个流程走一遍:

1
2
3
4
5
6
7
8
9
10
11
你的数据涉密吗?
├── 是 → 需要写代码定制吗?
│ ├── 是 → LangGraph / LlamaIndex 自研(模式二)
│ └── 否 → RAGFlow / Dify 社区版私有化部署(模式四)
└── 否 → 团队有 Python 开发能力吗?
├── 是 → 需要深度定制吗?
│ ├── 是 → LangGraph / LlamaIndex 自研(模式二)
│ └── 否 → Dify 低代码平台(模式一)
└── 否 → 愿意运维服务器吗?
├── 是 → Dify Docker 自部署(模式一)
└── 否 → Kimi / 豆包云端 SaaS(模式三)

八、Embedding 模型选型

搭建模式选好了,还需要确定两个核心组件:Embedding 模型和 LLM。先说 Embedding。

8.1 选型要点

考量维度 说明
开源 vs 商用 开源模型可本地部署、免费、数据不出网;商用 API 开箱即用但有持续费用
中文适配度 中文场景必须选中文优化的模型,通用多语言模型在中文上效果会打折扣
向量维度 维度越高表示能力越强,但存储和检索成本也越高。768~1024 是性价比区间
最大 Token 数 决定了单个文本块的最大长度,512 Token 是常见限制

8.2 推荐方案

场景 推荐模型 维度 类型 理由
中文场景首选 bge-large-zh-v1.5 1024 开源本地 智源出品,中文效果最好,社区广泛使用
多语言场景 bge-m3 1024 开源本地 支持 100+ 语言,一个模型覆盖多语种
省事用 API text-embedding-3-small 1536 商用 API OpenAI 出品,稳定可靠,按量计费
轻量级 m3e-base 768 开源本地 模型小、速度快,适合资源有限场景
Jina 生态 jina-embeddings-v3 1024 开源本地 支持多语言,可本地部署,Late Interaction 模式

💡 建议:中文 RAG 项目无脑选 bge-large-zh-v1.5,效果、社区、文档都是最优解。如果项目涉及多语言(比如英文+中文混合文档),用 bge-m3


九、LLM 选型

9.1 核心决策:API 调用 vs 本地部署

维度 API 调用 本地部署
代表方案 DeepSeek API、GPT-4oQwen-Max Ollama + Qwen2.5vLLM + Llama
上手难度 极低,注册拿 Key 就能用 需要 GPU 服务器 + 运维
数据安全 数据经过第三方 数据不出网
成本结构 按量计费(Token 数) 一次性硬件投入 + 电费
回答质量 顶级(大参数量模型) 取决于硬件(小模型效果有差距)
适用场景 非涉密、快速验证、中小企业 涉密、长期运行、高频调用

9.2 按场景推荐

场景 推荐 LLM 理由
性价比优先 DeepSeek-V3 API 效果接近 GPT-4o,价格只有 1/10
效果优先 GPT-4o / Claude 3.5 Sonnet 综合能力最强
涉密 + 本地部署 Ollama + Qwen2.5-7B 开源中文模型首选,7B 参数单卡可跑
涉密 + 高质量 vLLM + Qwen2.5-72B 大参数量本地模型,需要多卡 GPU
轻量快速 Ollama + Qwen2.5-1.5B 极轻量,CPU 也能跑,适合原型验证

💡 建议:RAG 场景对 LLM 的核心要求是”基于给定上下文准确回答”,这是一个相对简单的任务(比开放域对话简单),所以不需要最贵的模型。DeepSeek API 或本地 Qwen2.5-7B 在大多数 RAG 场景下效果就够用了。


踩坑记录:选了 LangChain 但团队不会维护

现象

一个 3 人的产品团队用 LangChain 搭了一个 RAG 知识库,上线后运行正常。两个月后需要调整分块策略和检索参数,但当初写代码的同事已经离职,剩下的人看不懂 LangChain 的链式调用和回调机制,改了两天改出了更多 bug。

原因

LangChain 的抽象层较多(Chain、Agent、Tool、Callback),代码可读性对非 AI 开发者不友好。团队没有 Python 开发储备的情况下,选代码框架路线本身就是错误决策。

解决方案

最终用 Dify 重新搭建,知识库配置、Prompt 编辑、检索参数调整全部在可视化界面完成,产品团队自己就能维护。

避坑建议

选型时不要只看”技术上能做什么”,还要看”团队能维护什么”。如果团队没有专职 Python 开发,优先选低代码平台或私有化套件,不要为了”灵活性”选代码框架。


总结与回顾

知识点 关键要点
四大搭建模式 低代码平台(快速上线)、代码自研(深度定制)、云端 SaaS(零运维)、私有化套件(数据自持)
选型核心原则 按团队能力和数据安全需求选模式,按场景选工具
能力档位 基础四档(单轮/多轮/混合/压缩)覆盖 80% 场景,高阶六档按需学习
Embedding 选型 中文首选 bge-large-zh-v1.5,多语言用 bge-m3,省事用 OpenAI API
LLM 选型 性价比选 DeepSeek API,涉密选 Ollama + Qwen2.5,不需要最贵的模型
选型避坑 不只看技术能力,还要看团队维护能力和长期成本

下篇预告

第 4 篇:原生 Python 手写最简 RAG —— 不用任何框架,5 步手写一个完整 RAG,代码逐行注释讲解。先理解底层,再用框架事半功倍。


参考资料

产品 / 工具 官网 代码仓库
Dify dify.ai langgenius/dify
FastGPT fastgpt.in labring/FastGPT
Coze coze.com
LangChain langchain.com langchain-ai/langchain
LangGraph langchain.com/langgraph langchain-ai/langgraph
LlamaIndex llamaindex.ai run-llama/llama_index
RAGFlow ragflow.io infiniflow/ragflow
Open-WebUI openwebui.com open-webui/open-webui
Kimi kimi.moonshot.cn
豆包 doubao.com
阿里百炼 bailian.console.aliyun.com
百度千帆 qianfan.cloud.baidu.com
DeepSeek deepseek.com deepseek-ai
OpenAI openai.com
Ollama ollama.com ollama/ollama
Qwen qwenlm.github.io QwenLM
vLLM vllm.ai vllm-project/vllm
Chroma trychroma.com chroma-core/chroma
FAISS facebookresearch/faiss
Milvus milvus.io milvus-io/milvus
Qdrant qdrant.tech qdrant/qdrant
Weaviate weaviate.io weaviate/weaviate
Elasticsearch elastic.co elastic/elasticsearch

本文为「从零到落地:RAG 检索增强生成实战系列」第 3 篇,完整系列持续更新中。