本地部署Dify+Ragflow及使用(一)
概念说明
- RAGflow:
- 吃透知识:将企业文档(如技术白皮书)解析为结构化知识片段。
- 精准检索:当用户提问时,从知识库中召回最相关内容。
- 模型供应商:
- 提供大脑:为 Dify 提供生成答案的模型能力(如 Ollama 运行 Llama3)。
- Dify:
- 组装智能体:连接知识检索(RAGflow)和模型推理(Ollama),构建完整问答流程。
- 交互界面:生成用户可访问的聊天页面或 API。
场景示例
用户问:“超融合系统的双机热备如何配置?”
- RAGflow:从《超融合管理系统白皮书》中检索出配置步骤、拓扑图、注意事项。
- Dify:将检索结果 + 用户问题发送给模型供应商(如 Ollama)。
- Ollama(运行 Llama3):生成答案:“配置步骤如下:1. 准备两台服务器... 详见下图:<拓扑图>”。
- Dify:将答案返回给用户。
基础环境准备
虚机1:openeuler 24.03 8C/16G/500G 192.168.0.5 部署dify+ollama
虚机2:openeuler 24.03 8C/8G/500G 192.168.0.7 部署ragflow
- 关闭selinux、关闭firewalld、虚机能够访问互联网
- 两台虚机都需要安装docker、docker-compose
安装docker
1、准备镜像仓库
系统的镜像仓库和docker的镜像仓库,我用的都是华为云的
openEuler.repo
[base]
name=openEuler-24.03-LTS - Base
baseurl=https://mirrors.huaweicloud.com/openeuler/openEuler-24.03-LTS/OS/$basearch/
enabled=1
gpgcheck=0
gpgkey=https://mirrors.huaweicloud.com/openeuler/openEuler-24.03-LTS/OS/$basearch/RPM-GPG-KEY-openEuler[everything]
name=openEuler-24.03-LTS - Everything
baseurl=https://mirrors.huaweicloud.com/openeuler/openEuler-24.03-LTS/everything/$basearch/
enabled=1
gpgcheck=0
gpgkey=https://mirrors.huaweicloud.com/openeuler/openEuler-24.03-LTS/everything/$basearch/RPM-GPG-KEY-openEuler
docker-ce.repo
[docker-ce-stable]
name=Docker CE Stable - $basearch
baseurl=https://repo.huaweicloud.com/docker-ce/linux/centos/9/$basearch/stable
enabled=1
gpgcheck=1
gpgkey=https://repo.huaweicloud.com/docker-ce/linux/centos/gpg[docker-ce-stable-debuginfo]
name=Docker CE Stable - Debuginfo $basearch
baseurl=https://repo.huaweicloud.com/docker-ce/linux/centos/9/debug-$basearch/stable
enabled=0
gpgcheck=1
gpgkey=https://repo.huaweicloud.com/docker-ce/linux/centos/gpg[docker-ce-stable-source]
name=Docker CE Stable - Sources
baseurl=https://repo.huaweicloud.com/docker-ce/linux/centos/9/source/stable
enabled=0
gpgcheck=1
gpgkey=https://repo.huaweicloud.com/docker-ce/linux/centos/gpg[docker-ce-test]
name=Docker CE Test - $basearch
baseurl=https://repo.huaweicloud.com/docker-ce/linux/centos/9/$basearch/test
enabled=0
gpgcheck=1
gpgkey=https://repo.huaweicloud.com/docker-ce/linux/centos/gpg[docker-ce-test-debuginfo]
name=Docker CE Test - Debuginfo $basearch
baseurl=https://repo.huaweicloud.com/docker-ce/linux/centos/9/debug-$basearch/test
enabled=0
gpgcheck=1
gpgkey=https://repo.huaweicloud.com/docker-ce/linux/centos/gpg[docker-ce-test-source]
name=Docker CE Test - Sources
baseurl=https://repo.huaweicloud.com/docker-ce/linux/centos/9/source/test
enabled=0
gpgcheck=1
gpgkey=https://repo.huaweicloud.com/docker-ce/linux/centos/gpg[docker-ce-nightly]
name=Docker CE Nightly - $basearch
baseurl=https://repo.huaweicloud.com/docker-ce/linux/centos/9/$basearch/nightly
enabled=0
gpgcheck=1
gpgkey=https://repo.huaweicloud.com/docker-ce/linux/centos/gpg[docker-ce-nightly-debuginfo]
name=Docker CE Nightly - Debuginfo $basearch
baseurl=https://repo.huaweicloud.com/docker-ce/linux/centos/9/debug-$basearch/nightly
enabled=0
gpgcheck=1
gpgkey=https://repo.huaweicloud.com/docker-ce/linux/centos/gpg[docker-ce-nightly-source]
name=Docker CE Nightly - Sources
baseurl=https://repo.huaweicloud.com/docker-ce/linux/centos/9/source/nightly
enabled=0
gpgcheck=1
gpgkey=https://repo.huaweicloud.com/docker-ce/linux/centos/gpg
遇到的坑:下载docker时报错,原因docker镜像库不认识欧拉24.03这个版本(没有欧拉版本),将其改为centos9即可,即baseurl的链接中将欧拉版本改为centos9的版本。
2、安装docker
安装docker
dnf install -y docker-ce docker-ce-cli containerd.io
启动docker并设置开机自启
systemctl enable --now docker
查看docker版本
docker --version
Docker version 28.2.2, build e6534b4
安装docker-compose
1、下载docker-compose的二进制文件,并将文件放在/usr/local/bin/目录下
curl -L "https://github.com/docker/compose/releases/download/v2.27.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
遇到的坑:1、由于网络的限制,github访问不了,于是我用了魔法;2、使用dnf直接从镜像库下载docker-compose虽然能下载,但是版本太老还是1.x.x版本的,到后面启动容器会报错,所以还得下2.x.x以后的版本
2、赋予执行权限,查看版本信息
chmod +x /usr/local/bin/docker-compose ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose docker-compose --version
Docker Compose version v2.27.1
部署dify
说明:此部分操作在虚拟机1上进行
1、下载git工具
dnf -y install git
2、下载dify的软件包
git clone https://github.com/langgenius/dify.git
遇到的坑:老问题,如果git无法访问,那就直接去github上找这个项目,下载zip,然后传到dify虚机上
3、准备 .env变量文件
mkdir /opt/dify && cd /opt/difyunzip dify-main.zipcd dify-main/dockercp .env.example .env
4、编辑 .env
这个字段要改成本机地址,其他配置基本不用动。因为我是两台虚机分别部署dift、ragflow,所以不用担心端口冲突的问题,端口保持默认即可。
vi .envAPP_WEB_URL=http://192.168.0.5
遇到的坑:这个是我自找的,后续我对两个虚机改了下地址,但是测试工作流时总是访问原来的地址,原因就是这里没有改。
5、启动容器
执行如下命令,启动dify容器,这个过程会去互联网上拉镜像
docker-compose up -d
遇到的坑:一般情况下拉镜像都会报错,因为默认访问外网是不通的,所以国内一般都有加速器比如阿里、163、中科大、华为等,但是奇怪的是即使配置了国内加速器,拉镜像依然失败。找了好多资料,终于找到一个好使的加速器,如下
cat /etc/docker/daemon.json {"registry-mirrors": ["https://docker.1ms.run","https://docker.1panel.live/","https://docker.mirrors.ustc.edu.cn"],"max-concurrent-downloads": 10,"max-download-attempts": 3
}
配置完,重新执行上步,就能正常拉取了
6、访问
http://192.168.0.5
部署ollama
说明:此部分操作在虚拟机1上进行
本来有install,sh脚本可以一件部署,但是又由于网络的限制执行不下去,于是我用了以下方法
1、下载ollama安装包
wget https://ghproxy.com/https://github.com/ollama/ollama/releases/download/v0.9.2/ollama-linux-amd64.tgz
2、解压,移动至二进制目录,赋予执行权限,修改服务配置
tar -zxvf ollama-linux-amd64.tgz mv bin/ollama /usr/local/bin/ chmod +x /usr/local/bin/ollama tee /etc/systemd/system/ollama.service > /dev/null <<EOF
[Unit]
Description=Ollama AI Service
After=network.target[Service]
ExecStart=/usr/local/bin/ollama serve
User=root
Group=root
Restart=always
RestartSec=5
Environment="OLLAMA_HOST=0.0.0.0:11434"[Install]
WantedBy=multi-user.target
EOF
3、 启动ollama服务
systemctl daemon-reloadsystemctl enable ollama systemctl start ollamaollama --version
ollama version is 0.9.2
4、下载大模型
漫长的等待
ollama run deepseek-r1:7b
下载完成
ollama ls
NAME ID SIZE MODIFIED
deepseek-r1:1.5b e0979632db5a 1.1 GB 44 hours ago
deepseek-r1:7b 755ced02ce7b 4.7 GB 2 days ago
部署ragflow
说明:此部分操作在虚拟机2上进行,在部署ragflow之前,先保证docker、docker-compose已经运行正常
1、下载ragflow安装包,直接去对应的github上打包下载,然后传到虚机后台,解压
mkdir /opt/ragflowcd /opt/ragflowunzip ragflow-main.zip
2、直接启动
什么配置都不用改直接启动
cd ragflow-main/docker docker compose -f docker-compose.yml -p ragflow up -d
3、访问
http://192.168.0.7
以上就是部署过程,第二篇文章会介绍如何使用dify+ragflow搭建自己的知识库