Ubuntu本地部署AnythingLLM实现本地文档RAG

在企业内部,随着时间会慢慢积累大量的文档,这些文档若不能有效地利用,会造成很大的浪费。如何能够利用工具让沉淀的文档变成企业的资产,一直以来都是企业信息化的重要工作。幸好AI大模型的出现,让这一切都有了可能,今天实测一下AnythingLLM。

AnythingLLM是一款功能很强大的全栈应用程序,它能将你的文档、资源(如网址、音频、视频)或任何内容片段,转化为可供大型语言模型(LLM)在聊天时参考的上下文。简单的来说,你可以把它想象成一个高度定制化且私有部署的"ChatGPT",但它的独特之处在于,能让AI模型基于你提供的资料进行对话和回答。

1、本地部署AnythingLLM

准备本地环境,因为是测试环境,在云环境上创建8核32G虚拟机。

系统:Ubuntu 20.04.5 LTS

内核:5.4.0-125-generic

根据官方提供的部署信息,这里采用docker的方式。先来安装一下docker环境。

bash 复制代码
# 添加Docker官方GPG密钥  
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg  
  
# 添加Docker稳定版仓库  
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null  
  
# 安装Docker引擎  
sudo apt update  
sudo apt install -y docker-ce docker-ce-cli containerd.io

可以查看一下docker的版本。

bash 复制代码
root@i-zz6dpdid:~# docker --version    
Docker version 28.1.1, build 4eba377

拉取AnythingLLM的镜像,为了快速拉到镜像,可以改一下国内docker的镜像源。或者直接到指定网站拉取。

bash 复制代码
   
root@i-zz6dpdid:~# docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/mintplexlabs/anythingllm:latest  
......  
  
root@i-zz6dpdid:~# docker image ls  
REPOSITORY                                                                    TAG       IMAGE ID       CREATED        SIZE  
swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/mintplexlabs/anythingllm   latest    7606bb3edd61   9 months ago   2.47GB

获取到mintplexlabs/anythingllm:latest的docker镜像后,可以按照官网给出的启动方法操作,路径和镜像稍微修改一下。

bash 复制代码
#提前创建目录和env,并修改好权限  
mkdir -p /opt/anythingllm  
touch /opt/anythingllm/.env  
chown -R 1000:1000 /opt/anythingllm  
chmod -R 755 /opt/anythingllm  
  
#启动docker,记得加root,否则可能失败  
export STORAGE_LOCATION=/opt/anythingllm && \  
docker run -d -p 3001:3001 \  
--user root \  
--cap-add SYS_ADMIN \  
-v ${STORAGE_LOCATION}:/app/server/storage \  
-v ${STORAGE_LOCATION}/.env:/app/server/.env \  
-e STORAGE_DIR="/app/server/storage" \  
swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/mintplexlabs/anythingllm

好了,启动成功后,可以打开浏览器看下

因为之前配置好了deepseek-r1模型,直接选择ollama即可。

选择好文档处理的模型。

问个问题,测试一下。

2、本地文档RAG

现在环境配置好之后,我们尝试将本地文档上传到工作区去做文档内容向量化。


上传了文档之后,同时也要将文档pin into workspace,让文档真正作为知识库的一部分。

当上传文档后,通常需要三个步骤:

Upload(上传) → 文件传到服务器

Process/Embed(处理/嵌入) → 文档内容被分析和向量化

Pin into workspace(固定到工作区) → 文档与当前工作区建立关联

这时候如果我们去看下deepseek-r1模型所在节点,可以看到GPU正在工作。

测试一下效果吧,当我们提问:"企业云平台应急预案都有哪些?",它就会优先把本地上传的文档内容做一个汇总给出。

🔥运维干货分享

相关推荐
Android系统攻城狮11 小时前
Linux FFmpeg深度解析之av_write_frame调用流程与实战(三十三)
linux·运维·服务器·ffmpeg·音视频进阶·ffmpeg音视频
上火的金鱼妹11 小时前
k8s生产实际问题排查(网关,数据库读写等)
运维·服务器
孙克旭_11 小时前
k8s基础组件与创建资源
运维·docker·容器·kubernetes
lucas_AI12 小时前
给 Claude Code 挂上代码地图:token 省了 39%,但先看你的瓶颈在哪
llm·agent
孙克旭_12 小时前
云原生基础之Containerd容器运行时
运维·云原生
分布式存储与RustFS12 小时前
RustFS 自建对象存储实战目录:110 篇按场景分类(持续更新)
运维·云原生·开源·对象存储·分布式存储·s3·性能基准
无忧_wy12 小时前
MoneyPrinterTurbo 自动化视频生成实战指南
运维·人工智能·自动化·音视频
木头左1 天前
【Nginx】内网服务源 IP 白名单实战:动态域名解析放行网段 + 端口接管零改造
运维·nginx·白名单·反向代理
Linux-lucky1 天前
45-Linux学习之旅之防火墙与WEB加固
linux·前端·网络·学习·ubuntu
禁默1 天前
启元 Q1 二次开发实践:Ubuntu 部署与仿真验证,从 PrimeConsole 到 ROS 2 Humble + RViz
linux·运维·ubuntu