【知识库自托管 01】2026 企业/个人私有文档 RAG 问答选型:Dify vs AnythingLLM vs RAGFlow 在 VPS 上怎么选
2026-08-16 · DevCraft Studio
从资源占用、隐私等级、上手难度横向对比 Dify、AnythingLLM、RAGFlow 三款主流 RAG 工具在便宜 VPS 上的落地路径,并给出分块与嵌入模型调优建议。
自托管知识库 · 共 3 篇
延伸阅读
更多相关攻略推荐:【知识库自托管 02】2026 实测:VPS 自托管 Anythin、如何给 VPS 厂商做"信用评估":跑路、超售与售后风险排查手册、【AI自托管 01】2026 隐私优先 AI 栈:数据不出 VPS 、【知识库自托管 03】2026 实测:搬瓦工/RackNerd 上自、2026 VPS 选购决策树与白皮书:一张图看懂怎么买。
为什么 2026 年还要自己搭私有 RAG 知识库
到了 2026 年,RAG(检索增强生成)已经从“尝鲜玩具”变成了“生产基础设施”。企业知识库、合规问答、个人第二大脑这类需求集中爆发,但一个绕不开的现实是:把合同、病历、源码、内部手册扔进公有云大模型,隐私和合规风险谁都扛不住。于是自托管、跑到自己租的 VPS 上,成了最稳的选择。
真正让站长和技术同学纠结的,不是“要不要做”,而是“用哪个工具做”。市面上能私有化部署的 RAG 平台一大把,但最常被拿来对比的其实就是三款:Dify、AnythingLLM、RAGFlow。它们都能在便宜 VPS 上跑起来,但定位、吃资源的方式、上手门槛完全不一样。这篇文章用实测视角帮你把它们掰开揉碎,直接对号入座。
三款工具到底在解决什么问题
先说结论:它们不是同一个物种,别只看 Star 数选。
- AnythingLLM:定位是“单机生产力工具”,目标是让一个人、一个部门在本地把文档问答跑起来。界面开箱即用,强调本地优先(local-first)。
- Dify:定位是“AI 应用开发平台”,知识库只是它能力矩阵里的一块,真正强项是可视化工作流、Agent 编排、API 化。目标是做企业级多租户 SaaS 底座。
- RAGFlow:定位是“RAG 引擎”,把全部火力砸在“文档理解”上。深度解析(DeepDoc)、复杂表格识别、OCR、答案溯源是它和其他两款拉开差距的地方。
一句话区分:要“个人/小团队文档问答”选 AnythingLLM;要“带工作流的业务系统”选 Dify;要“PDF 里全是表格和扫描件”选 RAGFlow。
资源占用实测:便宜 VPS 能不能扛住
这是站长最关心的。下面给的是社区实测和官方建议量的融合口径(不同文档略有出入,取保守值)。
- AnythingLLM:最低约 4 核 8G 内存即可跑,桌面版甚至能零配置。实测在本地机 Docker 启动后只占约 1.1G 内存,嵌入用 nomic-embed-text 时非常省。它是三者里对内存最友好的。
- Dify:开发版最低 2 核 8G,但生产建议 4 核 16G 起步,完整私有化部署要拉 6 个镜像,组件多,空闲内存常驻 9G 以上。架构目标是多租户,所以“重”是设计使然。
- RAGFlow:最低 4 核 16G,推荐 32G;它依赖 Elasticsearch 做向量缓存,磁盘建议 100G 起,且要提前调
vm.max_map_count系统参数,否则 ES 起不来。
所以从“便宜 VPS 友好度”排:AnythingLLM 最友好,RAGFlow 最吃资源。2G/4G 内存的小鸡基本只能跑 AnythingLLM 的轻量模式,Dify 和 RAGFlow 建议至少上 8G,理想是 16G 以上。
隐私等级:数据到底有没有出机器
自建 RAG 的核心诉求就是“数据不出域”。三者都支持纯本地部署,但细节差异明显:
- AnythingLLM:主打全链路本地化,向量库(LanceDB)默认就在本地磁盘,工作区隔离和权限体系做得细,适合金融、法律这类强隐私场景。它也能混合模式调用云端模型,但你可以选择完全不联网。
- RAGFlow:自托管版本数据全在本地,解析引擎、向量库都在你机器上,零外联。但它的自托管版没有内建分析看板,需要自己接日志。
- Dify:它自己只是编排层,真正吃算力的是底层的 LLM 和 Embedding。如果你接的是云端推理(OpenAI、通义等),那你的文档片段会外发。要做纯隐私,必须把模型也接到本地 Ollama,并在部署时避开 Hugging Face API 限流问题。
避坑提醒:隐私等级不是“工具名”决定的,而是“你接的模型在哪”决定的。哪怕用 AnythingLLM,一旦选了云端 Embedding,文档照样出域。要真私有,Embedding 也必须在本地跑。
上手难度:部署与避坑
部署复杂度排序(从易到难):AnythingLLM 小于 Dify 小于 RAGFlow。
AnythingLLM:一条命令起步
最简单的 Docker 启动方式:
docker pull mintplexlabs/anythingllm
docker run -d -p 3001:3001 \
-v $(pwd)/storage:/app/server/storage \
--name anythingllm mintplexlabs/anythingllm启动后浏览器开 3001 端口,向导式配置,选 Ollama 做本地模型,拖文件进工作区就能问答。新人最友好。
Dify:docker-compose 一把梭,但镜像多
git clone https://github.com/langgenius/dify.git
cd dify/docker
cp .env.example .env
docker compose up -d它一次会拉起 api、worker、web、db、redis、weaviate/elasticsearch 等 6 个左右容器。首次部署要规划好内存,否则容易 OOM。用 Racknerd、Cloudcone 这类年付小机时,建议先只用基础版、关闭非必要插件。
RAGFlow:记得先调内核参数
sudo sysctl -w vm.max_map_count=262144
git clone https://github.com/infiniflow/ragflow.git
cd ragflow/docker
docker compose up -d漏掉 vm.max_map_count 是新手最高频的坑,ES 会直接起不来。另外首次拉镜像较大,国内机器建议提前导出 tar 离线包,别卡在拉镜像这一步。
分块策略与嵌入模型怎么选
RAG 效果的上限由“检索质量”决定,而检索质量 = 分块策略 + 嵌入模型。这是最值得花时间调的地方。
嵌入模型:nomic-embed-text 与 bge-m3
本地 Ollama 生态里,两个最常用:
- nomic-embed-text:137M 参数,768 维,上下文 8192 token,磁盘约 274MB。CPU 友好、速度快,是大多数工具的默认项。英文和通用文档表现优秀,适合“先跑起来再说”。
- bge-m3:568M 参数,1024 维,支持 100+ 语言、8192 token 窗口,单模型同时提供稠密+稀疏+多向量三种检索(M3)。中文、多语言、技术文档检索精度明显强于 nomic,代价是更慢、更占内存(约 1.5G)。
拉取命令:
ollama pull nomic-embed-text
ollama pull bge-m3经验法则:英文或个人笔记用 nomic-embed-text;中文为主、或文档里混了代码/法律/医学术语,直接上 bge-m3。注意:换嵌入模型后必须重新嵌入全部文档,AnythingLLM 会提示你,但 Dify/RAGFlow 要手动触发重建索引,几千篇文档重嵌很耗时,所以一开始就要定好。
分块大小
- 通用 prose:500-1000 token,重叠 10-20%。
- 技术手册/合同/财报:1500-2000 token,保留更多上下文,避免答案跨块被截断。
- 邮件/工单等短内容:300-500 token,提高精度。
RAGFlow 赢在分块模板:它内置 10+ 种模板(法律、论文、手册等),还能可视化编辑切片,这是它“文档理解强”的根。Dify 和 AnythingLLM 是通用分块,需要你手动调参数。
查询模式调优:让答案更准
检索阶段比生成阶段更关键,调优主要看三个旋钮:
- top-k(召回数量):AnythingLLM 默认 4,调到 6-8 能给模型更多素材,适合需要综合多段信息的复杂问题;但 top-k 太大反而引入噪声,且吃掉上下文窗口。
- 重排序 Rerank:AnythingLLM 默认关闭重排(因为本地 CPU 跑不动 bge-reranker 这类模型),换来速度;想要更准可在有 GPU 的机器上开启 bge-reranker-v2-m3。RAGFlow 和 Dify 都支持接 rerank 模型,生产环境强烈建议加一层。
- 混合检索(Hybrid):bge-m3 单模型就能提供稠密+稀疏向量,RAGFlow 原生支持混合检索,对“专有名词、编号、代码”这类关键词检索效果远好于纯向量。关键词多、术语杂的语料,务必开混合检索。
按场景对号入座
- 个人笔记/小团队文档问答:AnythingLLM。资源省、上手快、工作区隔离清晰。
- 需要工作流、Agent、对外 API、多数据源接入:Dify。它能把文档审核、报告生成串成标准化流程。
- 文档是扫描件/复杂表格/多栏排版:RAGFlow。深度解析 + OCR + 答案溯源,溯源快照能告诉你答案来自哪一页哪一段,合规友好。
- 中文为主、术语密集:嵌入模型无脑 bge-m3,前端可 AnythingLLM 或 RAGFlow。
VPS 怎么选才不花冤枉钱
结合预算给建议:
- 只想跑 AnythingLLM 轻量模式:2-4G 内存的年付小鸡就够了,Bandwagon(搬瓦工)、Cloudcone 的入门款性价比高,Lisahost 的香港轻量机延迟低适合国内访问。
- 跑 Dify 或 RAGFlow 生产:至少 8G,理想 16G。美国机房看 Racknerd、Colocrossing 的大内存年付;欧洲看 Contabo 的 16G/32G 套餐,单位内存价格最低;亚太合规或低延迟看 HostDare、Gigsgigscloud、Vultr(按时计费,适合先测后买)。
- 需要 GPU 做本地大模型推理或 rerank:Vultr、HostDare 有按需 GPU;但 GPU VPS 贵,预算紧就走“本地 Embedding(nomic/bge-m3)+ 云端或本机小模型”的混合路线。
实测提醒:RAGFlow 的 ES 缓存很吃磁盘 IO,选 VPS 时别只看内存,磁盘建议 SSD 且留 100G 以上。磁盘小的机器跑 RAGFlow 会频繁 GC、检索变慢。
常见误区与避坑清单
- 误区一:以为“自建”就自动私有,结果 Embedding 用了云端 API,文档照样出域。
- 误区二:盲目追 MTEB 榜首,其实过了合格线后,分块策略比换模型更影响效果。
- 误区三:所有文档丢一个库。检索精度会随文档多样性上升而下降,按主题拆工作区/知识库才是正解。
- 误区四:忽略
vm.max_map_count和内存规划,RAGFlow/Dify 一启动就 OOM 或 ES 异常。