agentic_huge_data_base / wiki
页面 RAGFlow · 11 管理与操作·DeepWiki 中文全文译文

11 · 管理与操作(Administration and Operations)

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

项目RAGFlow 章节11 状态全文译文 模块系统架构、测试、发布与运维、接口与服务契约、界面与交互
源码线索
  • admin/client/http_client.py
  • admin/client/parser.py
  • admin/client/ragflow_cli.py
  • admin/client/ragflow_client.py
  • admin/client/user.py
  • admin/server/auth.py
  • admin/server/config.py
  • admin/server/roles.py
  • admin/server/routes.py
  • admin/server/services.py
模块标签
  • 系统架构
  • 测试、发布与运维
  • 接口与服务契约
  • 界面与交互
  • 配置治理

章节正文

管理与操作

管理与运维

相关源文件

本章引用的主要源码文件:

  • admin/client/http_client.py
  • admin/client/parser.py
  • admin/client/ragflow_cli.py
  • admin/client/ragflow_client.py
  • admin/client/user.py
  • admin/server/auth.py
  • admin/server/config.py
  • admin/server/roles.py
  • admin/server/routes.py
  • admin/server/services.py
  • agent/component/list_operations.py
  • api/db/services/system_settings_service.py
  • api/utils/health_utils.py
  • build.sh
  • conf/system_settings.json
  • internal/dao/database.go
  • internal/dao/license.go
  • internal/dao/time_record.go
  • internal/engine/engine.go
  • internal/handler/auth.go
  • internal/handler/kb.go
  • internal/handler/tenant.go
  • internal/utility/convert.go
  • test/testcases/test_web_api/test_canvas_app/test_list_operations_unit.py
  • web/src/pages/agent/canvas/node/list-operations-node.tsx
  • web/src/pages/agent/form/list-operations-form/index.tsx

本文档提供了 RAGFlow 管理与运维基础设施的技术概述。该系统采用双服务器架构进行管理(基于 Python 和基于 Go),一个用于代码执行的安全沙箱,以及一套全面的 CLI 和迁移工具,用于管理多租户环境和系统健康状态。

管理服务与 CLI

RAGFlow 拥有一个独立于核心 RAG 服务的专用管理层。该层同时以基于 Python 的服务器和基于 Go 的服务形式实现,其中 Go 实现越来越多地用于处理高性能需求和二进制分发。

管理服务器架构

管理服务器管理系统级实体,如用户、租户和全局设置。

  • Go 管理后端:在 cmd/admin_server.go 中定义,并由 internal/handler/ 中的处理器支持。它提供用于用户管理、基于角色的访问控制(RBAC)和服务监控的端点。数据库层通过 internal/dao/database.go 中的 InitDB 初始化,该函数处理 UserTenantAPIToken 等实体的自动迁移 internal/dao/database.go:114-155
  • Python 管理后端:一个基于 Flask 的实现,为用户、系统设置和环境配置提供管理服务 admin/server/routes.py:35。它利用专门的管理器,如用于生命周期操作的 UserMgr admin/server/services.py:40-124 和用于监控基础设施的 ServiceMgr admin/server/services.py:28
  • 认证:两个后端都强制要求超级用户才能访问。Python 版本使用 check_admin_auth 装饰器 admin/server/auth.py:146-159,该装饰器会验证数据库中 is_superuser 标志 admin/server/auth.py:152-153。Go 版本使用专门的中间件,确保只有授权的管理员才能访问 /api/v1/admin 前缀。
  • 用户管理:实现了列出所有用户 admin/server/services.py:42-55、创建具有特定角色的用户 admin/server/services.py:81-96 以及通过 APITokenService 管理 API 令牌 admin/server/services.py:151-170 的逻辑。
RAGFlow CLI

ragflow-cli 是一个命令行界面,用于将管理命令转换为 API 请求。它被编译为独立的二进制文件 build.sh:98

组件职责源文件
RAGFlowClient基于 ServerType(admin/user)编排命令执行admin/client/ragflow_client.py:46-49
HttpClient底层 HTTP 请求处理,支持用于基准测试的迭代admin/client/http_client.py:26-145
Lark Grammar定义 CLI 命令的类 SQL 语法(例如,LIST SERVICESACTIVATE USERadmin/client/parser.py:19-227
User Utility处理 CLI 的密码加密和登录逻辑admin/client/user.py:1-25

详情请参见 管理服务与 CLI

沙箱代码执行器

为了支持 Agent 工作流中的 Code 组件,RAGFlow 使用了一个安全的沙箱环境。这确保了用户提供的 Python 脚本在隔离环境中执行。

  • 工作流集成ListOperations 组件 agent/component/list_operations.py:48 和其他数据处理节点通常需要隔离的执行逻辑来安全地操作数组和对象。
  • 隔离策略:系统支持通过 gVisor 或类似的基于容器的隔离方式进行安全执行。
  • 代码组件:Agent 画布中的 Code 节点允许用户编写自定义的 Python 逻辑。该逻辑被传输到沙箱执行器,执行器返回结果,同时阻止对主机文件系统或网络的访问。
  • 安全性:执行受到通过环境变量(如 COMPONENT_EXEC_TIMEOUT)定义的超时保护 agent/component/list_operations.py:51

详情请参见 沙箱代码执行器

测试基础设施

RAGFlow 维护了一个多层测试套件,以确保系统在不同文档引擎和模型提供商之间的稳定性。

  • SDK 和 API 测试:对 RESTful 端点和 SDK 完整性的自动化测试。
  • 单元测试:分布在代码库中,用于测试单个组件,例如 ListOperations 逻辑 test/testcases/test_web_api/test_canvas_app/test_list_operations_unit.py
  • 集成测试:验证 Go 处理器层 internal/handler/kb.go:31 与底层文档引擎之间的交互。
  • 端到端测试:基于 Playwright 的测试,用于验证通过 Web 界面的完整用户旅程。

详情请参见 测试基础设施

迁移与实用工具

tools/ 目录和各个服务层包含用于运维维护和数据迁移的实用程序。

  • 数据库初始化:初始化默认管理员账户(admin@ragflow.io)和设置初始租户模型的逻辑 admin/server/auth.py:90-116
  • 构建系统:一个统一的 build.sh 脚本管理 C++ 分词器和 Go 二进制文件的编译,用于服务器、管理服务和 CLI build.sh:55-113
  • 健康监控health_utils.py 为 MySQL(check_db)、Redis(check_redis)以及包括 Elasticsearch、Infinity 和 OceanBase 在内的各种文档引擎提供深度探针 api/utils/health_utils.py:34-133。它提供详细的 OceanBase 指标,包括延迟、QPS 和存储使用情况 api/utils/health_utils.py:195-201

详情请参见 迁移与实用工具

系统交互图

管理控制流

此图连接了 CLI 空间与后端实体,突出了 Python 和 Go 双管理路径。

RAGFlow · 管理控制流 · 图 1
RAGFlow · 管理控制流 · 图 1

来源: cmd/admin_server.go, admin/server/routes.py:35-44, internal/dao/database.go:114-155, admin/client/ragflow_client.py:114-124

系统健康与配置探针

此图将管理健康检查映射到底层基础设施组件。

RAGFlow · 系统健康与配置探针 · 图 2
RAGFlow · 系统健康与配置探针 · 图 2

来源: api/utils/health_utils.py:34-60, api/utils/health_utils.py:72-85, api/utils/health_utils.py:104-133, admin/server/routes.py:38-41

来源: admin/server/routes.py:35-212 admin/server/services.py:40-170 admin/client/ragflow_client.py:46-152 admin/client/http_client.py:26-145 admin/client/parser.py:19-227 api/utils/health_utils.py:34-201 internal/dao/database.go:68-175 build.sh:1-113 admin/server/auth.py:90-159