开源 RAG 知识库本地部署保姆级教程:Ollama + AnythingLLM 私有化问答
🛒 面向没有深度开发背景的运维与业务人员,零代码搭建私有知识库的完整教程。
教程目标
本教程用两个开源组件,在本地搭建一套“文档上传即可问答、答案带来源、可离线运行”的 RAG 知识库:
Ollama:本地跑大模型的推理服务。
AnythingLLM:带界面的一站式知识库应用(含向量库与问答)。
全程不需要写代码,适合运维、运营与业务人员。
前置准备 Checklist
- [ ] 一台电脑或服务器:建议 16G 内存以上;macOS / Linux / Windows 均可。
- [ ] 准备几份测试文档(PDF / Word / TXT / Markdown 均可)。
- [ ] 网络可用(首次需下载模型与软件,之后可离线使用)。
- [ ] 预留 8-20G 磁盘空间(取决于模型大小)。
- [ ] (可选)NVIDIA 显卡可显著提升回答速度。
版本提示:以下版本号、模型大小与下载地址以官方实时页面为准;模型拉取命令以 Ollama 官方模型库为准。
第一步:安装并配置 Ollama
访问 Ollama 官网下载对应系统安装包(macOS 直接拖入 Applications;Linux 用安装脚本;Windows 用安装包)。装好后打开终端验证:
ollama --version
正常会输出版本号,如 ollama version 0.x.x。
第二步:拉取本地模型
知识库需要两个模型:一个用于生成回答,一个用于把文档向量化(embedding)。先拉取对话模型:
ollama pull qwen2.5:7b
再拉取向量化模型:
ollama pull nomic-embed-text
验证模型就绪:
ollama list
模型体积较大,首次拉取视网速可能需要一段时间;模型命名与可用列表以 Ollama 官方实时页面为准。
第三步:安装 AnythingLLM
从 AnythingLLM 官网下载桌面版安装包并安装(支持 macOS / Windows / Linux)。首次启动会进入初始化向导:
- 选择“本地向量库”类型(默认使用内置的 LanceDB,无需额外安装)。
- 选择 LLM 提供方为 Ollama。
- 填入 Ollama 地址
http://localhost:11434,并选择上一步拉取的qwen2.5:7b。 - 选择 Embedding 提供方为 Ollama,模型选
nomic-embed-text。
保存配置后即完成连接。
第四步:创建知识库并上传文档
- 在 AnythingLLM 左侧点击“工作区”(Workspace),新建一个工作区,如
公司制度。 - 进入工作区 → “上传文档”,把准备的分块文档拖入。
- 点击“处理文档”(Process),等待向量化完成。
向量化成功后,每份文档会显示“已处理”状态,代表它已进入可检索的向量库。
第五步:开始问答并验证溯源
在工作区对话框中输入一个问题,例如“根据文档,报销流程需要几步?”。
预期表现:
- 回答内容来自你上传的文档,而不是泛泛而谈。
- 回答下方展示引用的来源片段,可点击跳转到原文位置。
打开 AnythingLLM 的“聊天”设置,开启“显示引用来源”,即可让每一条回答都带出处。
第六步:效果调优
如果回答不理想,按顺序尝试:
- 调整分块:AnythingLLM 设置里可配置分块大小与重叠(chunk size 建议 500-1000,overlap 50-100)。
- 换更强的模型:
ollama pull qwen2.5:14b或更大模型。 - 换更好的向量模型:使用更高维度的 embedding 模型并在配置里切换。
- 补充文档:把缺失知识补进知识库再重新处理。
第七步:自定义提示词与回答风格
AnythingLLM 允许自定义系统提示词(System Prompt),让回答更贴合团队口吻。例如在“聊天设置”里填入:
你是公司的知识助手。只基于上传的文档回答,不编造;
回答用简洁的中文,先给结论再给依据;
找不到依据时,明确说“资料库中没有相关内容”。
自定义提示词能让回答更“像自己人”,也是减少幻觉的有效手段。
第八步:数据备份与升级
- 备份:AnythingLLM 的数据目录(含向量库与配置)定期拷贝,建议纳入每日备份任务。
- 升级:升级前先备份,再更新软件版本并重新验证问答。
- 文档更新:文档内容变化后,删除旧版本并重新上传处理,避免新旧冲突。
验证方法
- 验证 1:
ollama list能看到对话模型与向量模型。 - 验证 2:上传文档后状态为“已处理”。
- 验证 3:提一个文档内的事实问题,回答能引用对应来源。
- 验证 4:断开外网,问答仍可用(确认是本地推理)。
- 验证 5:自定义提示词后,无依据问题能正确拒答。
常见错误与注意事项
- 文档格式混乱:先统一为可选中文本(扫描件先 OCR),再批量导入。
- 分块过大:单块超过模型上下文时检索失真,按建议值调整。
- 多语言混排:一个知识库内语言尽量统一,或按语言分工作区。
- 忘记开启引用:配置里务必开启“显示引用来源”,这是验收硬项。
常见问题与排障(FAQ)
-
AnythingLLM 连不上 Ollama 怎么办?
先确认
ollama serve在运行(ollama serve默认监听 11434),再用浏览器访问http://localhost:11434验证;配置里地址不要带多余斜杠。 -
模型下载很慢或失败?
网络受限时使用镜像地址或换时段重试;也可先下载 GGUF 模型手动导入。
-
回答完全没引用文档,像是在乱聊?
检查 Embedding 是否配置为本地 Ollama 模型;若未配置,文档无法被正确检索。
-
上传 PDF 乱码或识别不全?
AnythingLLM 依赖内置解析器;扫描版 PDF 需先做 OCR 转成可选中文本。
-
内存不够、运行很卡?
换更小的量化模型(如
qwen2.5:3b),并关闭其他大内存程序;7B 模型建议 16G 内存以上。 -
多台电脑怎么共用一套知识库?
把 AnythingLLM 部署为 Docker 服务端,并配置共享数据卷,客户端通过局域网访问。
总结与下一步
到这里,你已经拥有了一套“本地模型 + 本地知识库 + 可溯源问答”的 RAG 应用。建议下一步:先用真实业务文档小范围试用 1-2 周,收集高频问题与检索盲区,再决定是否升级模型、切换向量库或做多用户部署。
进阶与扩展
- 换成 FastGPT / Flowise:需要可视化工作流、复杂分支时迁移。
- 向量库升级:文档量大后把 LanceDB 换成
Milvus 等专业向量库。 - 混合检索:同时启用关键词与向量检索,提升长尾问题命中。
- 多用户权限:部署服务端并接入账号体系,实现部门级知识隔离。
- 接入 Agent:让知识库成为智能体的检索工具,联动工单、客服等业务流程。
用户评价