
用过大模型的都知道,我们不怕它不回答,就怕它乱回答,特别是一眼还看不出来的那种。即便是最先进的AI模型也会说谎,防不胜防。对企业来说,幻觉,已经成为阻碍大模型应用的严重缺陷性问题。
除了幻觉,通用大模型无法满足企业实际业务需求还涉及到知识局限性、信息安全等问题,企业显然不能将私域数据上传到第三方平台训练。在这种情况下,如何将本地知识库和大模型连接起来,构建一个专属的AI知识库,成为了关键问题。
本地知识库不仅适合企业内部使用,也可作为个人的私人助手。
下面我介绍Ollama+AnythingLLM打造本地知识库的具体步骤,可全程无代码轻松搭建。
前提条件
系统:Linux、Windows10 64位及以上、macOS 11 Big Sur及以上
网络:能流畅访问Ollama和AnythingLLM网站,使用docker的能正常拉取docker镜像。
硬件:CPU2核,内存因为使用模型不同而不同,7B模型内存至少8GB可用,13B模型内存至少16GB可用,33B模型内存至少21GB可用。
安装Ollama
Ollama是一个开源的大型语言模型服务工具,它帮助用户快速在本地运行大模型。通过简单的安装指令,用户可以执行一条命令就在本地运行开源大型语言模型,如Llama 2和最新开源的Llama 3。Ollama极大地简化了在Docker容器内部署和管理LLM的过程,使得用户能够快速地在本地运行大型语言模型。
安装文件安装
访问https://ollama.com/download,选择自己的操作系统进行安装。Linux系统的手动安装简介:https://github.com/ollama/ollama/blob/main/docs/linux.md。
在本地运行模型
进入https://ollama.com/library,选择需要的模型进入,选择模型的类型。

点击右边的复制按钮,粘贴命令行到命令窗口执行。安装完成后可直接在命令窗口对话。

docker安装
安装docker后,使用命令docker pull ollama/ollama
拉取镜像。
CPU only
docker run -d -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama
Nvidia GPU
Install the NVIDIA Container Toolkit.
使用 Apt 安装
1、配置存储库
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey \
| sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list \
| sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' \
| sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
sudo apt-get update
2、安装 NVIDIA Container Toolkit 软件包
sudo apt-get install -y nvidia-container-toolkit
使用 Yum 或 Dnf 安装
1、配置存储库
curl -s -L https://nvidia.github.io/libnvidia-container/stable/rpm/nvidia-container-toolkit.repo \
| sudo tee /etc/yum.repos.d/nvidia-container-toolkit.repo
2、安装 NVIDIA Container Toolkit 软件包
sudo yum install -y nvidia-container-toolkit
配置 Docker 以使用 Nvidia 驱动程序
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker
启动容器
docker run -d --gpus=all -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama
AMD GPU
要使用 Docker 和 AMD GPU 运行 Ollama,请使用 rocm
标记和以下命令:
docker run -d --device /dev/kfd --device /dev/dri -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama:rocm
在本地运行模型
输入docker exec -it ollama ollama run llama3
运行模型,其中llama3
替换成自己需要的模型。
常用命令
serve Start ollama
create Create a model from a Modelfile
show Show information for a model
run Run a model
pull Pull a model from a registry
push Push a model to a registry
list List models
ps List running models
cp Copy a model
rm Remove a model
help Help about any command
安装AnythingLLM
AnythingLLM 是 Mintplex Labs Inc. 开发的一款可以与任何内容聊天的私人 ChatGPT,是高效、可定制、开源的企业级文档聊天机器人解决方案。它能够将任何文档、资源或内容片段转化为大语言模型(LLM)在聊天中可以利用的相关上下文。
Docker 与桌面版本区别
AnythingLLM 提供了两种使用 AnythingLLM 的主要方法。每个产品/服务在功能上存在一些明显的差异。
功能 | 桌面版本 | Docker版本 |
---|---|---|
多用户支持 | ❌ | ✅ |
可嵌入的聊天小部件 | ❌ | ✅ |
一键安装 | ✅ | ❌ |
私人文件 | ✅ | ✅ |
连接到任何矢量数据库 | ✅ | ✅ |
使用任何LLM | ✅ | ✅ |
内置嵌入提供程序 | ✅ | ✅ |
内置LLM提供程序 | ✅ | ❌ |
White-labeling | ❌ | ✅ |
聊天记录 | ✅ | ✅ |
Agent support | ✅ | ✅ |
Agent skills | ✅ | ✅ |
第三方数据连接器 | ✅ | ✅ |
密码保护 | ❌ | ✅ |
邀请新用户加入实例 | ❌ | ✅ |
文本拆分配置 | ✅ | ✅ |
Whisper 模型支持 | ✅ | ✅ |
完整的开发人员 API | ✅ | ✅ |
用户管理 | ❌ | ✅ |
工作区访问管理 | ❌ | ✅ |
网站抓取 | ✅ | ✅ |
桌面版本安装
访问https://useanything.com/download,下载对应系统的安装包直接安装。
docker版本安装
安装好docker,在终端运行此命令:docker pull mintplexlabs/anythingllm
。
拉取镜像后,运行以下命令:
export STORAGE_LOCATION=$HOME/anythingllm && \
mkdir -p $STORAGE_LOCATION && \
touch "$STORAGE_LOCATION/.env" && \
docker run -d -p 3001:3001 \
--cap-add SYS_ADMIN \
-v ${STORAGE_LOCATION}:/app/server/storage \
-v ${STORAGE_LOCATION}/.env:/app/server/.env \
-e STORAGE_DIR="/app/server/storage" \
mintplexlabs/anythingllm
$HOME/anythingllm改成自己想要存放的路径。
在浏览器中输入http://localhost:3001
,开始AnythingLLM的使用。
使用AnythingLLM
配置AnythingLLM
初次使用,要先对AnythingLLM进行配置。

LLM Preference

设置首选的 LLM 聊天和嵌入提供商的凭据和设置。
LLM Provider
这里我们选择刚才安装的Ollama。你如果有其他的LLM提供商,也可选择其他的。下面都是Ollama的设置。
Ollama Base URL
如果您使用的是 AnythingLLM 桌面版本,请在Ollama Base URL 上填写 http://127.0.0.1:11434
;如果您使用的是 AnythingLLM Docker 版本,请在Ollama Base URL 上填写 http://host.docker.internal:11434
,你也可以把AnythingLLM的docker网络设置成host,地址就填成 http://127.0.0.1:11434
。
Chat Model Selection
选择你在Ollama上安装的模型。
Token context window
填4096就行了。
User Steup

仅在docker版本有,桌面版本没有。
Just me
仅供个人使用,只有单用户。可设置密码。
My team
需设置管理员账号、密码。
后面直接下一步就行。然后进入主页面。
AnythingLLM设置

点击左下角扳手图标进入AnythingLLM的设置界面,可再次对AnythingLLM进行设置。具体设置根据自己需要进行设置即可。

点击工作区旁的齿轮按钮,可对每个工作区进行单独设置。

至此,你可以使用Ollama加载的模型进行可视化的聊天对话了。要让模型加载你所需要的问题和答案,需要进行以下设置。
打造自己知识库
AnythingLLM可以支持PDF,TXT,DOCX等文档,可以提取文档中的文本信息,经过嵌入模型(Embedding Models),保存在向量数据库中,并通过一个简单的UI界面管理这些文档。
为管理这些文档,AnythingLLM引入工作区(workspace)的概念,作为文档的容器,可以在一个工作区内共享文档,但是工作区之间隔离。

点击工作区旁的上传按钮,可上传文档,也可以抓取网页信息。


选中My Documents中需要进入知识库的文档,点击Move to Workspace即可将文档保存嵌入工作区向量数据库。

本地化后的知识库效果:



最后,如果你觉得英文太多,不好操作,也可以试一下国内的比如MaxKB。