配置
通过Docker部署RAGFlow的配置。
指南
在系统配置方面,您需要管理以下文件:
- .env: 包含Docker的重要环境变量。
- service_conf.yaml.template: 配置后端服务。它指定了RAGFlow的系统级配置,并由其API服务器和任务执行器使用。在容器启动时,
service_conf.yaml文件将基于此模板文件生成。此过程会替换模板中的任何环境变量,从而允许根据容器的环境进行动态配置。 - docker-compose.yml: 用于启动RAGFlow服务的Docker Compose文件。
要更新默认的HTTP服务端口(80),请转到docker-compose.yml并将80:80更改为<YOUR_SERVING_PORT>:80。
NOTE
上述配置的更新需要重启所有容器才能生效:
docker compose -f docker/docker-compose.yml up -d
Docker Compose
- docker-compose.yml
设置RAGFlow及其依赖项的环境。 - docker-compose-base.yml
设置RAGFlow依赖的环境:Elasticsearch/Infinity, MySQL, MinIO, 和 Redis。
IMPORTANT
我们不主动维护docker-compose-CN-oc9.yml、docker-compose-gpu-CN-oc9.yml或docker-compose-gpu.yml,因此使用它们需自行承担风险。不过,欢迎您提交拉取请求以改进其中任何一个。
Docker环境变量
.env 文件包含 Docker 的重要环境变量。
Elasticsearch
STACK_VERSION
Elasticsearch的版本。默认为8.11.3ES_PORT
用于将Elasticsearch服务暴露给主机的端口,允许外部访问运行在Docker容器内的服务。默认为1200。ELASTIC_PASSWORD
Elasticsearch的密码。
Kibana
KIBANA_PORT
用于将Kibana服务暴露给主机的端口,允许外部访问运行在Docker容器内的服务。默认为6601。KIBANA_USER
Kibana 的用户名。默认为rag_flow。KIBANA_PASSWORD
Kibana的密码。默认为infini_rag_flow。
资源管理
MEM_LIMIT
特定Docker容器在运行时可以使用的最大内存量,以字节为单位。默认为8073741824。
MySQL
MYSQL_PASSWORD
MySQL的密码。MYSQL_PORT
用于将MySQL服务暴露给主机的端口,允许外部访问运行在Docker容器内的MySQL数据库。默认为5455。
MinIO
MINIO_CONSOLE_PORT
用于将MinIO控制台界面暴露给主机的端口,允许外部访问运行在Docker容器内的基于Web的控制台。默认为9001MINIO_PORT
用于将MinIO API服务暴露给主机的端口,允许外部访问运行在Docker容器内的MinIO对象存储服务。默认为9000。MINIO_USER
MinIO 的用户名。MINIO_PASSWORD
MinIO的密码。
Redis
REDIS_PORT
用于将Redis服务暴露给主机的端口,允许外部访问运行在Docker容器内的Redis服务。默认为6379。REDIS_PASSWORD
Redis的密码。
RAGFlow
-
SVR_HTTP_PORT
用于将RAGFlow的HTTP API服务暴露给主机的端口,允许外部访问运行在Docker容器内的服务。默认为9380。 -
RAGFLOW-IMAGE
Docker 镜像版本。可用版本:infiniflow/ragflow:v0.15.1-slim(default): The RAGFlow Docker image without embedding models.infiniflow/ragflow:v0.15.1: The RAGFlow Docker image with embedding models including:- Built-in embedding models:
BAAI/bge-large-zh-v1.5BAAI/bge-reranker-v2-m3maidalun1020/bce-embedding-base_v1maidalun1020/bce-reranker-base_v1
- Embedding models that will be downloaded once you select them in the RAGFlow UI:
BAAI/bge-base-en-v1.5BAAI/bge-large-en-v1.5BAAI/bge-small-en-v1.5BAAI/bge-small-zh-v1.5jinaai/jina-embeddings-v2-base-enjinaai/jina-embeddings-v2-small-ennomic-ai/nomic-embed-text-v1.5sentence-transformers/all-MiniLM-L6-v2
- Built-in embedding models:
NOTE
如果您无法下载RAGFlow Docker镜像,请尝试以下镜像。
- 对于
nightly-slim版本:RAGFLOW_IMAGE=swr.cn-north-4.myhuaweicloud.com/infiniflow/ragflow:nightly-slim或者,RAGFLOW_IMAGE=registry.cn-hangzhou.aliyuncs.com/infiniflow/ragflow:nightly-slim。
- 对于
nightly版本:RAGFLOW_IMAGE=swr.cn-north-4.myhuaweicloud.com/infiniflow/ragflow:nightly或者,RAGFLOW_IMAGE=registry.cn-hangzhou.aliyuncs.com/infiniflow/ragflow:nightly。
时区
TIMEZONE
本地时区。默认为'Asia/Shanghai'。
Hugging Face 镜像站点
HF_ENDPOINT
huggingface.co的镜像站点。默认情况下是禁用的。如果您对主要的Hugging Face域访问受限,可以取消注释此行。
MacOS
MACOS
针对MacOS的优化。默认情况下是禁用的。如果您的操作系统是MacOS,可以取消注释此行。
服务配置
service_conf.yaml.template 指定了RAGFlow的系统级配置,并供其API服务器和任务执行器使用。
ragflow
host: Docker 容器内 API 服务器的 IP 地址。默认为0.0.0.0。port: Docker 容器内 API 服务器的服务端口。默认为9380。
mysql
name: MySQL数据库名称。默认为rag_flow。user: MySQL的用户名。password: MySQL的密码。port: Docker 容器内的 MySQL 服务端口。默认为3306。max_connections: MySQL数据库的最大并发连接数。默认为100。stale_timeout: 超时时间(以秒为单位)。
minio
user: MinIO 的用户名。password: MinIO的密码。host: MinIO 在 Docker 容器内的服务 IP 和 端口。默认为minio:9000。
oauth
使用第三方账户注册或登录RAGFlow的OAuth配置。默认情况下是禁用的。要启用此功能,请取消service_conf.yaml.template中相应行的注释。
github: 您应用程序的GitHub认证设置。访问Github开发者设置页面以获取您的client_id和secret_key。
user_default_llm
新RAGFlow用户使用的默认LLM。默认情况下是禁用的。要启用此功能,请取消service_conf.yaml.template中相应行的注释。
factory: LLM供应商。可用选项:"OpenAI""DeepSeek""Moonshot""Tongyi-Qianwen""VolcEngine""ZHIPU-AI"
api_key: 指定LLM的API密钥。您需要在线申请您的模型API密钥。
NOTE
如果您不在此处设置默认的LLM,请在RAGFlow UI的设置页面上配置默认的LLM。