本地大模型知识库工具

本地大模型知识库工具


大模型知识库。这一概念的核心在于,它不仅仅是对现有企业私有知识库的技术性升级,更是一种革命性的知识管理与利用方式。大模型知识库旨在通过融合最新的大模型技术,对企业的海量内部数据、专业知识、最佳实践等进行高效组织、智能索引和深度学习,使之成为可被模型理解和运用的结构化知识资源。

这样的知识库不仅能够实现对企业内部知识的快速检索和精准匹配,还能够借助大模型的语境理解和生成能力,自动总结文档、生成报告、解答复杂问题,甚至在特定领域内进行创新性思考和策略建议。换句话说,大模型知识库可以成为企业智慧的“超级大脑”,极大提升知识的流动性和价值转化效率,让企业的每一份知识资产都成为推动业务发展和创新的源泉。

同理,既然企业可以用大模型知识库来管理企业级的知识,那么个人同样也可以构建起个人版的“智慧大脑”。想象一下,将个人的学习笔记、工作经验、技能树、甚至是兴趣爱好等各类信息,全部整合进这样一个智能化的知识管理体系中。这不仅是一个简单的信息存储仓库,而是一个能够自我学习、自我优化,并根据个人需求动态调整的知识生态系统。


本地大模型知识库工具

AnythingLLM、MaxKB、RAGFlow、FastGPT、Dify 、 Open WebUI 、Ollama


安装

1、Windows环境

安装非常方便简单。Ollama的安装就是官网,将Windows版本的Ollama下载无脑安装即可。

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,即可。

Open WebUI也提供了从Ollama拉取模型的界面,非常方便直观:

(Anything LLM未在Windows环境安装)

2、Linux环境

一般先安装Ollama。Ollama的安装使用一句命令:curl -fsSL https://ollama.com/install.sh | sh

Ollama对国内比较友好,其安装和下载模型速度都蛮快的。见下图:

完成安装后,需要执行ollama start启动(或者生产环境提供服务执行ollama serve),然后使用命令行方式安装模型、运行模型(因此界面不友好,需要安装Open WebUI)

ollama无需翻墙,下载安装模型速度还是很快的:

例如下载Llama3.1 70B,都没问题:

甚至下载405B的也可以,不过就是其内存要求高,无法运行:

下载Llama3.1的三个版本(大中小杯):

Ollama成功安装出了操作一些常规命令,例如查看版本(ollama --version):

查看下载的模型(ollama list)之外,关键需要查看其能否通过端口访问curl 127.0.0.1:11434

在Windows浏览器,可以见到如下结果:



容器部署Ollama(创建过程)

1、创建基础容器
docker run -itd --privileged --restart=always -p 3005:11434 -v /share/users_root/hqx_bai/byp/software/LLMs:/byp --name ollama_byp ubuntu:latest bash
2、进入容器
docker exec -it ollama_byp bash
3、升级apt和安装软件
apt update
apt install -y curl vim
4、安装ollama
curl -fsSL https://ollama.com/install.sh | sh
5、设置环境变量
注意:安装后,宿主机如果访问该容器的Ollama会失败,其原因不是防火墙问题(新建的容器没有防火墙),而是IP地址访问协议的问题!
Ollama监听的地址应该是IPv6协议的地址,而如果从外部要访问它,可能用了IPv4方式就无法访问。
进入容器后,可以使用语句查看监听地址:netstat -tuln | grep 11434 (需要安装:apt install net-tools)
结果是:tcp6       0      0 :::11434                :::*                    LISTEN
因此需要设置该服务器将接受来自任何IP地址的HTTP请求,无论是来自本地网络还是外部网络:
(1)查看路径:
echo $OLLAMA_HOST
结果是空的。
(2)写入环境配置文件并重新加载配置文件:
echo 'export OLLAMA_HOST=0.0.0.0:11434' >> ~/.bashrc
重新加载配置文件:
source ~/.bashrc
(3)再次查看:
echo $OLLAMA_HOST
结果是:0.0.0.0:11434
6、启动ollama
ollama serve
7、检查是否安装成功
在宿主机:
curl http://localhost:3005
能返回:
Ollama is running
或者在浏览器输入地址:
http://183.6.**.***:3005/
浏览器页面返回上面的内容即可!
另外进入容器内,输入:
curl http://localhost:11434
也是返回以上内容。


容器部署Open WebUI

为了方便调试、修改,最好是先把其镜像拉下来:

docker pull ghcr.io/open-webui/open-webui:main

但是镜像下载很慢,因此可以找时间先把镜像下载下来后,打包成一个镜像文件,需要时可以导入使用:
docker import open-webui.tar ghcr.io/open-webui/open-webui:main
有了镜像后,就很方便了,一句话创建容器:
docker run -d -p 3006:8080 -e OLLAMA_BASE_URL=http://183.6.**.***:3005 -v open-webui:/app/backend/data --name open-webui_byp --restart always ghcr.io/open-webui/open-webui:main
注意:由于Ollama是安装在另外的容器,因此需要设置OLLAMA_BASE_URL,而这个地址需要实际的IP地址,localhost、127.0.0.1都不行。


容器部署Anything LLM

AnythingLlm官网提供了(20240804)安装方法。不过国内无法直接下载,需要想办法下载镜像:

docker pull mintplexlabs/anythingllm

保存镜像后,就可以挪到需要安装的服务器中:
docker save -o mintplexlabs_anythingllm.tar mintplexlabs/anythingllm:latest

在需要服务器中导入镜像:

docker load -i mintplexlabs_anythingllm.tar

官网提供的创建容器命令是:

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一般就是:/var/lib。(文件夹/var/lib/anythingllm会包括上传知识库文件转为json的文件,见文件夹结构|json列表|json内容
所以可以分开来执行。先:

export STORAGE_LOCATION=/var/lib/anythingllm &&
sudo mkdir -p /var/lib/anythingllm &&
sudo touch "/var/lib/anythingllm/.env"

持久化环境变量
如果你希望环境变量在每次启动新 Shell 会话时都生效,可以将 export 命令添加到 Shell 配置文件中,如 ~/.bashrc、~/.bash_profile 或 ~/.profile 中:
echo 'export STORAGE_LOCATION=/var/lib/anythingllm' >> ~/.bashrc
source ~/.bashrc

设置环境变量、建立文件夹和.env文件后,再执行创建容器命令:

docker run -d -p 3007:3001
--cap-add SYS_ADMIN
-v /var/lib/anythingllm:/app/server/storage
-v /var/lib/anythingllm/.env:/app/server/.env
-e STORAGE_DIR="/app/server/storage"
mintplexlabs/anythingllm

但是执行后,容器会报错(可以通过docker logs 容器ID,查看容器日志。见报错内容)。主要是2个问题:(1)STORAGE_LOCATION文件夹的权限问题;(2)数据库文件的创立及其权限问题(Anything LLM其实需要数据库的);

(1)更改权限:sudo chmod -R 755 /var/lib/anythingllm

(2)创建空白的数据库文件:

#可以在本地其它Linux Ubuntu容器内先安装Sqlite数据库:

apt-get install sqlite3

#然后创建空的数据库文件:

sqlite3 ./anythingllm.db ".databases"

然后将该空白数据库文件保存到宿主机的对应文件夹:

sudo cp anythingllm.db /var/lib/anythingllm

可查看该文件夹权限(如果里面文件权限不够需要修改):

ls -la /var/lib/anythingllm

重启该容器:docker restart 50942a207220:一般就可以进入设置界面:

其它设置页面:04| 05| 06| 07| 08| 09| 10| 11| 12|

里面一个关键设置就是Ollama的地址。系统会自动读取Ollama Base URL的地址,例如宿主机如果安装了Ollama地址为:http://172.17.0.1:11434;如果Ollama安装在别的地址,也可以后面进行修改变更。








一文详解几种常见本地大模型个人知识库工具部署、微调及对比选型(1)






BypInformation