使用 Ollama + AnythingLLM 搭建本地知识库
本文详细介绍了如何使用 Ollama 和 AnythingLLM 搭建本地知识库。首先阐述了 RAG 技术的原理及其与 LLM 的关系,随后提供了详细的软硬件环境准备指南。核心内容包括 Ollama 的安装与模型拉取、AnythingLLM 的配置与连接、知识库工作空间的创建及文档上传流程。文章还补充了常见问题排查方法,如连接失败、内存优化、检索效果调优及数据安全措施,旨在帮助用户构建安全、高效的私有化 AI 问答系统。

本文详细介绍了如何使用 Ollama 和 AnythingLLM 搭建本地知识库。首先阐述了 RAG 技术的原理及其与 LLM 的关系,随后提供了详细的软硬件环境准备指南。核心内容包括 Ollama 的安装与模型拉取、AnythingLLM 的配置与连接、知识库工作空间的创建及文档上传流程。文章还补充了常见问题排查方法,如连接失败、内存优化、检索效果调优及数据安全措施,旨在帮助用户构建安全、高效的私有化 AI 问答系统。

RAG,即检索增强生成(Retrieval-Augmented Generation),是一种先进的自然语言处理技术架构,旨在克服传统大型语言模型(LLMs)在处理开放域问题时的信息容量限制和时效性不足。RAG 的核心机制融合了信息检索系统的精确性和语言模型的强大生成能力,为基于自然语言的任务提供了更为灵活和精准的解决方案。
RAG 不是对 LLM 的替代,而是对其能力的扩展与升级。传统 LLM 受限于训练数据的边界,对于未见信息或快速变化的知识难以有效处理。RAG 通过动态接入外部资源,使 LLM 得以即时访问和利用广泛且不断更新的知识库,进而提升模型在问答、对话、文本生成等任务中的表现。此外,RAG 框架强调了模型的灵活性和适应性,允许开发者针对不同应用场景定制知识库,从而满足特定领域的需求。
RAG 就像是为大型语言模型(LLM)配备了一个即时查询的'超级知识库'。这个'外挂'不仅扩大了模型的知识覆盖范围,还提高了其回答特定领域问题的准确性和时效性。
想象一下,传统的 LLM 像是一个博学多才但记忆力有限的学者,它依赖于训练时吸收的信息来回答问题。而 RAG,则是这位学者随时可以连线的庞大图书馆和实时资讯网络。当面临复杂或最新的查询时,RAG 能让模型即时搜索并引用这些外部资源,就像学者翻阅最新的研究资料或在线数据库一样,从而提供更加精准、全面和最新的答案。这种设计尤其适用于需要高度专业化或快速更新信息的场景,比如医学咨询、法律意见、新闻摘要等。
基于此,RAG 技术特别适合用来做个人或企业的本地知识库应用,利用现有知识库资料结合 LLM 的能力,针对特定领域知识的问题能够提供自然语言对话交互,且答案比单纯用 LLM 准确性要高得多。
为了流畅运行本地大模型及构建知识库,建议配置如下:
Ollama 与 LLM 的关系可以这样理解:Ollama 本身不是 LLM,而是一个服务于 LLM 的工具。它提供了一个平台和环境,使得开发者和研究人员能够在本地机器上轻松地运行、测试和部署各种大型语言模型。
下载地址: https://www.ollama.com/download
支持 Windows、Mac、Linux。当然你也可以用 Docker 安装镜像,官方镜像 https://hub.docker.com/r/ollama/ollama。更多细节请参考 GitHub 的 Readme。
当你运行 ollama --version 命令成功查询到版本时,表示 Ollama 的安装已经顺利完成。
如果你偏好容器化运行,可以使用以下命令启动 Ollama 服务:
docker run -d -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama
这将把模型数据持久化到卷中,并暴露 11434 端口供其他服务调用。
接下来便可以用 pull 命令从在线模型库下载模型,比如:
ollama pull llama2
还有更简单的方法直接使用 run 命令,它会在运行之前自动检查模型是否下载,如果没有会自动下载:
ollama run llama3
但是我想搭建的是本地知识库,当然是以中文为主,所以需要对中文支持最好的模型。Ollama 官方提供的模型,对中文支持好的不多,比较好的有:
本想用智谱的 GLM,奈何不兼容 Ollama,也没有 GGUF 格式文件,于是作罢。巧的是阿里的通义 Qwen2 模型刚刚开源,正好可以试一下。
'阿里开源了通义 Qwen2 模型,可以说是现阶段这个规模最强的开源模型。发布后直接在 Huggingface LLM 开源模型榜单获得第一名,超过了刚发布的 Llama3 和一众开源模型。Qwen2 在代表推理能力的代码和数学以及长文本表现尤其突出。推理相关测试及大海捞针测试都取得了很好的成绩。'
顺序介绍一下中文大模型,可能通过这个仓库了解:https://github.com/HqWu-HITCS/Awesome-Chinese-LLM
安装并运行 Qwen2 模型,注意这里由于我笔记本配置问题,所以选用的是 7B 参数的模型:
ollama run qwen2:7b
模型下载的默认路径是:/Users/${home}/.ollama/models (macOS/Linux) 或 %USERPROFILE%\.ollama\models (Windows)。
以下是我机器的配置,mac Intel 芯片。
安装完成后就可以对话了。
通过命令行交互的方式不算太友好,所以我们需要一个好看好用的 UI 界面来与模型进行交互。
Open Web UI 就是这样一个软件 https://github.com/open-webui/open-webui,它通过 Docker 可以非常容易的进行部署。
部署完成后,这样使用是不是就友好多了?但由于我们是要搭建一个个人本地知识库,需要对知识库有更多的掌控,Open Web UI 有些不满足需要,所以我们要用另一个软件。
我们先下载安装 AnythingLLM: https://useanything.com/download
完成安装后大概长这个样子。
然后我们就要开始选择模型了。
这里注意,我们要用服务器模式启动 Ollama,Ollama 其实有两种模式:
所谓服务器模式,你可以简单理解为,Ollama 在后端运行大模型,然后开放一个端口给到别的软件,让那些软件可以调用大模型的能力。要开启服务器模式非常简单。在终端里输入:ollama serve
用服务器模式启动 Ollama 后:
在 AnythingLLM 界面中选择 Ollama。
然后在 Base URL 中填:http://127.0.0.1:11434
模型选择之前下载的 Qwen2.5 7b。
Token context window 可以先用默认的 4096。
完成以上设置后来到下一步。
搭建一个知识库,会涉及到另外两个关键:
上图中就是默认的嵌入模型以及向量数据库,我们先使用默认的。
然后往下走,下一步是填写个人信息,这步我就省略了。 再下一步是给你的 workspace 起名,我也省略。
接着你就可以在建好的 workspace 中上传你的个人知识库的内容了。
你可以上传文件(支持多种格式 pdf word…),甚至是一个外部的网站链接,不太好的是它不能上传一个文件夹,如果你的文件夹是包含多级目录的,那么它无法识别,你需要把所有文件平铺放在同一级目录中再全选上传。
数据源也可以是其他知识网站。
你可以根据项目来创建 Workspace,一个项目建一个。然后,把关于这个项目的所有文档、所有网页都导入 Workspace。聊天模式还有两种可以设置:
比如我随便上传了一个《劳动合同法》的 pdf 文件,用查询模式进行对话。
虽然不太对,但内容是从上传的文件里找到的,还可以点击查看源文件。
我将笔记本中的很多计算机相关的 markdown 文件作为'知识'上传后,进行问答。
至此,我的本地个人知识库就搭建完成了!
如果在 AnythingLLM 中连接 Ollama 失败,提示 Connection Refused,请检查以下几点:
ollama serve。.ollama 目录及 AnythingLLM 的数据目录,以防数据丢失。通过 Ollama 和 AnythingLLM 的组合,我们可以低成本、高效率地搭建起属于自己的私有知识库。这不仅保护了数据隐私,还能充分利用本地算力实现智能问答。随着大模型技术的不断演进,未来本地 AI 应用将更加普及,成为个人和企业数字化的重要基础设施。

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online
生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online
基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online