这篇文章我花了4个小时才整完,转载请注明出处。
目录
设计初衷
之所以想在Openwrt中安装RagFlow,是因为本地部署大模型的成本太高了。根据我的测试32BQ4和70BQ4版本基本上不太能用(可能我的要求太高)。32B、70B、671B非量化的版本,部署成本太高了,普通家庭根本无法承受。一台可以部署32B非量化版的机器,大概配置是2块L20 48GB显卡,28000元一块,再加上主板、CPU、内存等部件,一台机器的价格接近80000元了。远非普通家庭和团队可以投资的。所以还是购买Token使用云端大模型,经济上比较划算。
从技术角度看,671B以下的模型都不是Deepseek,因为他们都是基于LLama和Qwen蒸馏出来的,架构和训练的知识都不是Deepseek。所以我一直觉得只有671B才是Deepseek,671B的蒸馏版也是基于Deepseek模型蒸馏出来的。
有关蒸馏、量化等大模型的小知识点,可以看另外一篇文章:Deepseek项目如何落地?落地中有哪些需要考量?落地后维护怎么办?【大模型学习笔记】大模型小知识-汇总。-优快云博客
所以当别人都在做本地大模型教程时,我反其道而行,按照用RagFlow连接云端模型做知识库的思路,做个家庭版的知识库,希望可以让大模型走进千家万户。我将Ragflow安装到软路由中,随着Openwrt一起启动,在家庭局域网中使RagFlow一直保持在线,让家里人都可以享受大模型带来的便利。
原本想要尝试让RagFlow连接Ollama,由Ollama去连接云端大模型。后来发现,在Ollama中添加好云端大模型后,RagFlow使用API连接Ollama时,Ollama报错找不到模型。几经折腾后,发现Ollama虽然可以连接云端大模型,但是并不能像本地大模型一样去使用API调用。最后,无奈只能使用RagFlow去直连云端大模型。架构如下图:
Embedding向量模型时Rag场景中必要的模型,没有此模型,RAG无法运作。Embedding模型主要负责对文章进行分块操作。此方案,投资少,一台软路由就可以完成。
环境配置
我的配置如下:
内存:8GB
硬盘:50GB
系统:Homelede 2024.08.03
测试用所以硬盘小,实际使用环境中越大越好。因为RagFlow还附带了简单的文档库供大家使用
参考文档:ragflow/README_zh.md at main · infiniflow/ragflow · GitHub
注意官方推荐配置如下:
- CPU >= 4 核
- RAM >= 16 GB
- Disk >= 50 GB
- Docker >= 24.0.0 & Docker Compose >= v2.26.1
手把手部署
1.配置vm.max_map_count
查看vm.max_map_count的值
sysctl vm.max_map_count
如果小于262144,重新配置
sysctl -w vm.max_map_count=262144
你的改动会在下次系统重启时被重置。如果希望做永久改动,还需要在 /etc/sysctl.conf 文件里把 的值再相应更新一遍:vm.max_map_count。执行以下命令
vi /etc/sysctl.conf
敲 i 键转到编辑模式,添加vm.max_map_count=262144
ESC键,退出编辑模式,输入:wq!
保存并退出
2.使用git克隆
首先使用git克隆一些配置文件,包括创建目录,这不很重要不能被省略掉。
git clone https://github.com/infiniflow/ragflow.git
如果没有安装git,请执行以下两条命令进行安装:
opkg update
opkg install git
如果在执行opkg update的时候出现软件源相关错误,请看这里:Openwrt或Homelede软件源更换-优快云博客
如果安装了git,但是报错:git: 'remote-https' is not a git command. See 'git --help',移步这里看解决方案:
3.安装Docker-Compose
一般情况下,Openwrt都会默认安装好Docker,但是不会安装Docker-Compose,所以我们要把Docker-Compose安装上,才能部署RagFlow
Docker-Compose是Regflow官方部署文档中使用的工具。
4.更换RagFlow WebUI的端口
修改docker-compose.yml ,更换webui端口,以防止与Openwrt网页端口冲突。
cd regflow/docker
进入regflow/docker目录前,必须执行git clone否则目录无法被创建,也不会有.env和docker-compose.yml。不要想着偷懒
vi docker-compose.yml
修改这里,把80:80修改为“你想要的端口”:80,例如:6080:80
最好顺手把443也修改了,以防不时之需。
5.正式安装
正式开始安装之前,不要退出/regflow/docker这个目录。
docker compose -f docker-compose.yml up -d
出现:Error response from daemon: Get "https://registry-1.docker.io/v2/valkey/valkey/manifests/sha256:a560291eda3595674847834defff40887e27051c7ecf1afcd0c7ee89168e8e2f": EOF这种错误就再执行一下,直到没有问题了
全部拉取完毕
6.最后一把
docker logs -f ragflow-server
运行后,等着,直到出现下面的图,代表运行服务已经运行,不要偷懒,必须要等着这个界面出来。
最后的彩蛋
完美。
一会写一下Ragflow的简单配置教程,写好了,我会把链接更新进来。