agentic_huge_data_base / wiki
页面 RAGFlow · 2.2 配置管理·DeepWiki 中文全文译文

2.2 · 配置管理(Configuration Management)

复杂文档理解与引用检索 · 聚焦本章的模块关系、源码依据与实现要点。

项目RAGFlow 章节2.2 状态全文译文 模块配置治理、安装与启动、系统架构、检索、召回与索引
源码线索
  • README.md
  • README_ar.md
  • README_fr.md
  • README_id.md
  • README_ja.md
  • README_ko.md
  • README_pt_br.md
  • README_tr.md
  • README_tzh.md
  • README_zh.md
模块标签
  • 配置治理
  • 安装与启动
  • 系统架构
  • 检索、召回与索引
  • 接口与服务契约

章节正文

配置管理

配置管理

相关源文件

本 Wiki 页面的生成参考了以下文件:

  • README.md
  • README_ar.md
  • README_fr.md
  • README_id.md
  • README_ja.md
  • README_ko.md
  • README_pt_br.md
  • README_tr.md
  • README_tzh.md
  • README_zh.md
  • admin/server/admin_server.py
  • api/apps/__init__.py
  • api/db/init_data.py
  • api/ragflow_server.py
  • api/settings.py
  • api/utils/api_utils.py
  • common/doc_store/ob_conn_base.py
  • common/doc_store/ob_conn_pool.py
  • common/settings.py
  • conf/service_conf.yaml
  • docker/.env
  • docker/README.md
  • docker/service_conf.yaml.template
  • docs/guides/manage_files.md
  • docs/quickstart.mdx
  • memory/utils/aggregation_utils.py
  • memory/utils/highlight_utils.py
  • memory/utils/ob_conn.py
  • rag/utils/ob_conn.py
  • rag/utils/redis_conn.py
  • test/testcases/test_web_api/test_system_app/test_apps_init_unit.py
  • test/unit_test/memory/utils/test_ob_conn_aggregation.py
  • test/unit_test/memory/utils/test_ob_conn_highlight.py

本文档阐述了 RAGFlow 的配置系统,包括环境变量、服务配置文件以及运行时设置如何协同工作,以配置应用程序及其依赖项。有关使用这些配置进行部署的步骤,请参阅 Docker Compose 部署。有关文档引擎的特定配置,请参阅 文档引擎选择

配置架构

RAGFlow 采用三层配置系统,将基础设施设置、服务参数和运行时默认值分离开来。在启动时,系统会将这三个来源解析为一个统一的配置对象,供所有子系统使用。

标题:配置处理流程

RAGFlow · 配置架构 · 图 1
RAGFlow · 配置架构 · 图 1

来源:docker/.env:1-20, api/ragflow_server.py:91-92, api/ragflow_server.py:126-127

环境变量

环境变量主要在 docker/.env 文件中定义 docker/.env:1-180。这些变量控制着 Docker 容器的行为、网络端口映射和服务凭证。在容器入口点阶段,它们会通过模板替换的方式注入到服务配置中。

核心基础设施变量
类别变量默认值描述
文档引擎DOC_ENGINEelasticsearch可选值:elasticsearchinfinityoceanbaseopensearchseekdb docker/.env:13-20
ES_HOSTes01Elasticsearch 主机名 docker/.env:34-34
ES_PORT1200Elasticsearch 外部端口 docker/.env:38-38
ELASTIC_PASSWORDinfini_rag_flowElasticsearch 密码 docker/.env:42-42
INFINITY_HOSTinfinityInfinity 主机名 docker/.env:68-68
数据库MYSQL_HOSTmysqlMySQL 主机名 docker/.env:113-113
MYSQL_PORT3306MySQL 内部连接端口 docker/.env:118-118
MYSQL_PASSWORDinfini_rag_flowMySQL root 密码 docker/.env:111-111
MYSQL_DBNAMErag_flowMySQL 数据库名称 docker/.env:115-115
对象存储MINIO_HOSTminioMinIO 主机名 docker/.env:125-125
MINIO_USERrag_flowMinIO 用户名 docker/.env:135-135
MINIO_PASSWORDinfini_rag_flowMinIO 密码 docker/.env:138-138
缓存REDIS_HOSTredisRedis 主机名 docker/.env:141-141
REDIS_PASSWORDinfini_rag_flowRedis 密码 docker/.env:146-146
部署控制变量

RAGFlow 使用环境变量来切换功能和管理资源分配:

# DeepDoc 推理的设备选择(cpu 或 gpu)
DEVICE=${DEVICE:-cpu} # [docker/.env:26-26]

# Docker Compose 配置文件(根据 DOC_ENGINE 和 DEVICE 自动构建)
COMPOSE_PROFILES=${DOC_ENGINE},${DEVICE} # [docker/.env:28-28]

# Docker 容器的资源限制
MEM_LIMIT=8073741824 # [docker/.env:65-65]

# 服务器部署模式(python 或与 Go 混合模式)
API_PROXY_SCHEME=python # [docker/.env:159-159]

来源:docker/.env:26-159

服务配置模板

docker/service_conf.yaml.template 文件是主配置蓝图。它使用 ${VAR:-default} 语法,允许环境变量覆盖默认设置。

文档引擎抽象

该配置通过 DOC_ENGINE 环境变量,实现了在不同向量和全文检索引擎之间的无缝切换。

标题:文档引擎配置映射

RAGFlow · 文档引擎抽象 · 图 2
RAGFlow · 文档引擎抽象 · 图 2

来源:docker/.env:13-20, docker/.env:45-48

配置加载与初始化

启动顺序

ragflow_server.py 启动时,会遵循一个严格的初始化顺序:

  1. 日志器初始化:调用 init_root_logger("ragflow_server") api/ragflow_server.py:75-75
  2. 配置展示:调用 show_configs()settings.print_rag_settings() api/ragflow_server.py:90-92
  3. 设置初始化:执行 settings.init_settings(),将生成的 YAML 文件中的值加载到内存中 api/ragflow_server.py:91-91
  4. 数据库同步:通过 init_web_db() 初始化数据表,并通过 init_web_data() 初始化默认数据 api/ragflow_server.py:100-101
  5. 运行时环境:调用 RuntimeConfig.init_env() 来设置全局执行上下文 api/ragflow_server.py:126-126
超级用户初始化

RAGFlow 支持通过命令行标志 --init-superuser 自动创建超级用户 api/ragflow_server.py:113-113。这会触发 init_superuser() 函数,该函数会设置初始管理账户和默认的租户模型 api/db/init_data.py:50-94。初始化逻辑还会尝试验证与已配置的大语言模型(LLM)和嵌入向量模型的连接 api/db/init_data.py:96-109

配置优先级

配置值的解析遵循以下优先级顺序:

  1. 系统环境变量:优先级最高,通常通过 docker compose 注入。
  2. .env 文件:在 docker/.env 中定义的变量。
  3. YAML 配置conf/service_conf.yaml(由模板生成)中的值。
  4. 模板默认值service_conf.yaml.template 中硬编码的默认值。

标题:配置实体映射

RAGFlow · 配置优先级 · 图 3
RAGFlow · 配置优先级 · 图 3

来源:docker/.env:111-111, docker/.env:20-20, docker/.env:152-152, api/ragflow_server.py:122-123, api/ragflow_server.py:127-127

配置参考:端口

服务内部端口环境变量
RAGFlow HTTP9380SVR_HTTP_PORT docker/.env:152-152
管理服务9381ADMIN_SVR_HTTP_PORT docker/.env:153-153
MCP 服务器9382SVR_MCP_PORT docker/.env:154-154
Go 服务器9384GO_HTTP_PORT docker/.env:155-155
MySQL3306MYSQL_PORT docker/.env:118-118
Redis6379REDIS_PORT docker/.env:144-144

来源:docker/.env:118-155