最近发现使用WSL非常方便。不仅可以不用实体机器安装Linux,同时也可以避免额外的浪费空间。因此打算部署一个局域网内的个人知识库体系,这样就可以建立一个强大的知识和大模型体系,真正用到AI的能力。AnythingLLM作为一个本地部署和云部署都支持的小巧形知识库工具也非常的好用。
再加上对大模型框架Ollama的高性价比,这套本地局域网知识库的部署还是非常有价值的。
首先安装WSL
安装WSL,一般的教程是直接用管理员打开CMD或者PowerShell,执行命令
Wsl –install
但是实际上不仅会碰到很多问题,同时你也想更清楚的知道自己要安装什么Linux,版本是什么,能不能安装等问题
- 首先,我们使用下面的命令,确保网络通常,看下自己的机器目前能安装什么样的版本和系统。
WSL –list –online
列出可以装的版本
- 其实执行下面的命令,指定具体的产品,开始安装
WSL –install -d 指定上述一个版本进行安装
或者这样
wsl –install -d Ubuntu-22.04
如果出现错误:
无法启动服务,原因可能是已被禁用或与其相关联的设备没有启动
解决方法: 开启Windows Update , 打开【启用和关闭windows功能】,勾选以下几个服务。重启电脑
同等作用的方法,如果有组件没有安装,可以在Console中以管理员身份执行脚本,开启
适用于 Linux 的 Windows 子系统 dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
虚拟机平台 dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
其次安装Docker
Linux安装好后,虽然说是默认没有安装docker,但是大部分版本目前都自带包含了。
当然如果没有,则执行sudo apt-get install docker-ce 进行安装
Docker下安装AnythingLLM
AnythingLLM是个不错的个人知识库,当然也可以应用到企业级别
官方安装文档入口:
本地部署Docker版本地址:https://docs.anythingllm.com/installation-docker/local-docker
官网提供单机版本和Docker版本,两者的差异
(我们目前想要支持多用户在局域网使用,因此使用Docker部署方式)
Feature | Available on Desktop | Available on Docker |
Multi-user support | ❌ | ✅ |
Emeddable chat widgets | ❌ | ✅ |
One-click install | ✅ | ❌ |
Private documents | ✅ | ✅ |
Connect to any vector database | ✅ | ✅ |
Use any LLM | ✅ | ✅ |
Built-in embedding provider | ✅ | ✅ |
Built-in LLM provider | ✅ | ❌ |
White-labeling | ❌ | ✅ |
Chat logs | ✅ | ✅ |
Agent support | ✅ | ✅ |
Agent skills | ✅ | ✅ |
Third-party data connectors | ✅ | ✅ |
Password protection | ❌ | ✅ |
Invite new users to instance | ❌ | ✅ |
Text splitting configuration | ✅ | ✅ |
Whisper model support | ✅ | ✅ |
Full developer API | ✅ | ✅ |
User management | ❌ | ✅ |
Workspace access management | ❌ | ✅ |
Website scraping | ✅ | ✅ |
官方的说法,执行
docker pull mintplexlabs/anythingllm
但可能由于是源的问题,从来没成功过。
我们下载了这个镜像,加载使用 sudo docker load -imyImage.docker 以这种方式可以在任何本地,甚至没有连网的机器上安装该组件。
安装好后,需要设置环境和运行Docker
在Terminal中执行下面的命令,首先是设置环境变量,后面是运行Docker命令,可以看到指向3001端口
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
注意:
有时候安装不成功,可能是权限问题。
执行这句话的时候,其中的STORAGE_LOCATION/anythingllm 目录,需要sudo chmod 777 anythingllm这样。确保该目录可写。
安装好后,访问http://127.0.0.1:3001 这个地址看到界面就算是成功部署了。
然后新建管理用户,一步步按照页面指示设置内容。在大模型设定这块有坑。Docker版本不像桌面版本那样内置大模型能力,需要自行制定,我们目前使用本地部署的Ollama框架。
Docker下安装Ollama大模型框架
- 用管理员身份命令行执行
curl -fsSL https://ollama.com/install.sh | sh
- 打开浏览器 ,访问 http://localhost:11434/ 见到内容就算成功了。
你可以尝试使用Ollama自带的很多命令查看运行情况。
这个是服务已经在运行了。
Ollama实际上还需要下载能用的大模型,
下载大模型
比如执行: ollama run qwen2:7b-instruct-q4_0
或者有时候必须要用到最新的,ollama run llama2 或者最新的模型
Ollama模型下载后的位置
macOS: ~/.ollama/models
Linux: /usr/share/ollama/.ollama/models
Windows: C:Users<username>.ollamamodels
让Docker下能访问
让Ollama能给我们刚才部署的Docker下的知识库访问到,需要修改地址。
Ollama默认只允许127.0.0.1:11434访问,我们可以修改配置,让所有IP都可以访问
修改文件/etc/systemd/system/ollama.service , 在[Service]这块最下面新增
Environment=”OLLAMA_HOST=0.0.0.0″
保存,重启Ollama服务即可(Ollama Serve)
AnythingLLM中配置使用Ollama大模型
在AnythingLLM的设置菜单中,
我们按照下图一样的设定,才能让LLM的能力正常运转起来。
在上图中Ollama Base URL 记得写Http
同时不要使用127.0.0.1这样的本机地址,即便是本机,也用本机的真实IP来代替。
同时,如果配置不正确,或者没有下载好Ollama的大模型,在OllamaModel这个下拉列表中是不出现内容的,此时LLM整体功能也是不可用的。
这里的界面设定不是特别好,用户开始用会觉得好差。
最终使用示意
最后所有的配置都没有问题,在界面上创建工作区。
这个工作区的设定有一些累赘,但是也有些作用,每个工作区可以上传嵌入不同的本地文件数据,从而实现RAG。
不知道为什么AnythingLLM本地部署的RAG能力,嵌入数据文件时非常非常慢。
或许是开源版本和企业版本的区别吧。如下图示意,我们已经可以使用起来知识库了。总结下有以下几个亮点
- 独立自主的大模型能力,还带更新功能
- 独立的知识库体系,具备更新功能
- 局域网本地部署,灵活高效,成本低
- 支持多用户,像一个简单的企业内部应用。
有任何技术需求或者问题,随时联系我们 2img.ai
RA/SD 衍生者AI训练营。发布者:chris,转载请注明出处:https://www.shxcj.com/archives/7139