基于 Ollama 与 AnythingLLM 搭建本地 RAG 知识库
最近一直想基于 RAG(检索增强生成,Retrieval-Augmented Generation)和大语言模型(Large Language Model, LLM)技术搭建一套属于自己的个人知识库。以为会涉及到诸多复杂的流程,包括模型调用、界面开发等。经过实践发现,利用开源工具组合可以非常简单地实现,主要用到三个核心软件:Ollama、Docker 和 AnythingLLM。
1. 技术背景介绍
1.1 RAG(检索增强生成)
检索增强生成(RAG)是指对大型语言模型输出进行优化,使其能够在生成响应之前引用训练数据来源之外的权威知识库。大型语言模型(LLM)用海量数据进行训练,使用数十亿个参数为回答问题、翻译语言和完成句子等任务生成原始输出。在 LLM 本就强大的功能基础上,RAG 将其扩展为能访问特定领域或组织的内部知识库,所有这些都无需重新训练模型。这是一种经济高效地改进 LLM 输出的方法,让它在各种情境下都能保持相关性、准确性和实用性。
与 RAG 并生的另一种技术叫监督式微调(SFT),是将 LLM 模型注入新的知识库并将模型本身进行训练以获得所需要的结果,需要有一定的硬件设备。两种技术并不矛盾,其实互相结合才是最好的解决方案。本文重点介绍 RAG 的落地方案。
1.2 Ollama
Ollama 是一个开源的大型语言模型服务工具,它允许用户在自己的硬件环境中轻松部署和使用大规模预训练模型。Ollama 的主要功能是在 Docker 容器内部署和管理大型语言模型(LLM),使得用户能够快速地在本地运行这些模型。它简化了模型下载、管理和推理的过程,支持多种主流模型架构。
官网地址:https://ollama.com/
1.3 Docker
Docker 是一个软件平台,让您可以快速构建、测试和部署应用程序。Docker 将软件打包成名为容器的标准化单元,这些单元具有运行软件所需的所有功能,包括库、系统工具、代码和运行时。使用 Docker,可以将应用程序快速部署和扩展到任何环境中,保证环境的一致性。
1.4 AnythingLLM
AnythingLLM 是由 Mintplex Labs Inc. 开发的一个全栈应用程序,是一款高效、可定制、开源的企业级文档聊天机器人解决方案。它能够将任何文档、资源或内容片段转化为大语言模型在聊天中可以利用的相关上下文。AnythingLLM 支持几乎所有的主流大模型和多种文档类型,可定制化,而且安装和设置简单,非常适合本地化知识库搭建。
2. 实现流程
2.1 安装 Ollama
- 下载与安装:访问 Ollama 官网下载对应操作系统的安装包,直接一路 Next 即可。
- 选择模型:在 Ollama 官网 Models 页面,点击 Filter by name 搜索模型。这里推荐使用
qwen2系列,例如qwen2:7b,大小约为 4.4G,适合大多数消费级显卡。 - 运行服务:双击图标运行 Ollama 后台服务。之后打开终端(Windows 电脑:win+cmd;mac 电脑:Terminal),粘贴命令拉取模型:
回车后会自动下载模型(可能网络会有些问题,建议配置镜像源)。下载完成后,直接在终端对话提问即可验证模型是否可用。ollama run qwen2:7b
2.2 安装 Docker
- 下载:访问 Docker 官网下载 Desktop 版本。
- 安装:直接安装即可,非常简单。
- 启动:双击运行 Docker Desktop,确保服务正在运行。
2.3 部署 AnythingLLM
为了更稳定的运行,建议使用 Docker Compose 方式部署 AnythingLLM,或者通过 Docker CLI 手动启动。


