【AI工具箱】RAGFlow:打造私有的专业知识库

RAGFlow 是什么?

想象一下,你想让 AI 回答公司内部文档、产品手册、技术资料里的问题,但这些资料 ChatGPT 不知道。你需要一个"智能图书管理员",它能:

RAGFlow 就是这样一个"智能图书管理员"!

什么是 RAG?

RAG = Retrieval Augmented Generation(检索增强生成),简单来说:

  1. 1. 📚 检索:从你的文档库中找到相关内容
  2. 2. 🤖 生成:把找到的内容交给 AI,生成准确的答案

传统 AI vs RAG

RAGFlow 的核心优势

使用场景:

官方文档

完整的使用教程请参考:https://ragflow.io/docs/dev/


本地部署教程

为什么要本地部署?

前提条件: 确保你已经安装了 Docker(查看安装教程[1]

第一步:下载代码


    
    
    
  # 克隆 RAGFlow 仓库
git clone https://github.com/infiniflow/ragflow.git

# 进入项目目录

cd
 ragflow/docker

第二步:修改配置(可选但推荐)

1. 修改默认端口

作用: 如果默认端口被占用,可以改成其他端口。

文件位置: docker-compose.yml

2. 修改 Redis 端口(如果同时运行 Dify)

作用: 避免与 Dify 的 Redis 端口冲突。

文件位置: docker-compose.yml

3. 调整内存限制(默认 8GB)

作用: 根据你的电脑配置调整内存使用。

说明:

文件位置: docker/.env

4. 配置线程数(优化性能)

作用: 根据 CPU 核心数调整,提高处理速度。

建议:

文件位置: docker/entrypoint.sh

第三步:启动 RAGFlow

启动命令:


    
    
    
  # 确保在 ragflow/docker 目录下
docker compose -p ragflow up -d

说明:

访问地址: 启动成功后,在浏览器打开 http://localhosthttp://localhost:你的端口号

首次访问:

常用管理命令

查看运行状态


    
    
    
  docker compose -p ragflow ps

作用: 查看所有容器是否正常运行。

重启服务


    
    
    
  docker compose -p ragflow restart

使用场景: 修改配置后需要重启生效。

停止服务


    
    
    
  docker compose -p ragflow down

注意: 这个命令会停止并删除容器,但数据会保留。


配置反向代理(进阶,使用域名访问)

什么是反向代理?
让 RAGFlow 可以通过域名(如 rag.yourdomain.com)访问,而不是 IP 地址。

适用场景: 如果你有自己的域名,想让 RAGFlow 更专业、更好记。

Nginx 配置示例:


    
    
    
  # 禁用用户注册(可选,防止陌生人注册)
location
 /v1/user/register {
    deny
 all;
    return
 403;
}

# 反向代理配置

location
 ^~ / {
    proxy_pass
 http://127.0.0.1:8012;
    proxy_set_header
 Host $http_host;
    proxy_set_header
 X-Real-IP $remote_addr;
    proxy_set_header
 X-Real-Port $remote_port;
    proxy_set_header
 X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header
 X-Forwarded-Proto $scheme;
    proxy_set_header
 X-Forwarded-Host $host;
    proxy_set_header
 X-Forwarded-Port $server_port;
    proxy_set_header
 REMOTE-HOST $remote_addr;

    proxy_connect_timeout
 60s;
    proxy_send_timeout
 600s;
    proxy_read_timeout
 600s;
    proxy_http_version
 1.1;
    proxy_set_header
 Upgrade $http_upgrade;
    proxy_set_header
 Connection $connection_upgrade;
}

注意:8012 改成你实际使用的端口。


数据备份与迁移

重要提示: RAGFlow 的所有数据(知识库、文档、配置等)都保存在 Docker volumes 中。

备份方法:

查看 Docker volumes 位置:

备份命令:


    
    
    
  # 停止服务
docker compose -p ragflow down

# 备份数据卷

docker run --rm -v ragflow_es_data:/data -v $(pwd):/backup alpine tar czf /backup/ragflow-backup.tar.gz -C /data .

# 重启服务

docker compose -p ragflow up -d

恢复数据:


    
    
    
  # 停止服务
docker compose -p ragflow down

# 恢复数据卷

docker run --rm -v ragflow_es_data:/data -v $(pwd):/backup alpine sh -c "cd /data && tar xzf /backup/ragflow-backup.tar.gz"

# 重启服务

docker compose -p ragflow up -d

开启 MCP 集成(v0.18.0+)

什么是 MCP?

MCP (Model Context Protocol) 让 AI 工具(如 Claude Desktop、Windsurf)可以直接调用 RAGFlow 的知识库。

使用场景:

第一步:获取 API 密钥

  1. 1. 登录 RAGFlow 后台
  2. 2. 进入设置页面
  3. 3. 找到并复制 API Key

第二步:配置 Docker Compose

详细教程: https://ragflow.io/docs/dev/launch_mcp_server#launch-from-docker

操作步骤:

  1. 1. 打开文件:docker/docker-compose.yml
  2. 2. 找到 MCP 相关配置(被注释的部分)
  3. 3. 取消注释并填写你的 API 密钥

配置示例:


    
    
    
  # example to setup MCP server
command:

  -
 --enable-mcpserver
  -
 --mcp-host=0.0.0.0
  -
 --mcp-port=9382
  -
 --mcp-base-url=http://127.0.0.1:39004
  -
 --mcp-script-path=/ragflow/mcp/server/server.py
  -
 --mcp-mode=self-host
  -
 --mcp-host-api-key=ragflow-你的API密钥  # 替换成你的API密钥
container_name:
 ragflow-server
ports:

  -
 ${SVR_HTTP_PORT}:9380
  -
 8012:80
  -
 4432:443
  -
 5678:5678
  -
 5679:5679
  -
 39004:9382  # MCP 端口映射(宿主机端口:容器端口)

配置说明:


总结

通过这篇教程,你应该已经掌握了:

  1. 1. ✅ RAG 和 RAGFlow 的概念:检索增强生成,打造私有知识库
  2. 2. ✅ 本地部署方法:使用 Docker 快速部署
  3. 3. ✅ 性能优化配置:内存限制、线程数、端口设置
  4. 4. ✅ 数据管理:备份和恢复数据的完整方法
  5. 5. ✅ MCP 集成:让 AI 工具直接访问你的知识库

下一步建议:

使用提示:

祝你使用愉快!🎉

引用链接

[1] 查看安装教程: https://github.com/infiniflow/ragflow/blob/main/README_zh.md#-%E5%90%AF%E5%8A%A8%E6%9C%8D%E5%8A%A1%E5%99%A8
[2] 官方文档: https://ragflow.io/docs/dev/