开源 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)。首次启动会进入初始化向导:

  1. 选择“本地向量库”类型(默认使用内置的 LanceDB,无需额外安装)。
  2. 选择 LLM 提供方为 Ollama
  3. 填入 Ollama 地址 http://localhost:11434,并选择上一步拉取的 qwen2.5:7b
  4. 选择 Embedding 提供方为 Ollama,模型选 nomic-embed-text

保存配置后即完成连接。

第四步:创建知识库并上传文档

  1. 在 AnythingLLM 左侧点击“工作区”(Workspace),新建一个工作区,如 公司制度
  2. 进入工作区 → “上传文档”,把准备的分块文档拖入。
  3. 点击“处理文档”(Process),等待向量化完成。

向量化成功后,每份文档会显示“已处理”状态,代表它已进入可检索的向量库。

第五步:开始问答并验证溯源

在工作区对话框中输入一个问题,例如“根据文档,报销流程需要几步?”。

预期表现:

  • 回答内容来自你上传的文档,而不是泛泛而谈。
  • 回答下方展示引用的来源片段,可点击跳转到原文位置。

打开 AnythingLLM 的“聊天”设置,开启“显示引用来源”,即可让每一条回答都带出处。

第六步:效果调优

如果回答不理想,按顺序尝试:

  1. 调整分块:AnythingLLM 设置里可配置分块大小与重叠(chunk size 建议 500-1000,overlap 50-100)。
  2. 换更强的模型:ollama pull qwen2.5:14b 或更大模型。
  3. 换更好的向量模型:使用更高维度的 embedding 模型并在配置里切换。
  4. 补充文档:把缺失知识补进知识库再重新处理。

第七步:自定义提示词与回答风格

AnythingLLM 允许自定义系统提示词(System Prompt),让回答更贴合团队口吻。例如在“聊天设置”里填入:

你是公司的知识助手。只基于上传的文档回答,不编造;
回答用简洁的中文,先给结论再给依据;
找不到依据时,明确说“资料库中没有相关内容”。

自定义提示词能让回答更“像自己人”,也是减少幻觉的有效手段。

第八步:数据备份与升级

  • 备份:AnythingLLM 的数据目录(含向量库与配置)定期拷贝,建议纳入每日备份任务。
  • 升级:升级前先备份,再更新软件版本并重新验证问答。
  • 文档更新:文档内容变化后,删除旧版本并重新上传处理,避免新旧冲突。

验证方法

  • 验证 1:ollama list 能看到对话模型与向量模型。
  • 验证 2:上传文档后状态为“已处理”。
  • 验证 3:提一个文档内的事实问题,回答能引用对应来源。
  • 验证 4:断开外网,问答仍可用(确认是本地推理)。
  • 验证 5:自定义提示词后,无依据问题能正确拒答。

常见错误与注意事项

  1. 文档格式混乱:先统一为可选中文本(扫描件先 OCR),再批量导入。
  2. 分块过大:单块超过模型上下文时检索失真,按建议值调整。
  3. 多语言混排:一个知识库内语言尽量统一,或按语言分工作区。
  4. 忘记开启引用:配置里务必开启“显示引用来源”,这是验收硬项。

常见问题与排障(FAQ)

  1. AnythingLLM 连不上 Ollama 怎么办?

    先确认 ollama serve 在运行(ollama serve 默认监听 11434),再用浏览器访问 http://localhost:11434 验证;配置里地址不要带多余斜杠。

  2. 模型下载很慢或失败?

    网络受限时使用镜像地址或换时段重试;也可先下载 GGUF 模型手动导入。

  3. 回答完全没引用文档,像是在乱聊?

    检查 Embedding 是否配置为本地 Ollama 模型;若未配置,文档无法被正确检索。

  4. 上传 PDF 乱码或识别不全?

    AnythingLLM 依赖内置解析器;扫描版 PDF 需先做 OCR 转成可选中文本。

  5. 内存不够、运行很卡?

    换更小的量化模型(如 qwen2.5:3b),并关闭其他大内存程序;7B 模型建议 16G 内存以上。

  6. 多台电脑怎么共用一套知识库?

    把 AnythingLLM 部署为 Docker 服务端,并配置共享数据卷,客户端通过局域网访问。

总结与下一步

到这里,你已经拥有了一套“本地模型 + 本地知识库 + 可溯源问答”的 RAG 应用。建议下一步:先用真实业务文档小范围试用 1-2 周,收集高频问题与检索盲区,再决定是否升级模型、切换向量库或做多用户部署。

进阶与扩展

  • 换成 FastGPT / Flowise:需要可视化工作流、复杂分支时迁移。
  • 向量库升级:文档量大后把 LanceDB 换成 Milvus 等专业向量库。
  • 混合检索:同时启用关键词与向量检索,提升长尾问题命中。
  • 多用户权限:部署服务端并接入账号体系,实现部门级知识隔离。
  • 接入 Agent:让知识库成为智能体的检索工具,联动工单、客服等业务流程。

用户评价

  • 加载评价中...