RAGFlow本地部署教程(Windows篇)

本教程参考官方文档Datawhale教程编写

RAG(Retrieval-Augmented Generation,检索增强生成)是一种结合了信息检索(Retrieval)和自然语言生成(Generation)的技术框架。它通过从外部知识库中检索相关信息,并将其作为上下文输入到大型语言模型(LLM)中,从而增强模型生成回答的准确性、相关性和可解释性。

RAGFlow是一个基于深度文档理解的开源RAG(检索增强生成)引擎。当与LLM集成时,它能够提供真实的问答能力,并得到来自各种复杂格式数据的充分引用的支持。

环境与配置

本教程基于Windows11系统编写。

官方配置要求:

  • CPU ≥ 4 cores (x86)
  • RAM ≥ 16 GB
  • Disk ≥ 50 GB(注意,由于WSL默认安装在C盘,而Docker的文件会安装在WSL中,所以请至少给C盘留有50GB以上的空间,防止像笔者一样C盘爆炸)
  • Docker ≥ 24.0.0 & Docker Compose ≥ v2.26.1

请事先准备好科学的网络环境,并自行下载安装GitVscodeWSLDocker

正式开始

启动服务器

1、保证vm.max_map_count>=262144

设置最大内存映射数量不小于262144,这个值的默认值为262144。过小的值可能导致内存异常。

进入C:/user/<username>/目录,编辑(如果没有则创建).wslconfig文件。

[wsl2]
kernelCommandLine = "sysctl.vm.max_map_count=262144"

2、clone RAGFlow代码

一个除了C盘的位置(如果你只有C盘这1个盘那就在这里吧),右键单击选择在终端中打开,在Bash中逐行输入:

git clone https://github.com/infiniflow/ragflow.git
cd ragflow/docker
git checkout -f v0.16.0
code .

此时会自动打开VScode,找到.env文件,修改第84行,在最前面加上#,第87行最前面删除#。保存文件。

3、拉取Docker映像

在刚刚的终端中输入

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

等待docker自动拉取映像,此时一定要保证科学网络环境良好,多次出现错误是正常的现象,更换节点重新输入命令拉取即可。

4、启动服务器

拉取完毕后,输入

docker logs -f ragflow-server

如果看到

     ____   ___    ______ ______ __
    / __ \ /   |  / ____// ____// /____  _      __
   / /_/ // /| | / / __ / /_   / // __ \| | /| / /
  / _, _// ___ |/ /_/ // __/  / // /_/ /| |/ |/ /
 /_/ |_|/_/  |_|\____//_/    /_/ \____/ |__/|__/

这样的画面就是服务启动成功了。

笔者在这里还遇到过exec ./entrypoint.sh: exec format error。如果你是ARM架构的电脑,类似于这个issue,你需要自行构建Docker映像,请参考该文章,如果你和笔者一样是x86_64架构的电脑,可以考虑重新clone代码(这个问题笔者也没有成功解决,但是重新clone代码后没有遇到这个错误)。

5、打开交互界面

打开浏览器,输入

localhost:80

即可进入RAGFlow的web交互界面。注册登录后即可开始使用RAGFlow。

配置LLM

以使用Deepseek模型为例。

1、点击右上角English可以选择界面语言。点击右上角头像,点击模型提供商,点击模型卡片的添加模型,输入API-Key(可以在这里获取),确定后即可保存语言模型。

2、回到页面最上方,点击系统模型设置,选择聊天模型为deepseek-chat,其他保持默认不变,点击确认保存。

3、点击知识库,选择创建知识库,输入名称,点击确定,然后在弹出的页面设置参数(记得设置知识库语言)后点击保存(在页面最下方),一个新知识库就创建好了。

4、点击+新建文件,即可上传文件,上传成功后点击绿色“播放”按钮开始解析,等待解析完成后,这个文件就加入你的知识库里了。

设置AI助理并进行对话

点击聊天,点击创建助理,输入名称并设置参数(记得选择知识库)然后保存,然后新建对话,就可以开始和AI助理就你的知识库进行对话了!效果还是不错的。

在这一步你可能遇到的问题

  • 成功解析文件,但是无法进行聊天或者看不到产生的chunk:可能是后端内存太小,需要增加WSL可以使用的内存,请参考这篇文章。笔者是将WSL的内存设置成了11GB。 你的.wslconfig文件可能会增加这些内容:

    [wsl2]
    memory=11GB
  • 卡在解析文件的过程:如果是卡在开始阶段,请参考这篇文章;如果是卡在后期,请参考这篇文章

  • 其他问题,请参考FAQGitHub Issues

碎碎念

安装这个RAGFlow花了我差不多13个小时,一开始是拉取Docker映像时C盘爆满,清理半天C盘,然后发现根本清不干净,遂格式化D盘然后将C、D盘合并,但是因为格式化前没有清理干净导致Git安装不了,所以又去重置了一遍系统。然后Docker映像也是半天下载不下来,好不容易打开web界面解析完文件又不能对话。

于是笔者写了这篇博客教程,帮助更多需要本地部署RAG的朋友避免踩坑。