使用Ollama+AnythingLLM打造本地专属知识库

%title插图%num

用过大模型的都知道,我们不怕它不回答,就怕它乱回答,特别是一眼还看不出来的那种。即便是最先进的AI模型也会说谎,防不胜防。对企业来说,幻觉,已经成为阻碍大模型应用的严重缺陷性问题。

除了幻觉,通用大模型无法满足企业实际业务需求还涉及到知识局限性、信息安全等问题,企业显然不能将私域数据上传到第三方平台训练。在这种情况下,如何将本地知识库和大模型连接起来,构建一个专属的AI知识库,成为了关键问题。

本地知识库不仅适合企业内部使用,也可作为个人的私人助手。

下面我介绍Ollama+AnythingLLM打造本地知识库的具体步骤,可全程无代码轻松搭建。

前提条件

系统:Linux、Windows10 64位及以上、macOS 11 Big Sur及以上

网络:能流畅访问OllamaAnythingLLM网站,使用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,选择需要的模型进入,选择模型的类型。

%title插图%num

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

%title插图%num

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进行配置。

%title插图%num
LLM Preference
%title插图%num

设置首选的 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
%title插图%num

仅在docker版本有,桌面版本没有。

Just me

仅供个人使用,只有单用户。可设置密码。

My team

需设置管理员账号、密码。

后面直接下一步就行。然后进入主页面。

AnythingLLM设置
%title插图%num

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

%title插图%num

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

%title插图%num

至此,你可以使用Ollama加载的模型进行可视化的聊天对话了。要让模型加载你所需要的问题和答案,需要进行以下设置。

打造自己知识库

AnythingLLM可以支持PDF,TXT,DOCX等文档,可以提取文档中的文本信息,经过嵌入模型(Embedding Models),保存在向量数据库中,并通过一个简单的UI界面管理这些文档。

为管理这些文档,AnythingLLM引入工作区(workspace)的概念,作为文档的容器,可以在一个工作区内共享文档,但是工作区之间隔离。

%title插图%num

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

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

%title插图%num

本地化后的知识库效果:

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

留下评论