当前位置: 首页 > news >正文

Debian12.8如何部署Ragflow

环境:

ragflow v17.2

debian12.8

问题描述:

Debian12.8如何部署Ragflow

在这里插入图片描述

在这里插入图片描述

解决方案:

1.创建ragflow目录

root@VM-16-4-debian:/home/www# mkdir ragflow
root@VM-16-4-debian:/home/www# ls
ragflow
root@VM-16-4-debian:/home/www# cd ragflow/
root@VM-16-4-debian:/home/www/ragflow# 

2.查看python版本

root@VM-16-4-debian:/home/www/ragflow# python3 --version
Python 3.10.13

3.创建虚拟环境(我服务器多人使用需要这样,如果你一个人用这步不需要再建,后面会建)

ensurepip 来启用 venv:python3.10 -m ensurepip --upgrade
python3.10 -m pip install --upgrade pip

3.1创建一个新的虚拟环境:

python3 -m venv ragflow_env

3.2激活虚拟环境:

source ragflow_env/bin/activate

4.以源代码启动服务的方式部署

python -m pip install pipx

4.1安装 uv。如已经安装,可跳过本步骤:

pipx install uv
export UV_INDEX=https://mirrors.aliyun.com/pypi/simple

在这里插入图片描述

5.下载源代码并安装 Python 依赖:

git clone https://github.com/infiniflow/ragflow.gitcd ragflow/uv sync --python 3.10 --all-extras # install RAGFlow dependent python modules

在这里插入图片描述

如果出现 uv: command not found解决办法

(ragflow_env) root@VM-16-4-debian:/home/www/ragflow/ragflow# uv --version
-bash: uv: command not found
(ragflow_env) root@VM-16-4-debian:/home/www/ragflow/ragflow# pipx list
venvs are in /root/.local/share/pipx/venvs
apps are exposed on your $PATH at /root/.local/bin
manual pages are exposed at /root/.local/share/manpackage uv 0.6.16, installed using Python 3.11.2- uv- uvx

永久添加 /root/.local/bin 到 PATH
编辑 .bashrc 文件:nano ~/.bashrc
在文件末尾添加以下行:export PATH=$PATH:/root/.local/bin
保存并退出编辑器(在 nano 中按 Ctrl + X,然后按 Y 确认保存)。使更改生效:source ~/.bashrc
验证 uv 是否可用:uv --version

在这里插入图片描述

pyicu安装不上,icu60版本低问题

手动安装 icu-config(如果必须使用)# 下载 ICU 72.1 源码
wget https://github.com/unicode-org/icu/releases/download/release-72-1/icu4c-72_1-src.tgz
tar xzf icu4c-72_1-src.tgz
cd icu/source# 编译并安装(仅生成 icu-config)
./configure --prefix=/usr
make -j$(nproc)
make install
apt-get install -y python3-dev pkg-config libicu-devpyicupip install pyicu==2.15 --no-binary pyicu \--global-option="build_ext" \--global-option="-I$(/usr/bin/icu-config --incfile | xargs dirname)" \--global-option="-L$(/usr/bin/icu-config --libdir)"

再次执行:uv sync --python 3.10 --all-extras
在这里插入图片描述

6.通过 Docker Compose 启动依赖的服务(MinIO, Elasticsearch, Redis, and MySQL):

docker compose -f docker/docker-compose-base.yml up -d

在这里插入图片描述

[+] Running 0/1⠹ Container ragflow-redis  Starting                                                                                                                                                    0.2s 
Error response from daemon: failed to set up container networking: driver failed programming external connectivity on endpoint ragflow-redis (ff2e35d3f58391a1a1fcc955add9c244799888aa83d71f4e54b02ddb1331b7ce): failed to bind host port for 0.0.0.0:6379:172.19.0.3:6308/tcp: address already in use

我服务器上有个redis了,这里我需要改它端口,避免冲突
在这里插入图片描述

也有个mysql了,这里我需要改它端口,避免冲突
在这里插入图片描述

6.1更新 .env 文件

确保 ${REDIS_PORT} 的值与配置一致(例如改为未占用的端口)在这里插入图片描述

(ragflow_env) root@VM-16-4-debian:/home/www/ragflow/ragflow# docker stop ragflow-redis
ragflow-redis
(ragflow_env) root@VM-16-4-debian:/home/www/ragflow/ragflow# docker rm  ragflow-redis
ragflow-redis
(ragflow_env) root@VM-16-4-debian:/home/www/ragflow/ragflow# docker compose -f docker/docker-compose-base.yml up -d --force-recreate redis

7.在 /etc/hosts 中添加以下代码,目的是将 conf/service_conf.yaml 文件中的所有 host 地址都解析为 127.0.0.1:

127.0.0.1       es01 infinity mysql minio redis

在这里插入图片描述

如果无法访问 HuggingFace,可以把环境变量 HF_ENDPOINT 设成相应的镜像站点:

export HF_ENDPOINT=https://hf-mirror.com

启动后端服务:

source .venv/bin/activate
export PYTHONPATH=$(pwd)
docker/launch_backend_service.sh
``File "/home/www/ragflow/ragflow/.venv/lib/python3.10/site-packages/cv2/__init__.py", line 153, in bootstrapnative_module = importlib.import_module("cv2")# 安装 OpenGL 和图形驱动依赖sudo apt update
sudo apt install -y libgl1-mesa-glx libglib2.0-0
# 清理旧进程(如果有)
pkill -f "ragflow_server.py"
pkill -f "task_executor.py"# 重新启动服务
bash docker/launch_backend_service.sh

更新redis连接的端口
在这里插入图片描述更新配置文件redis端口/home/www/ragflow/ragflow/conf
在这里插入图片描述

8.下载/nltk_data

手动下载并解压数据

wget https://raw.githubusercontent.com/nltk/nltk_data/gh-pages/packages/tokenizers/punkt.zip
unzip punkt.zip -d /home/www/ragflow/nltk_data/

设置环境变量

echo "export NLTK_DATA=/home/www/ragflow/ragflow/nltk_data" >> ~/.bashrc
source ~/.bashrc

我在报错libodbc.so.2

sudo apt update
sudo apt install -y unixodbc-bin  # 包含 odbcinst 工具
sudo apt install -y odbcinst1debian2  # Debian 专用包

清理并重启服务

终止旧进程

pkill -f "ragflow_server.py"
pkill -f "task_executor.py"

重新启动

docker/launch_backend_service.sh

在这里插入图片描述

9.防火墙开头9222端口
在这里插入图片描述
公网访问web,注册账号即可
在这里插入图片描述

10.安装 Node.js 和 npm

使用官方源安装

curl -fsSL https://deb.nodesource.com/setup_lts.x | bash -
apt-get install -y nodejs

验证安装

node -v && npm -v

安装前端依赖:

cd web
npm install

在这里插入图片描述

11.启动前端服务:

npm run dev

12.开发完成后停止 RAGFlow 服务 停止 RAGFlow 前端和后端服务:

pkill -f "ragflow_server.py|task_executor.py"

相关文章:

  • CS001-50-depth
  • 关于TCP三次握手和四次挥手的疑点
  • Ubuntu下安装vsode+qt搭建开发框架(二)
  • 罗技Flow跨电脑控制
  • 买币永续合约成全球交易热点,XBIT去中心化交易所平台显著提升市场流动性
  • 信奥赛CSP-J复赛集训(DP专题)(28):P2946 [USACO09MAR] Cow Frisbee Team S
  • io_uring概述:现代 Linux 异步 IO 的新范式
  • MySQL长事务的隐患:深入剖析与解决方案
  • 强化学习基础
  • 图像畸变-径向切向畸变实时图像RTSP推流
  • 考研系列-计算机组成原理第四章、指令系统
  • 任务管理系统,Java+Vue,含源码与文档,科学规划任务节点,全程督办保障项目落地提效
  • 【Java 数据结构】List,ArrayList与顺序表
  • 软件设计原则
  • 4.23-4.26学习总结 HTML—CSS常见标签和样式
  • 使用 OpenCV 进行视觉图片调整的几种常见方法
  • 案例速成GO操作redis,个人笔记
  • 区块链VS传统数据库:金融数据存储的“信任”与“效率”博弈
  • 第十六届蓝桥杯网安初赛wp
  • SpringBoot集成WebSocket,单元测试执行报错
  • 借助AI应用,自闭症人群开始有可能真正“读懂他人”
  • 大家聊中国式现代化|陶希东:打造高水平安全韧性城市,给群众看得见的安全感
  • 新剧|《淮水竹亭》明开播:前作扑街,本作能否改命
  • “下山虎”张名扬一回合摘下“狮心”:你们再嘘一个给我听听
  • 特朗普将举行集会庆祝重返白宫执政百日,被指时机不当
  • 中信证券:“国家队”未曾减持ETF,应充分相信国家维稳决心