入门 10 分钟RAG

使用 Ollama 实现无需编程的本地 RAG(Open WebUI, AnythingLLM)

使用 Ollama 搭建本地 RAG,就是让自托管的 LLM 阅读您自己的文档并回答问题,全程不向云端发送任何一行内容。两个免费工具可以让您无需编程就完成搭建:Open WebUI(类似 ChatGPT 的界面,内置知识库)和 AnythingLLM(工作区和引用功能)。本指南用 10 分钟介绍整个流程,也涵盖没有 GPU 的小型电脑。

作者: Mohamed Meguedmi·更新于 2026-08-27·已在 Windows、macOS 和 Linux 上测试

#为什么要用 Ollama 搭建本地 RAG

RAG(检索增强生成)解决了大语言模型(LLM)的一个基本局限:它们只了解训练数据。RAG 将模型连接到您的文档:内部流程的 PDF 文件、Markdown 笔记、导出的邮件、合同、手册——所有既非公开也非近期的资料。模型在回答前会阅读相关段落,并在工具支持的情况下引用来源。

云端版本(ChatGPT、Claude、Gemini)要求您将文档上传至第三方服务器。对于律师事务所、医生、会计师,甚至只是不想让个人笔记传往美国的普通用户而言,这都是不可接受的。本地 RAG 工具 Ollama 解决了这一问题:所有数据都保留在您的设备上,您完全掌控成本(零成本)和隐私安全。

完全保密
您的文档始终留在本地设备中,不会有任何 token 发送到服务提供商。
零边际成本
无需订阅,没有 API 调用配额限制。您只需支付电费,仅此而已。
Offline
模型下载完成后,RAG可在离线状态下运行。
可定制
您选择回复模型、嵌入模型以及数据源。

#Ollama 是否原生支持 RAG?

本地 RAG 工具包

你的 AI 无需编写一行代码就能读取你的文档。但真正的问题仍然是:它回答得对吗?本地 RAG 套件从这个问题出发(第 1 章),带你深入使用 Open WebUI 和 AnythingLLM(第 13 章),并教你如何量化错误回答和虚构引用(第 14 章)。

  • 在线空间,终身可用
  • PDF + 文件
  • 30 天内退款

明确回答:不行。Ollama 是一个推理引擎——它下载并运行 LLM,在 http://localhost:11434 提供兼容 OpenAI 的 API,但无法自行为您的文档建立索引。它既没有向量数据库,也没有 PDF 分块工具,更没有可拖放文件的界面。

相反,它能够同时运行生成模型和嵌入模型——这正是第三方工具(Open WebUI,AnythingLLM,LangChain 等)构建 RAG 层所需的功能。当提到本地 RAG(Ollama)时,始终指的是 Ollama 与 RAG 接口的组合。

i
正确的心智模型
Ollama = 引擎(两项服务:生成回答的 LLM + 生成嵌入向量的 LLM)。Open WebUI 或 AnythingLLM = 处理流程:导入文档、分块、计算嵌入向量、向量存储、检索,以及将检索结果加入提示词。无需编写任何代码。

#先决条件

Ollama 已安装
支持Windows、macOS或Linux。默认监听地址为 http://localhost:11434.
一个用于生成回答的模型
Granite 4.2 8B 或 Qwen 3.5 9B,采用 Q4_K_M 量化。约需 5 到 7 GB 显存或内存。
嵌入模型
nomic-embed-text 或 mxbai-embed-large。约300 MB。用于文档向量化不可或缺。
Docker(采用 Open WebUI 方案时)
Windows/macOS上使用Docker Desktop,Linux上使用docker.io。这是推荐的安装方式。
磁盘空间
LLM模型 + 向量嵌入 + 您文档的向量索引至少需要10 GB。
准备两个 Ollama 模型
# Le LLM qui va répondre
ollama pull qwen3.5:9b

# Le modèle d'embeddings (obligatoire pour le RAG)
ollama pull nomic-embed-text

# Vérifier que les deux sont bien là
ollama list

#1. Open WebUI:内置知识库

Open WebUI(前身为 Ollama WebUI)是 Ollama 最受欢迎的 ChatGPT 风格界面。其 Knowledge(知识库)功能允许上传文档,并通过 RAG 对这些文档提问,无需在代码端进行任何配置。

  1. 01
    通过 Docker 启动 Open WebUI
    在终端中执行:docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main。在原生 Linux 系统中,若在 Docker 外运行 Ollama,请将 host.docker.internal 替换为 localhost。
  2. 02
    打开界面
    访问 http://localhost:3000。创建管理员账户(第一个账户默认为管理员)。Open WebUI 会自动检测 localhost:11434 上的 Ollama。
  3. 03
    创建知识库
    进入 Workspace → Knowledge → + Create a Knowledge Base。输入名称(例如:“客户合同”)。这是您的向量容器。
  4. 04
    导入自己的文档
    点击知识库右上角的+号,然后上传您的PDF、.docx、.md、.txt文件。Open WebUI会将这些文件切分,并在后台计算嵌入向量。
  5. 05
    配置嵌入模型
    Settings(管理员)→ Documents → Embedding Model Engine = Ollama,Embedding Model = nomic-embed-text。保存。否则,Open WebUI 会使用一个对法语适配较差的默认模型。
  6. 06
    查询知识库
    在新对话中输入 #,然后输入知识库名称以将其附加到对话中。提出问题——回答会根据相关文本片段生成,并带有可点击的引用编号。
→
快速添加附件的小技巧
如果您仅需查询一两个PDF文件而无需建立数据库,也可以直接将文件拖放到聊天区域。Open WebUI 会仅针对该文档切换至RAG模式,持续整个对话过程。

#2. AnythingLLM:工作区与引用功能

AnythingLLM 是 RAG 领域中 Open WebUI 最成熟的替代方案。相较于 Open WebUI 的通用性,AnythingLLM 基于工作区(workspace)理念设计:每个项目拥有独立的文档库、独立的模型和独立的历史记录。当您需要将‘客户合同’、‘个人笔记’和‘技术文档’分开管理时,它尤为适用。

  1. 01
    安装AnythingLLM
    从 useanything.com 下载适用于 Windows、macOS 或 Linux 的桌面版安装程序。这是一款基于 Electron 的应用——桌面版无需 Docker。
  2. 02
    选择Ollama作为LLM服务提供商
    首次启动时,助手会询问使用哪个大语言模型。选择 Ollama,输入 URL http://localhost:11434,从自动加载的列表中选择 qwen3.5:9b。
  3. 03
    选择嵌入模型引擎
    下一步:Embedder。选择 Ollama,模型选择 nomic-embed-text。如果您尚未拉取 nomic-embed-text,AnythingLLM 也可以使用内置的本地嵌入器——效果较差,但无需配置。
  4. 04
    创建工作区
    在侧边栏中选择“+ New Workspace”。为工作区命名。点击该工作区,再点击上传图标,即可拖入您的 PDF、.docx、.csv、.epub、URL,甚至 YouTube 视频(自动转录)。
  5. 05
    移动文件 → 工作区
    AnythingLLM 将文档导入(文档列在左侧)与使用(右侧工作区)分开。选择文档,点击 'Move to Workspace',然后点击 'Save and Embed'。嵌入向量就是在这一步通过 Ollama 计算的。
  6. 06
    进行带来源引用的对话
    在工作区中提出问题。每条回答都包含一个可展开的 Citations 面板,准确显示使用了哪些文本块。这对于核实模型是否产生了幻觉非常有用。
Open WebUI
如果您想要一个类似 ChatGPT 的通用界面,支持多用户(团队)使用,并可通过浏览器访问,这个方案更适合。RAG 只是其中的一项功能。
AnythingLLM
如果 RAG 是主要用途,它更合适:工作区划分严格、引用处理完善、支持更多格式(URL、YouTube、GitHub),并内置智能体。

#3. 如何选择嵌入模型

嵌入模型是很多人忽视的关键环节。它将您的文档转换为向量——其质量直接决定检索到的文本片段是否相关。处理法语文档时,有些模型明显优于其他模型。

nomic-embed-text (137M, 274 MB)
推荐的默认模型。速度快,多语言表现尚可,上下文长度为 8192 个 token。作为起点,这是很好的折中选择。可直接获取:ollama pull nomic-embed-text。
mxbai-embed-large (335M, 670 MB)
比 nomic 更精确,但略慢一些。主要适用于英语,不过也能处理一般的法语文档。如果质量比速度更重要,优先选择它。ollama pull mxbai-embed-large.
bge-m3 (567M, 1.2 GB)
多语言表现优异(支持 100 多种语言,包括原生支持法语),上下文长度为 8192。模型更大。可在 Hugging Face 获取,并通过 Modelfile 导入 Ollama。
snowflake-arctic-embed
多语言表现良好,比 bge-m3 更轻量。如果 bge-m3 的资源占用过高,这是一个不错的替代方案。
→
处理法语的实用准则
首先使用nomic-embed-text。如果在法语技术文档(法律、医疗类PDF)上的RAG结果表现不佳,则切换至bge-m3或专用模型如Solon。更换嵌入模型需重新索引整个知识库——在填充5000份文档前请务必考虑这一点。

#4. 4GB内存下无需GPU的本地RAG

是的,可行。RAG 没有人们想象中那么耗资源:大部分工作(生成嵌入)是在数据导入时一次性完成的;实际使用时,只是让 LLM 根据额外几千个 token 的上下文作答。在配置较低的机器上,主要需要权衡的是选用哪个 LLM 来回答。

4 GB 内存,CPU 较慢(老旧笔记本)
LLM:qwen3.5:2b 或 granite4.2:3b,采用 Q4_K_M 量化(约 2 GB)。嵌入模型:nomic-embed-text。回答生成较慢,但内容可读(3–5 tok/s)。LLM 的上下文长度设为 2048,以使内存占用保持在 RAM 容量限制以内。
8 GB 内存,较新 CPU(i5/Ryzen 5)
LLM:qwen3.5:4b Q4(~3.4 GB)或gemma4:e2b-it-qat。嵌入模型:nomic-embed-text。~6-10 tok/s。这是‘相当不错’的配置,无需GPU。
16 GB 内存,无 GPU
LLM:granite4.2:8b 或 qwen3.5:9b Q4(约 5–7 GB)。嵌入模型:nomic 或 mxbai。在较新的 Ryzen 7 或 i7 上仅使用 CPU 运行,速度约为 4–8 token/秒。
节省内存的最简配置
# Petit LLM rapide, embeddings standards
ollama pull qwen3.5:2b
ollama pull nomic-embed-text

# Réduire le contexte pour économiser la RAM
# Dans Open WebUI : Settings → Models → qwen3.5 → num_ctx = 2048
# Dans AnythingLLM : Workspace settings → Max Tokens = 2048

# Vérifier l'usage RAM en pleine question :
ollama ps
!
建立索引 = 负载峰值
导入大型文档(数百页)是负载最重的步骤——每个分块都必须经过嵌入模型处理。在配置较低的机器上,请分批导入:每批 10 至 20 份文档,等待索引完成后再导入下一批。否则,Ollama 可能耗尽 RAM,并在中途崩溃。

#故障排除

该模型‘无法查看’我的文档
请确认知识库已正确关联到聊天(Open WebUI:# 命令;AnythingLLM:工作区图标)。还要确认文档已完成向量嵌入处理,而不只是上传。
小模型响应非常缓慢
RAG会为上下文增加1000至3000个token。在RAG设置中减少top-k(从10个chunk改为3至5个),并将LLM的num_ctx降低至2048或4096。
即使有文档也出现幻觉
提高 top-k 值,确保嵌入模型与索引时使用的模型一致(模型变更将导致索引失效)。启用引用功能,以查看 LLM 实际读取了哪些内容。
Open WebUI 无法识别 Ollama
使用 Docker 时,添加 --add-host=host.docker.internal:host-gateway,然后在 Settings → Connections 中将 http://host.docker.internal:11434 设为 Ollama URL。
AnythingLLM 在嵌入操作时会卡住
通常受限于内存不足。请关闭其他应用程序,分批导入数据,或切换到更轻量的嵌入模型(如 nomic 而非 bge-m3)。

#深入了解

搭建好基于 Ollama 的本地 RAG 后,可以继续阅读以下几篇指南来深入了解:

本地 RAG:简介
解释底层工作原理的概念指南(包括分块、嵌入、检索)——有助于理解其成功或失败的原因。
最佳法语嵌入模型
针对法语内容的详细对比:BGE、E5、Solon 模型——何时应更换 nomic-embed-text 模型。
Open WebUI 搭配 Ollama:完整指南
超越 Open WebUI 上的 RAG 功能:支持多用户、用户配置文件、自定义提示词和工作流管道。
在没有GPU的情况下运行LLM
仅用CPU运行的详细指南,包含不同CPU的每秒token数(tokens/sec)基准测试——适合希望在没有显卡的情况下优化RAG配置的用户。
这份指南对您有帮助吗?

有反馈、发现了错误,或想补充说明?请告诉我们,让这份指南对每个人都更有帮助。