概念說明
- 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搭建自己的知識庫