910B昇腾部署ragflow
收藏回复举报
910B昇腾部署ragflow
新人帖
发表于2025-12-03 09:15:12
0 查看

在部署ragflow的时候我参考了3篇帖子,是基于苹果arm64安装ragflow来实现的。具体连接在下面,可以参考一下。

https://zhuanlan.zhihu.com/p/1891610274194256793

https://blog.csdn.net/weixin_55841088/article/details/148085416

https://ragflow.io/docs/dev/launch_ragflow_from_source

1.克隆RAGFlow仓库

git clone https://github.com/infiniflow/ragflow.git

cd ragflow/

2.安装python环境

这步我偷懒了,正常部署python环境是需要通过安装anaconda来进行管理。而我当前是直接用sudo apt-get install -y python3 python3-pip安装然后创建的环境。然后关于anaconda的链接可以借鉴下面两个。

https://blog.csdn.net/u014677900/article/details/146693025

https://zhuanlan.zhihu.com/p/1976439019698153170

因为没有接触过uv且官方给安装方式是通过uv创建python环境,所以我也就用了uv(但感觉如果按照了conda就没必要用uv了)。

安装uv(如果有报错可以自己搜索一下解决方案,正常是能解决的)pipx install uv安装python依赖# 局部

uv sync --python 3.12

# 全局

uv sync --python 3.12 --all-extras

3.启动第三方服务

以下命令通过 Docker Compose 启动“基础”服务(MinIO、Elasticsearch、Resis 和 MySQL):

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

(也可以用这条命令加个-p ragflow做个项目容器的区分,sudo docker compose -f -p ragflow docker/docker-compose-base.yml up -d)

4.修改端口映射文件

vim /etc/hosts

# hosts文件中追加一行即可(如果不让修改可以尝试用sudo vim /etc/hosts)还不行可以搜索一下解决方案。vim进行修改时需要用i键来切换修改,修改后按tab键切换命令然后用:wq可以保存,也可以强制保存:wq!。只读不修改:q,强制只读:q!

127.0.0.1  es01 infinity mysql minio redis

5.配置环境变量和hf地址

source .venv/bin/activate(有conda命令激活环境的命令就是conda activate 环境名)

export PYTHONPATH=$(pwd)

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

6. 启动RAGFlow 后台服务

运行这个安装环境缺失什么包就安装什么

bash docker/entrypoint.sh

当环境安装好后碰到类似路径不对的问题时用下面的方式启动(可能还会碰到环境问题,还是缺什么下什么)

nohup python api/ragflow_server.py > logs/ragflow_server.log 2>&1 &

JEMALLOC_PATH=$(pkg-config --variable=libdir jemalloc)/libjemalloc.so;

LD_PRELOAD=$JEMALLOC_PATH python rag/svr/task_executor.py 1;

这里还有一些坑,需要下载一些模型不然会报错,如果你的服务器能连接huggingface可能会直接下载,不然就需要手动下载然后上传到服务器了。

sudo apt update

sudo apt install libjemalloc2

# 或者安装开发版本(包含头文件)

sudo apt install libjemalloc-dev

如果需要在多个会话中使用 jemalloc,可以将配置添加到 shell 配置文件中:

echo 'export JEMALLOC_PATH=/usr/lib/x86_64-linux-gnu/libjemalloc.so.2' >> ~/.bashrc

source ~/.bashrc

No module named 'exceptiongroup'

pip install exceptiongroup

E: Package 'odbcinst1debian2' has no installation candidate

# 安装核心组件

sudo apt install -y unixodbc

# 如果需要编译或开发(例如某些Python包在构建时需要ODBC头文件),建议也安装开发包

sudo apt install -y unixodbc-dev

如nltk_data,本地下载后上传到服务器,然后放到下面的目录,命令如下

确认是否有nltk_data目录

ls -la /home/defa/project/ragflow/.venv/

没有创建

mkdir -p /home/defa/project/ragflow/.venv/nltk_data/

复制到这个位置

cp -r nltk_data_local/* /home/xxxx/project/ragflow/.venv/nltk_data/

7.启动RAGFlow前端服务

这部分需要安装node好像,是java的环境。

Command 'npm' not found, but can be installed with:

sudo apt install npm

Node.js要大于v18.20.4,不然会有环境兼容问题

cd web  

npm install

npm run dev

为了dev可以后端运行,我在web文件下创建了一个脚本,内容如下

#!/bin/bash

# 使用 screen 在后台运行开发服务器

cd "$(dirname "$0")"

# 检查是否已有会话

if screen -list | grep -q "ragflow-web"; then

    echo "会话 'ragflow-web' 已存在"

    echo "查看会话: screen -r ragflow-web"

    exit 1

fi

# 确保日志目录存在

LOG_DIR="$(dirname "$(dirname "$0")")/logs"

mkdir -p "$LOG_DIR"

LOG_FILE="$LOG_DIR/web.log"

# 创建新的 screen 会话,同时保存日志到文件

screen -dmS ragflow-web bash -c "npm run dev 2>&1 | tee -a '$LOG_FILE'"

echo "✓ 开发服务器已在 screen 会话 'ragflow-web' 中启动"

echo "✓ 日志文件: $LOG_FILE"

echo ""

echo "常用命令:"

echo "  查看会话: screen -r ragflow-web"

echo "  查看日志: tail -f $LOG_FILE"

echo "  列出会话: screen -ls"

echo "  断开连接: Ctrl+A, 然后按 D"

echo "  停止会话: screen -X -S ragflow-web quit"

8.配置模型

这步和之前在配置dify模型时候一样,url也是http://服务器ip:1025/v1

https://www.hiascend.com/developer/techArticles/20250203-5(找的部署dify的帖子)

cke_2870.png

cke_5008.png

cke_7198.png

这些配置完后,在创建知识库并解析文件的时候会有问题。碰到下面的报错可以重启容器和前后端,遇到解析问题则是因为pdf解析需要有模型,而我们可能是缺失模型了,所以下载即可。 XGBoost模型缺失 updown_concat_xgb.model

elasticsearch.NotFoundError: NotFoundError(404, 'index_not_found_exception', 'no such index

cd /home/defa/project/ragflow/rag/res/deepdoc/

wget -O updown_concat_xgb.model "https://hf-mirror.com/InfiniFlow/text_concat_xgb_v1.0/resolve/main/updown_concat_xgb.model"

我要发帖子