导航菜单

  • 1.概述
  • 2.功能与能力
  • 3.系统架构
  • 4.部署与配置
  • 5.Docker 部署
  • 6.环境配置
  • 7.外部服务设置
  • 8.AI模型与LLM配置
  • 9.核心系统
  • 10.文档处理流水线
  • 11.RAG引擎与搜索
  • 12.知识库管理系统
  • 13.对话与对话系统
  • 14.翻译与跨语言支持
  • 15.用户界面
  • 16.主应用界面
  • 17.管理仪表盘
  • 18.文档编写界面
  • 19.知识库内容管理
  • 20.国际化与本地化
  • 21.管理功能
  • 22.用户与团队管理
  • 23.文件和存储管理
  • 24.知识库管理
  • 25.系统监控与健康状态
  • 26.API 参考
  • 27.知识库API
  • 28.对话与聊天API
  • 29.文件管理API
  • 30.管理与Admin API
  • 31.开发指南
  • 32.前端开发
  • 33.后端服务架构
  • 34.数据库模式与模型
  • 35.基础设施与文档
  • 36.快速入门指南
  • 1. 概述
  • 2. 服务架构
  • 3. MySQL 数据库配置
    • 3.1 连接参数
    • 3.2 环境变量配置
    • 3.3 Docker Compose 配置
    • 3.4 数据库初始化
    • 3.5 连接验证
  • 4. Elasticsearch 配置
    • 4.1 连接参数
    • 4.2 环境变量配置
    • 4.3 Docker Compose 配置
    • 4.4 索引管理
    • 4.5 性能优化
  • 5. MinIO 对象存储配置
    • 5.1 连接参数
    • 5.2 环境变量配置
    • 5.3 Docker Compose 配置
    • 5.4 存储桶配置
    • 5.5 存储桶验证
  • 6. Redis 缓存配置
    • 6.1 连接参数
    • 6.2 环境变量配置
    • 6.3 Docker Compose 配置
    • 6.4 连接验证
    • 6.5 缓存管理
  • 7. 服务依赖关系
    • 7.1 启动顺序
    • 7.2 健康检查
    • 7.3 服务连接测试
  • 8. 生产环境配置建议
    • 8.1 安全配置
    • 8.2 性能优化
    • 8.3 备份策略
  • 9. 故障排除
    • 9.1 常见问题
    • 9.2 日志查看
    • 9.3 性能监控
  • 10. 总结

# Ragflow-Plus 外部服务设置教程

本文档详细介绍了 Ragflow-Plus 所需的外部基础设施服务的配置和设置。这些服务提供数据存储、搜索能力、对象存储和缓存功能,支持核心 RAG 操作。

有关 AI 模型配置,请参阅 AI 模型与 LLM 配置。有关 Docker 部署详情,请参阅 Docker 部署。

1. 概述 #

Ragflow-Plus 依赖四个主要的外部服务,它们构成了系统的基础设施骨干:

  • MySQL - 关系型数据库,用于存储元数据、用户数据和系统配置
  • Elasticsearch - 搜索引擎,用于文档索引和向量相似度搜索
  • MinIO - S3 兼容的对象存储,用于文件、图像和二进制资源
  • Redis - 内存缓存和消息队列,用于会话管理和任务协调

2. 服务架构 #

以下架构图展示了外部服务如何与 Ragflow-Plus 应用容器集成:

┌─────────────────────────────────────────┐
│      应用层 (Application Layer)            │
│  ┌──────────┐  ┌──────────┐  ┌──────┐  │
│  │ ragflow  │  │ mgmt     │  │ mgmt │  │
│  │ server   │  │ frontend │  │backend│  │
│  └──────────┘  └──────────┘  └──────┘  │
└─────────────────────────────────────────┘
              ↕
┌─────────────────────────────────────────┐
│      外部服务 (External Services)        │
│  ┌──────────┐  ┌──────────┐  ┌──────┐  │
│  │ MySQL    │  │ Elastic  │  │MinIO │  │
│  │ :3306    │  │ search   │  │:9000 │  │
│  │          │  │ :9200    │  │      │  │
│  └──────────┘  └──────────┘  └──────┘  │
│                                          │
│  ┌──────────┐                          │
│  │ Redis    │                          │
│  │ :6379    │                          │
│  └──────────┘                          │
└─────────────────────────────────────────┘

3. MySQL 数据库配置 #

MySQL 作为主要的关系型数据库,存储用户账户、知识库元数据、文档信息和系统配置。

3.1 连接参数 #

参数 默认值 说明
主机 mysql (Docker) / localhost (本地) 数据库主机地址
端口 3306 (Docker) / 5455 (本地) 数据库端口
数据库名 rag_flow 数据库名称
用户名 root 数据库用户名
密码 infini_rag_flow 数据库密码(可通过环境变量配置)

3.2 环境变量配置 #

在 .env 文件或 Docker Compose 中配置:

# MySQL 配置
MYSQL_HOST=mysql
MYSQL_PORT=3306
MYSQL_DBNAME=rag_flow
MYSQL_USER=root
MYSQL_PASSWORD=infini_rag_flow

3.3 Docker Compose 配置 #

mysql:
  image: mysql:8.0
  container_name: ragflow-mysql
  environment:
    MYSQL_ROOT_PASSWORD: ${MYSQL_PASSWORD:-infini_rag_flow}
    MYSQL_DATABASE: ${MYSQL_DBNAME:-rag_flow}
  ports:
    - "3306:3306"
  volumes:
    - mysql_data:/var/lib/mysql
  networks:
    - ragflow

3.4 数据库初始化 #

系统首次启动时会自动创建必要的表结构。如果需要手动初始化,可以:

  1. 连接到 MySQL 容器:

    docker exec -it ragflow-mysql mysql -uroot -p
  2. 创建数据库(如果不存在):

    CREATE DATABASE IF NOT EXISTS rag_flow CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

3.5 连接验证 #

验证 MySQL 连接是否正常:

# 在 Docker 环境中
docker exec -it ragflow-mysql mysql -uroot -p${MYSQL_PASSWORD} -e "SHOW DATABASES;"

# 在本地环境中
mysql -h localhost -P 5455 -uroot -p -e "SHOW DATABASES;"

4. Elasticsearch 配置 #

Elasticsearch 提供文档索引和向量相似度搜索功能,是 RAG 系统的核心组件。

4.1 连接参数 #

参数 默认值 说明
主机 es01 (Docker) / localhost (本地) Elasticsearch 主机地址
端口 9200 Elasticsearch HTTP 端口
用户名 elastic Elasticsearch 用户名
密码 infini_rag_flow Elasticsearch 密码(可通过环境变量配置)

4.2 环境变量配置 #

# Elasticsearch 配置
ES_HOST=es01
ES_PORT=9200
ES_USER=elastic
ELASTIC_PASSWORD=infini_rag_flow
ES_USE_SSL=false

4.3 Docker Compose 配置 #

es01:
  image: docker.elastic.co/elasticsearch/elasticsearch:8.11.3
  container_name: ragflow-es-01
  environment:
    - node.name=es01
    - cluster.name=es-docker-cluster
    - discovery.type=single-node
    - bootstrap.memory_lock=true
    - "ES_JAVA_OPTS=-Xms8g -Xmx8g"
    - ELASTIC_PASSWORD=${ELASTIC_PASSWORD:-infini_rag_flow}
  ulimits:
    memlock:
      soft: -1
      hard: -1
  volumes:
    - es01_data:/usr/share/elasticsearch/data
  ports:
    - "9200:9200"
  networks:
    - ragflow

4.4 索引管理 #

系统会自动创建必要的索引。可以通过 API 查看索引状态:

# 查看所有索引
curl -u elastic:${ELASTIC_PASSWORD} http://localhost:9200/_cat/indices?v

# 查看集群健康状态
curl -u elastic:${ELASTIC_PASSWORD} http://localhost:9200/_cluster/health?pretty

4.5 性能优化 #

对于生产环境,建议调整以下参数:

  • 内存设置:根据服务器内存调整 ES_JAVA_OPTS(建议至少 4GB)
  • 分片设置:根据数据量调整索引分片数
  • 副本设置:根据可用性需求设置副本数

5. MinIO 对象存储配置 #

MinIO 提供 S3 兼容的对象存储服务,用于存储文件、图像和二进制资源。

5.1 连接参数 #

参数 默认值 说明
主机 minio (Docker) / localhost (本地) MinIO 主机地址
端口 9000 MinIO API 端口
控制台端口 9001 MinIO 控制台端口
访问密钥 rag_flow MinIO 访问密钥
秘密密钥 infini_rag_flow MinIO 秘密密钥

5.2 环境变量配置 #

# MinIO 配置
MINIO_HOST=minio
MINIO_PORT=9000
MINIO_USER=rag_flow
MINIO_PASSWORD=infini_rag_flow

5.3 Docker Compose 配置 #

minio:
  image: minio/minio:latest
  container_name: ragflow-minio
  command: server /data --console-address ":9001"
  environment:
    MINIO_ROOT_USER: ${MINIO_USER:-rag_flow}
    MINIO_ROOT_PASSWORD: ${MINIO_PASSWORD:-infini_rag_flow}
  ports:
    - "9000:9000"
    - "9001:9001"
  volumes:
    - minio_data:/data
  networks:
    - ragflow

5.4 存储桶配置 #

系统会自动创建必要的存储桶。可以通过 MinIO 控制台管理:

  1. 访问 MinIO 控制台:http://localhost:9001
  2. 使用配置的用户名和密码登录
  3. 查看和管理存储桶

5.5 存储桶验证 #

验证存储桶是否创建成功:

# 使用 MinIO 客户端
mc alias set local http://localhost:9000 rag_flow infini_rag_flow
mc ls local/

6. Redis 缓存配置 #

Redis 提供内存缓存和消息队列功能,用于会话管理和任务协调。

6.1 连接参数 #

参数 默认值 说明
主机 redis (Docker) / localhost (本地) Redis 主机地址
端口 6379 Redis 端口
数据库 1 Redis 数据库编号
密码 infini_rag_flow Redis 密码(可通过环境变量配置)

6.2 环境变量配置 #

# Redis 配置
REDIS_HOST=redis
REDIS_PORT=6379
REDIS_PASSWORD=infini_rag_flow

6.3 Docker Compose 配置 #

redis:
  image: redis:7-alpine
  container_name: ragflow-redis
  command: redis-server --requirepass ${REDIS_PASSWORD:-infini_rag_flow}
  ports:
    - "6379:6379"
  volumes:
    - redis_data:/data
  networks:
    - ragflow

6.4 连接验证 #

验证 Redis 连接是否正常:

# 在 Docker 环境中
docker exec -it ragflow-redis redis-cli -a ${REDIS_PASSWORD} PING

# 在本地环境中
redis-cli -h localhost -p 6379 -a ${REDIS_PASSWORD} PING

6.5 缓存管理 #

查看 Redis 缓存状态:

# 查看所有键
redis-cli -a ${REDIS_PASSWORD} KEYS "*"

# 查看内存使用情况
redis-cli -a ${REDIS_PASSWORD} INFO memory

7. 服务依赖关系 #

7.1 启动顺序 #

系统服务应按以下顺序启动:

  1. 基础设施服务:MySQL、Elasticsearch、MinIO、Redis
  2. 应用服务:ragflowplus-server、ragflowplus-management-backend
  3. 前端服务:ragflowplus-management-frontend

7.2 健康检查 #

系统提供了健康检查机制,确保服务正常运行:

# 检查所有服务状态
docker-compose ps

# 检查服务日志
docker-compose logs -f [service_name]

7.3 服务连接测试 #

测试各个服务的连接:

# MySQL 连接测试
docker exec -it ragflow-mysql mysql -uroot -p${MYSQL_PASSWORD} -e "SELECT 1;"

# Elasticsearch 连接测试
curl -u elastic:${ELASTIC_PASSWORD} http://localhost:9200/

# MinIO 连接测试
curl http://localhost:9000/minio/health/live

# Redis 连接测试
docker exec -it ragflow-redis redis-cli -a ${REDIS_PASSWORD} PING

8. 生产环境配置建议 #

8.1 安全配置 #

  1. 密码管理:

    • 使用强密码
    • 通过环境变量或密钥管理服务管理密码
    • 定期轮换密码
  2. 网络隔离:

    • 使用 Docker 网络隔离服务
    • 限制外部访问端口
    • 使用防火墙规则
  3. SSL/TLS:

    • 为 Elasticsearch 启用 SSL/TLS
    • 为 MinIO 启用 HTTPS
    • 使用证书管理工具

8.2 性能优化 #

  1. MySQL:

    • 调整 innodb_buffer_pool_size
    • 优化查询索引
    • 定期清理日志
  2. Elasticsearch:

    • 根据数据量调整堆内存
    • 优化索引分片和副本
    • 定期清理旧索引
  3. MinIO:

    • 使用分布式模式
    • 配置存储策略
    • 启用压缩
  4. Redis:

    • 配置内存限制
    • 使用持久化策略
    • 优化数据结构

8.3 备份策略 #

  1. MySQL 备份:

    # 定期备份数据库
    docker exec ragflow-mysql mysqldump -uroot -p${MYSQL_PASSWORD} rag_flow > backup.sql
  2. Elasticsearch 备份:

    • 使用快照和恢复功能
    • 配置定期快照策略
  3. MinIO 备份:

    • 使用 MinIO 的复制功能
    • 定期同步到其他存储
  4. Redis 备份:

    • 启用 RDB 或 AOF 持久化
    • 定期备份持久化文件

9. 故障排除 #

9.1 常见问题 #

  1. 服务无法启动:

    • 检查端口是否被占用
    • 查看服务日志
    • 验证环境变量配置
  2. 连接超时:

    • 检查网络配置
    • 验证服务是否正常运行
    • 检查防火墙设置
  3. 认证失败:

    • 验证用户名和密码
    • 检查环境变量是否正确设置
    • 查看服务日志

9.2 日志查看 #

查看各个服务的日志:

# MySQL 日志
docker logs ragflow-mysql

# Elasticsearch 日志
docker logs ragflow-es-01

# MinIO 日志
docker logs ragflow-minio

# Redis 日志
docker logs ragflow-redis

9.3 性能监控 #

监控各个服务的性能指标:

# 查看容器资源使用
docker stats

# Elasticsearch 集群状态
curl -u elastic:${ELASTIC_PASSWORD} http://localhost:9200/_cluster/stats?pretty

# Redis 内存使用
redis-cli -a ${REDIS_PASSWORD} INFO memory

10. 总结 #

外部服务是 Ragflow-Plus 系统的基础设施,正确配置和管理这些服务对于系统的稳定运行至关重要。本文档提供了:

  • 四个核心外部服务的详细配置说明
  • Docker 和本地环境的配置方法
  • 生产环境的最佳实践
  • 故障排除和性能优化建议

通过遵循本文档的指导,您可以成功配置和管理 Ragflow-Plus 所需的外部服务,确保系统的高可用性和性能。

访问验证

请输入访问令牌

Token不正确,请重新输入