
人工智能AI AgentAgent 编排RPA后端前端企业应用【免费下载链接】astron-agentEnterprise-grade, commercial-friendly agentic workflow platform for building next-generation SuperAgents.项目地址https://gitcode.com/gh_mirrors/as/astron-agent点击查看免费下载本指南围绕开源仓库 docker/ragflow 目录下的部署体系展开系统讲解 astron-agent 所依赖的 RAGFlow 引擎如何通过 Docker Compose 一键拉起、其 Docker 环境变量与service_conf.yaml服务配置的完整语义以及基于 Lets Encrypt 的 HTTPS 生产部署流程。读完本文你将能够独立完成 RAGFlow 的容器化部署与调参并理解 astron-agent 知识服务Knowledge Service如何通过RAGFLOW_BASE_URL、RAGFLOW_API_TOKEN两个关键配置接入这一 RAG 引擎。一、部署架构两份 Compose 文件的分工在 docker/ragflow 目录下RAGFlow 的 Docker 编排由两个文件协同完成docker-compose.yml负责拉起 RAGFlow 主服务ragflow容器包含 HTTP API、nginx 前端、日志卷、MCP 扩展端口等docker-compose-base.yml负责拉起 RAGFlow 的全部依赖中间件——Elasticsearch/OpenSearch/Infinity向量检索、MySQL、MinIO、Redis以及可选的 sandbox 执行器。两者的关系通过include指令串联docker-compose.ymlinclude: - ./docker-compose-base.yml因此直接执行docker compose up -d即可同时启动全部依赖与 RAGFlow 主服务。[!CAUTION] 仓库明确声明不主动维护docker-compose-CN-oc9.yml、docker-compose-gpu-CN-oc9.yml与docker-compose-gpu.yml使用这些文件需要自行承担风险欢迎通过 Pull Request 改进它们。常规部署请以docker-compose.ymldocker-compose-base.yml为准。依赖中间件一览来自 docker-compose-base.yml服务容器名说明es01ragflow-es-01Elasticsearch默认elasticsearch:${STACK_VERSION}profile 为elasticsearch单节点模式opensearch01ragflow-opensearch-01OpenSearch 2.19.1profile 为opensearch替代 Elasticsearch 的备选检索后端infinityragflow-infinityInfinity 向量数据库 v0.6.0-dev5profile 为infinity配置来自infinity_conf.tomlmysqlragflow-mysqlMySQL 8.0.39承载元数据与业务数据挂载 init.sqlCREATE DATABASE IF NOT EXISTS rag_flowminioragflow-minioMinIO 对象存储存储文档与切片文件redisragflow-redisValkey 8Redis 协议兼容作为缓存与任务队列sandbox-executor-managerragflow-sandbox-executor-manager沙箱执行器管理服务profile 为sandbox需挂载/var/run/docker.sock以privileged模式运行注意 Elasticsearch、OpenSearch、Infinity 三个检索后端通过 Composeprofiles隔离默认情况下仅 MySQL、MinIO、Redis 会被启动如需启用某个检索后端需在启动命令中显式指定 profile例如docker compose --profile elasticsearch up -d。所有中间件均通过私有 bridge 网络ragflow互联对宿主机只暴露127.0.0.1回环维护端口如ES_PORT、MYSQL_PORT、MINIO_PORT、REDIS_PORT主服务端口SVR_HTTP_PORT才向外部开放这从 docker-compose-base.yml 的ports绑定写法中可以清楚看到。二、Docker 环境变量详解.envRAGFlow 容器化部署的全部关键参数集中在.env文件中由docker compose自动读取。下表按原文档分类完整列出各项变量及其默认值与用途Elasticsearch变量默认值说明STACK_VERSION8.11.3Elasticsearch 镜像版本ES_PORT1200Elasticsearch 宿主机回环维护端口容器间走私有 Compose 网络ELASTIC_PASSWORD无Elasticsearch 密码对应服务配置中es.passwordKibana变量默认值说明KIBANA_PORT6601向宿主机暴露 Kibana 的端口允许外部访问容器内服务KIBANA_USERrag_flowKibana 用户名KIBANA_PASSWORDinfini_rag_flowKibana 密码资源管理变量默认值说明MEM_LIMIT8073741824单个 Docker 容器运行时可使用的最大内存字节约 7.5 GiBMySQL变量默认值说明MYSQL_PASSWORD无MySQL 密码MYSQL_PORT5455MySQL 宿主机回环维护端口容器间走私有网络MinIO变量默认值说明MINIO_CONSOLE_PORT9001MinIO 控制台宿主机回环端口MINIO_PORT9000MinIO API 宿主机回环端口MINIO_USER无MinIO 用户名MINIO_PASSWORD无MinIO 密码Redis变量默认值说明REDIS_PORT6379Redis 宿主机回环端口REDIS_PASSWORD无Redis 密码RAGFlow变量默认值说明SVR_HTTP_PORT9380向宿主机暴露 RAGFlow HTTP API 的端口允许外部访问RAGFLOW_IMAGEinfiniflow/ragflow:v0.20.5-slim镜像版本-slim为不含嵌入模型的最小版infiniflow/ragflow:v0.20.5则内置BAAI/bge-large-zh-v1.5与maidalun1020/bce-embedding-base_v1两个嵌入模型[!TIP] 若无法直接下载 RAGFlow 官方镜像可使用国内镜像源nightly-slim 版RAGFLOW_IMAGEswr.cn-north-4.myhuaweicloud.com/infiniflow/ragflow:nightly-slim或RAGFLOW_IMAGEregistry.cn-hangzhou.aliyuncs.com/infiniflow/ragflow:nightly-slimnightly 版RAGFLOW_IMAGEswr.cn-north-4.myhuaweicloud.com/infiniflow/ragflow:nightly或RAGFLOW_IMAGEregistry.cn-hangzhou.aliyuncs.com/infiniflow/ragflow:nightly时区、镜像站点与平台适配变量默认值说明TIMEZONEAsia/Shanghai本地时区HF_ENDPOINT禁用默认注释huggingface.co 镜像站点无法直连 Hugging Face 主域名时可取消注释启用MACOS禁用默认注释macOS 平台优化开关运行于 macOS 时取消注释文件与批量处理调优变量默认值说明MAX_CONTENT_LENGTH128M内置上限单个上传文件的最大字节数修改后必须同步更新 nginx/nginx.conf 中的client_max_body_size二者需保持一致DOC_BULK_SIZE4文档解析时单批处理的文档切片数量EMBEDDING_BATCH_SIZE16嵌入向量化时单批处理的文本切片数量这些变量在 docker-compose.yml 中通过${VAR}引用env_file: .env指定加载来源HF_ENDPOINT、MACOS使用了${VAR-}的默认空值语法未设置时为空字符串因而保持禁用状态。三、服务配置 service_conf.yaml 详解service_conf.yaml.template 是 RAGFlow 系统级配置模板由 API server 与 task executor 共同使用。在容器化部署中entrypoint.sh 会在启动时逐行读取该模板并通过eval echo \$line\完成环境变量替换自动生成最终的service_conf.yaml写入/ragflow/conf/目录。[!IMPORTANT] 要让容器处理本地修改过的service_conf.yaml.template必须将本地模板挂载进容器。这一点在 docker-compose.yml 中有明确注释与卷映射./service_conf.yaml.template:/ragflow/conf/service_conf.yaml.template。ragflowAPI 服务host容器内 API server 监听 IP默认0.0.0.0http_port容器内 API 服务端口默认9380模板中写死与SVR_HTTP_PORT的宿主机映射配对。mysql键默认值说明namerag_flow数据库名userrootMySQL 用户名passwordinfini_rag_flowMySQL 密码模板默认值hostmysql容器网络内的 MySQL 主机名port3306MySQL 容器内服务端口max_connections900最大并发连接数stale_timeout300超时时间秒max_allowed_packet1073741824允许的最大数据包字节对应MYSQL_MAX_PACKET变量minio键说明userMinIO 用户名passwordMinIO 密码host容器内 MinIO 服务地址与端口默认minio:9000es / os / infinity / redis检索与缓存后端模板同样支持 Elasticsearch、OpenSearch、Infinity 与 Redis 的配置项es.hosts、os.hosts、infinity.uri、redis.host并各自提供ES_HOST、OS_HOST、INFINITY_HOST、REDIS_HOST等环境变量覆盖点。PostgreSQL 配置以注释形式预留postgres段。oss阿里云对象存储键说明access_keyOSS 访问密钥 IDsecret_keyOSS 访问密钥endpoint_urlOSS 服务端点 URLregionBucket 所在区域bucket存储文件的 Bucket 名称需要将所有文件存于指定 Bucket 时必配prefix_path可选文件名前缀路径便于在 Bucket 内组织文件s3S3 兼容对象存储键说明access_keyS3 访问密钥 IDsecret_keyS3 访问密钥endpoint_urlS3 兼容服务端点 URL使用 S3 兼容协议而非 AWS 默认端点时必配bucketS3 Bucket 名称regionBucket 所在 AWS 区域用于请求路由到正确数据中心signature_version可选请求签名版本常用v4addressing_style可选寻址风格path或virtualprefix_path可选Bucket 内文件名前缀路径模板中还预留了azuresas/spn 两种认证与opendal通用存储抽象配置段。当需要把对象存储从 MySQL 默认方案切换到 S3/OSS/Azure 等时取消opendal.scheme注释并按需填写对应存储参数即可。oauth第三方账号登录OAuth 配置用于通过第三方账号注册/登录 RAGFlow支持多频道channel。模板示例包含oauth2、oidc、github三个频道各频道字段如下键说明type认证类型oauth2、oidc、github默认oauth2提供issuer参数时默认oidcicon图标 IDgithub、sso默认ssodisplay_name频道名称默认取频道 ID 的 Title Case 形式client_id必填客户端应用唯一标识client_secret必填客户端应用密钥用于与认证服务器通信authorization_url获取用户授权的基础 URLtoken_url用授权码换取访问令牌的 URLuserinfo_url获取用户信息用户名、邮箱等的 URLissuer身份提供方基础 URLOIDC 客户端可通过issuer动态获取authorization_url、token_url、userinfo_url元数据scope请求的权限范围空格分隔字符串如openid profile emailredirect_uri必填认证流程结束后授权服务器重定向的 URI必须与认证服务器注册的回调 URI 一致格式为https://your-app.com/v1/user/oauth/callback/channel本地配置可直接使用http://127.0.0.1:80/v1/user/oauth/callback/channeluser_default_llm新用户默认模型默认禁用启用时取消 service_conf.yaml.template 中对应注释factoryLLM 供应商可选OpenAI、DeepSeek、Moonshot、Tongyi-Qianwen、VolcEngine、ZHIPU-AIapi_key对应供应商的 API 密钥需在线申请。[!TIP] 若此处不设置默认 LLM可在 RAGFlow UI 的Settings页面为每个用户单独配置默认模型。四、容器启动参数与 MCP 扩展entrypoint.shentrypoint.sh 是 ragflow 容器的启动脚本支持若干命令行参数控制启动组件参数作用--disable-webserver禁用 Web 服务nginx ragflow_server--disable-taskexecutor禁用任务执行器task executor worker--enable-mcpserver启用 MCP 服务器--consumer-no-begnum/--consumer-no-endnum消费者区间起止编号区间模式--workersnum任务执行器数量非区间模式默认 1--host-idstring宿主机唯一 ID默认取 hostnamehostname 超过 32 字符时退化为其 MD5--mcp-host/--mcp-port/--mcp-base-url/--mcp-mode/--mcp-host-api-key/--mcp-script-pathMCP 服务器相关参数--no-transport-sse-enabled禁用旧版 SSE 传输端点/sse、/messages/--no-transport-streamable-http-enabled禁用 Streamable HTTP 传输端点/mcp--no-json-response关闭 Streamable HTTP 的 JSON 响应模式其中 Host 模式需与--no-transport-streamable-http-enabled组合host streamable-http 暂不支持。在 docker-compose.yml 中对应 MCP 配置以注释示例给出并在端口映射中预留9382:9382作为 MCP 入口容器内docker_port必须与--mcp-port设置一致。脚本默认同时启用 Web 服务与任务执行器任务执行器通过LD_PRELOAD预加载 jemalloc 运行rag/svr/task_executor.py并支持区间模式与固定 worker 数两种扩缩容方式。同一目录下的 launch_backend_service.sh 则是面向裸机非容器的启动脚本包含最多 5 次重试的进程守护逻辑与 SIGINT/SIGTERM 信号清理。五、nginx 前端与反向代理RAGFlow 镜像内自带 nginx其配置通过卷挂载方式覆盖nginx/ragflow.confHTTP 配置。监听 80 端口前端静态资源位于/ragflow/web/distlocation ~ ^/(v1|api)将 API 请求反代到http://ragflow:9380配合 nginx/proxy.conf其余请求回退到index.htmlSPA 路由静态资源/static/(css|js|media)/设置 10 年长缓存nginx/nginx.confnginx 主配置其中client_max_body_size需与MAX_CONTENT_LENGTH保持同步nginx/ragflow.https.confHTTPS 配置下文部署时使用。六、HTTPS 生产部署示例若希望实例以https://对外提供服务按以下步骤操作。前置条件一个指向服务器的已注册域名服务器开放 80 与 443 端口已安装 Docker 与 Docker Compose方案 ALets Encrypt 免费证书安装 Certbot 并申请证书# Ubuntu/Debian sudo apt update sudo apt install certbot # CentOS/RHEL sudo yum install certbot # 申请证书替换为你的真实域名 sudo certbot certonly --standalone -d your-ragflow-domain.com定位证书文件。申请完成后证书位于证书/etc/letsencrypt/live/your-ragflow-domain.com/fullchain.pem私钥/etc/letsencrypt/live/your-ragflow-domain.com/privkey.pem修改 docker-compose.yml为ragflow服务添加证书卷并切换到 HTTPS nginx 配置services: ragflow: # ...existing configuration... volumes: # SSL certificates - /etc/letsencrypt/live/your-ragflow-domain.com/fullchain.pem:/etc/nginx/ssl/fullchain.pem:ro - /etc/letsencrypt/live/your-ragflow-domain.com/privkey.pem:/etc/nginx/ssl/privkey.pem:ro # Switch to HTTPS nginx configuration - ./nginx/ragflow.https.conf:/etc/nginx/conf.d/ragflow.conf # ...other existing volumes...修改 nginx 配置。编辑 nginx/ragflow.https.conf将两处your-ragflow-domain.com替换为你的真实域名该文件同时负责 80→443 的 301 跳转与 443 端口的 SSL 终止。重启服务docker-compose down docker-compose up -d[!IMPORTANT]确保域名 DNS 的 A 记录指向服务器 IP使用--standalone申请证书前先停止占用 80/443 端口的服务。[!TIP] 开发或测试环境可使用自签名证书但浏览器会显示安全警告。方案 B使用已有证书若已有其他证书颁发机构签发的 SSL 证书将证书文件放到 Docker 可访问的目录修改 docker-compose.yml 中的证书卷路径指向你的证书文件确保证书文件包含完整证书链沿用方案 A 的第 4-5 步完成域名替换与重启。七、与 astron-agent 的集成知识服务如何调用 RAGFlow在 astron-agent 中RAGFlow 的容器化部署并非孤立存在而是被核心知识服务Knowledge Service源码位于 core/knowledge作为 RAG 检索后端调用客户端初始化RagflowClient在 core/knowledge/infra/ragflow/ragflow_client.py 中通过ragflow_sdk的RAGFlow(api_key..., base_url...)创建实例其中base_url对应环境变量RAGFLOW_BASE_URLapi_key对应RAGFLOW_API_TOKEN二者缺失时分别抛出RAGFLOW_BASE_URL not configured/RAGFLOW_API_TOKEN not configured的ValueError见 ragflow_client.py。由此可知SVR_HTTP_PORT默认 9380映射出的宿主机地址即应填入RAGFLOW_BASE_URL而RAGFLOW_API_TOKEN需在 RAGFlow 控制台生成 API Key 后填写策略实现RagflowRAGStrategycore/knowledge/service/impl/ragflow_strategy.py实现了统一的RAGStrategy接口通过datasetId完成知识库查询工具类RagflowUtilscore/knowledge/infra/ragflow/ragflow_utils.py封装了create_dataset、list_datasets、update_dataset、wait_for_parsing等文档处理流程并约定默认数据集名为Stellar Knowledge BaseRAGFLOW_DEFAULT_GROUP未设置时的回退值错误语义客户端将 RAGFlow 返回码102RetCode.DATA_ERROR视为文档缺失/无归属其他非零码视为服务故障见 ragflow_client.py。这意味着本文第二、三节中的所有端口与凭据配置最终都会经由RAGFLOW_BASE_URL/RAGFLOW_API_TOKEN这两个变量与 astron-agent 的知识链路打通RAGFlow 负责文档解析、切片、向量化与检索astron-agent 的知识服务在其之上提供统一的策略抽象与业务封装。八、数据备份与迁移migration.sh目录下还提供了 migration.sh 数据迁移脚本用于备份/恢复 RAGFlow 的关键 Docker 卷# 备份到 ./backup 目录 ./migration.sh backup # 备份到指定目录 ./migration.sh backup my_backup # 恢复 ./migration.sh restore ./migration.sh restore my_backup脚本覆盖docker_mysql_dataMySQL、docker_minio_dataMinIO 对象存储、docker_redis_dataRedis与docker_esdata01Elasticsearch四个数据卷分别打包为mysql_backup.tar.gz、minio_backup.tar.gz、redis_backup.tar.gz、es_backup.tar.gz。生产环境升级镜像或迁移宿主机前建议先执行备份恢复操作会按卷逐一解包还原数据目录。九、常见调优与运维建议检索后端选型默认 Compose 不启用 Elasticsearch/OpenSearch/Infinity 任何检索后端 profile生产环境按需执行docker compose --profile elasticsearch up -d或opensearch/infinity并在 service_conf.yaml.template 中通过es.hosts/os.hosts/infinity.uri指定实际使用的后端。大文件上传调大MAX_CONTENT_LENGTH时务必同步修改 nginx/nginx.conf 的client_max_body_size否则 nginx 层会先于应用层拒绝请求。批量吞吐DOC_BULK_SIZE与EMBEDDING_BATCH_SIZE分别控制解析与向量化的单批处理量可结合 CPU/GPU 与内存水位MEM_LIMIT逐步上调。任务执行器扩容容器启动参数--workersnum或区间模式--consumer-no-beg/--consumer-no-end可横向扩展解析/切片的消费能力--host-id用于多机部署时区分执行器身份。镜像下载受阻优先使用第二节约定的华为云/阿里云镜像源替换RAGFLOW_IMAGE。HTTPS 证书续期Lets Encrypt 证书有效期 90 天续期后需重新挂载证书并执行docker-compose restart ragflow或按仓库部署节奏重启服务栈。至此从环境变量、服务配置、容器参数到 HTTPS 生产化与数据迁移RAGFlow 在 astron-agent 中的容器化部署全链路已经完整打通结合 core/knowledge 的源码你可以进一步追踪RAGFLOW_BASE_URL/RAGFLOW_API_TOKEN之后的每一次知识查询与文档解析调用。赞分享人工智能AI AgentAgent 编排RPA后端前端企业应用【免费下载链接】astron-agentEnterprise-grade, commercial-friendly agentic workflow platform for building next-generation SuperAgents.项目地址https://gitcode.com/gh_mirrors/as/astron-agent点击查看免费下载相关推荐Docker Compose环境变量MLOps-Basics动态配置服务Docker Compose环境变量MLOps Basics动态配置服务 引言MLOps中的配置困境与解决方案 你是否还在为机器学习模型部署时的配置管理而烦示例工程Authelia部署实战Docker Compose与Kubernetes环境配置Authelia部署实战Docker Compose与Kubernetes环境配置 本文全面介绍了Authelia身份认证和授权服务器在不同环境中的部署方案后端认证鉴权单点登录身份认证应用安全Argilla 服务器多环境部署指南Docker Compose 与 Kubernetes Helm Chart 实战Argilla 服务器多环境部署指南Docker Compose 与 Kubernetes Helm Chart 实战 本篇技术指南以 examples/de数据标注人工智能NLPMLOpsRAG上一篇三招让前端性能提升70%Core Web Vitals优化实战指南下一篇Mongood地理位置索引可视化地图预览功能让空间数据一目了然创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考