老E的博客

  • 首页
  • 关于
  • 技术应用
    • VPS相关
    • AI相关
    • 盒子相关
    • 其他
  • 订阅Youtube频道
  • 网络加速
    • expressvpnNo.1 ExpressVPN
    • 最佳免费VPN-PrivadoVPN
    • NordVPN
    • 廉价王者-Surfshark
    • PrivateInternetAccess
    • 解锁一切-PrivateVPN
  • 公益资源
    • AI导航
    • 工具下载
    • Docker镜像加速
  • 友情链接
    • tickcloudTickcloud
老E的博客
专注记录并分享跨境技术应用及随想
  1. 首页
  2. 技术应用
  3. AI相关
  4. 正文

WSL从源码部署RAGFlow

2025年4月12日 1306次阅读 0条评论
clawcloud
expressvpn best vpn
privado vpn
surfshark vpn
private vpn
pia vpn
nord vpn

RAG 框架中,RAGFlow、ChatFlow 在 RAG 方面更有优势,RAGFlow 的 Agent 模块(workflow)也比较强大,并且支持原生 GraphRAG(General 模式),可选自带一些本地模型,但相比 coze、dify 等开发框架和平台,RAGFlow 上手门槛略高。本文将说明在 WSL 中从源码部署 RAGFlow 的步骤和过程,降低新手配置、应用 RAGFlow 的学习门槛,因此诸如 docker 启动等操作在非 WSL 中是不必要的。很多小伙伴宁可使用 VMWare 也使用 WSL 的原因在于 WSL 默认会安装到系统盘,关于如何将 WSL 安装到非系统盘,以及 systemd 支持,将通过另一篇文章说明。

环境准备

--Windows 11 下的 Linux 子系统(debian 12+)

--安装 pipx、uv、nodejs/npm

apt update -y
apt upgrade -y
apt install pipx pkg-config python3-icu libjemalloc-dev -y
pipx install uv
export UV_INDEX=https://mirrors.aliyun.com/pypi/simple
. ~/.bashrc

#前后端分离部署可忽略
curl -fsSL https://deb.nodesource.com/setup_20.x | bash -
apt-get install -y nodejs
npm install npm -g
#reboot

安装完成后,重新加载配置以使 uv 路径配置全局生效。

-- Debian 11 升级至 12:WSL Debian 版本为 11,应升级至 12+,避免因默认 python 版本、jemalloc 等必要组件缺失或依赖版本问题导致部署失败。

-- 修改内核 vm.max_map_count 参数值由默认的 65530 为 262144。

sysctl -w vm.max_map_count=262144

#或者直接编辑文件以避免重启后被重置
#echo "vm.max_map_count=262144" >> /etc/sysctl.conf
sysctl -p

部署

部署前应确保配置好代理环境或修改为国内源(docker、pip、npm、huggingface等)。

1.源码下载和 python 依赖安装

git clone https://github.com/infiniflow/ragflow.git
cd ragflow/
uv sync --python 3.10 --all-extras

2.通过 Docker Compose 启动依赖的服务(可使用与官方兼容的自定义镜像)

在拉取镜像之前,可自行决定是否使用本地嵌入模型。打开 RAGFlow 项目目录下的 docker/.env 文件,默认 slim 镜像不包含嵌入模型,注释该行,取消注释完整版本镜像的注释,就会拉取、加载包括 embedding 模型的镜像,大约增加 2G 的空间要求,支持 CPU。

embedding

#WSL应确保 docker 已启动,应添加配置 /etc/wsl.conf 
#systemctl enable docker
#service docker start
docker compose -f docker/docker-compose-base.yml up -d

docker-compose

3.添加 /etc/hosts 添加解析

修改 hosts 文件,旨在将 conf/service_conf.yaml 文件中的所有 host 地址都解析为 localhost/127.0.0.1,也可以直接修改 service_conf.yaml 文件。

echo "127.0.0.1       es01 infinity mysql minio redis" >> /etc/hosts

conf

4.启动后端服务

-- 配置 nltk 依赖

可以使用 pip3 安装 nltk_data,如果是在启动过程中因 nltk 数据加载出现问题,也可参考下文手动配置 punkt_tab、averaged_perceptron_tagger 和 wordnet。

python3 -m nltk.downloader punkt_tab
python3 -m nltk.downloader averaged_perceptron_tagger
python3 -m nltk.downloader wordnet

Debian 下需要在 RAGFlow 项目目录下虚拟环境的 .venv 中创建 nltk_data 目录及corpora、taggers、tockenizers 子目录,分别放置 RAGFlow 所必须的 nltk 工具依赖数据,包括 punkt_tab、averaged_perceptron_tagger 和 wordnet 数据。数据文件可通过 https://www.nltk.org/nltk_data/ 下载,或者直接点击「这里」下载作者压缩打包的 nltk_data 数据文件,解压至任意搜索目录即可。(备注:默认应解压至 .venv 虚拟环境目录下)

nltk

 -- 启动后端服务 

source .venv/bin/activate
export PYTHONPATH=$(pwd)
bash docker/launch_backend_service.sh

run-backend

经过一段时间的初始化,RAGFlow 即可成功启动。打开浏览器,访问后端 URL ,显示 {"code":100,"data":null,"message":"<NotFound '404: Not Found'>"} 说明后端启动成功。

localhost-backend-url

5.安装前端依赖

RAGFlow 前端采用 react+tailwind,分离部署,不需要的话可以忽略。

cd web
npm install

6.启动前端

npm run dev

frontend

Windows 下,打开浏览器访问 localhost:9222 即可登录 ragflow 进行配置和知识库、agent等的建立。

webpage

 

至此就完成了从源码部署 RAGFlow,相比 docker 部署,自由度大为提高,相比 windows 下部署,通过 WSL 是最快、最简单搭建 RAGFlow 开发环境的方法。更多精彩,敬请关注「老E的博客」!

本作品采用 知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议 进行许可
标签: ai AI 开发 RAG ragflow 知识库
最后更新:2025年4月13日

老E

这个人很懒,什么都没留下

点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

站内搜索
归档
  • 2025 年 5 月
  • 2025 年 4 月
  • 2025 年 3 月
  • 2025 年 2 月
  • 2025 年 1 月
  • 2024 年 12 月
  • 2024 年 11 月
  • 2024 年 10 月
  • 2024 年 9 月
  • 2024 年 8 月
  • 2024 年 7 月
  • 2024 年 6 月
  • 2024 年 5 月
  • 2024 年 4 月
  • 2024 年 3 月
  • 2024 年 2 月
  • 2024 年 1 月
  • 2023 年 12 月
  • 2023 年 11 月
  • 2023 年 10 月
  • 2023 年 9 月
  • 2023 年 8 月
  • 2023 年 7 月
  • 2023 年 6 月

Copyright ©2023-2025 Appscross. All Rights Reserved.