2024-11-14 00:08:55 +08:00
|
|
|
# The type of doc engine to use.
|
2024-11-22 12:03:46 +08:00
|
|
|
# Available options:
|
2025-05-16 11:14:57 +08:00
|
|
|
# - `elasticsearch` (default)
|
2024-11-22 12:03:46 +08:00
|
|
|
# - `infinity` (https://github.com/infiniflow/infinity)
|
2025-04-24 16:03:31 +08:00
|
|
|
# - `opensearch` (https://github.com/opensearch-project/OpenSearch)
|
2024-11-14 00:08:55 +08:00
|
|
|
DOC_ENGINE=${DOC_ENGINE:-elasticsearch}
|
|
|
|
|
|
|
|
# ------------------------------
|
|
|
|
# docker env var for specifying vector db type at startup
|
|
|
|
# (based on the vector db type, the corresponding docker
|
|
|
|
# compose profile will be used)
|
|
|
|
# ------------------------------
|
|
|
|
COMPOSE_PROFILES=${DOC_ENGINE}
|
|
|
|
|
2024-11-08 16:31:52 +08:00
|
|
|
# The version of Elasticsearch.
|
2024-09-09 14:02:48 +08:00
|
|
|
STACK_VERSION=8.11.3
|
2024-02-28 15:02:04 +08:00
|
|
|
|
2024-11-12 15:56:53 +01:00
|
|
|
# The hostname where the Elasticsearch service is exposed
|
|
|
|
ES_HOST=es01
|
|
|
|
|
2025-05-16 11:14:57 +08:00
|
|
|
# The port used to expose the Elasticsearch service to the host machine,
|
2024-11-08 16:31:52 +08:00
|
|
|
# allowing EXTERNAL access to the service running inside the Docker container.
|
2024-02-28 15:02:04 +08:00
|
|
|
ES_PORT=1200
|
|
|
|
|
2025-05-16 11:14:57 +08:00
|
|
|
# The password for Elasticsearch.
|
2024-06-06 13:19:26 +08:00
|
|
|
ELASTIC_PASSWORD=infini_rag_flow
|
|
|
|
|
2025-04-24 16:03:31 +08:00
|
|
|
# the hostname where OpenSearch service is exposed, set it not the same as elasticsearch
|
|
|
|
OS_PORT=1201
|
|
|
|
|
|
|
|
# The hostname where the OpenSearch service is exposed
|
|
|
|
OS_HOST=opensearch01
|
|
|
|
|
|
|
|
# The password for OpenSearch.
|
|
|
|
# At least one uppercase letter, one lowercase letter, one digit, and one special character
|
|
|
|
OPENSEARCH_PASSWORD=infini_rag_flow_OS_01
|
|
|
|
|
2025-05-16 11:14:57 +08:00
|
|
|
# The port used to expose the Kibana service to the host machine,
|
2024-11-08 16:31:52 +08:00
|
|
|
# allowing EXTERNAL access to the service running inside the Docker container.
|
2024-02-28 15:02:04 +08:00
|
|
|
KIBANA_PORT=6601
|
2024-07-26 10:34:35 +08:00
|
|
|
KIBANA_USER=rag_flow
|
|
|
|
KIBANA_PASSWORD=infini_rag_flow
|
2024-02-28 15:02:04 +08:00
|
|
|
|
2024-11-08 16:31:52 +08:00
|
|
|
# The maximum amount of the memory, in bytes, that a specific Docker container can use while running.
|
|
|
|
# Update it according to the available memory in the host machine.
|
2024-04-23 14:41:10 +08:00
|
|
|
MEM_LIMIT=8073741824
|
|
|
|
|
2024-11-25 11:53:58 +08:00
|
|
|
# The hostname where the Infinity service is exposed
|
|
|
|
INFINITY_HOST=infinity
|
|
|
|
|
2024-11-12 14:59:41 +08:00
|
|
|
# Port to expose Infinity API to the host
|
|
|
|
INFINITY_THRIFT_PORT=23817
|
|
|
|
INFINITY_HTTP_PORT=23820
|
|
|
|
INFINITY_PSQL_PORT=5432
|
|
|
|
|
2025-05-16 11:14:57 +08:00
|
|
|
# The password for MySQL.
|
2024-02-28 15:02:04 +08:00
|
|
|
MYSQL_PASSWORD=infini_rag_flow
|
2024-11-12 15:56:53 +01:00
|
|
|
# The hostname where the MySQL service is exposed
|
|
|
|
MYSQL_HOST=mysql
|
|
|
|
# The database of the MySQL service to use
|
|
|
|
MYSQL_DBNAME=rag_flow
|
2025-05-16 11:14:57 +08:00
|
|
|
# The port used to expose the MySQL service to the host machine,
|
|
|
|
# allowing EXTERNAL access to the MySQL database running inside the Docker container.
|
2024-02-28 15:02:04 +08:00
|
|
|
MYSQL_PORT=5455
|
|
|
|
|
2024-12-20 11:30:33 +08:00
|
|
|
# The hostname where the MinIO service is exposed
|
2024-11-12 15:56:53 +01:00
|
|
|
MINIO_HOST=minio
|
2025-05-16 11:14:57 +08:00
|
|
|
# The port used to expose the MinIO console interface to the host machine,
|
|
|
|
# allowing EXTERNAL access to the web-based console running inside the Docker container.
|
2024-04-18 15:45:09 +08:00
|
|
|
MINIO_CONSOLE_PORT=9001
|
2025-05-16 11:14:57 +08:00
|
|
|
# The port used to expose the MinIO API service to the host machine,
|
|
|
|
# allowing EXTERNAL access to the MinIO object storage service running inside the Docker container.
|
2024-04-18 15:45:09 +08:00
|
|
|
MINIO_PORT=9000
|
2025-05-16 11:14:57 +08:00
|
|
|
# The username for MinIO.
|
2024-11-08 16:31:52 +08:00
|
|
|
# When updated, you must revise the `minio.user` entry in service_conf.yaml accordingly.
|
2024-03-05 16:33:47 +08:00
|
|
|
MINIO_USER=rag_flow
|
2025-05-16 11:14:57 +08:00
|
|
|
# The password for MinIO.
|
2024-11-08 16:31:52 +08:00
|
|
|
# When updated, you must revise the `minio.password` entry in service_conf.yaml accordingly.
|
2024-02-28 15:02:04 +08:00
|
|
|
MINIO_PASSWORD=infini_rag_flow
|
|
|
|
|
2024-11-12 15:56:53 +01:00
|
|
|
# The hostname where the Redis service is exposed
|
|
|
|
REDIS_HOST=redis
|
2025-05-16 11:14:57 +08:00
|
|
|
# The port used to expose the Redis service to the host machine,
|
2024-11-08 16:31:52 +08:00
|
|
|
# allowing EXTERNAL access to the Redis service running inside the Docker container.
|
2024-06-08 23:24:29 +08:00
|
|
|
REDIS_PORT=6379
|
2024-11-08 16:31:52 +08:00
|
|
|
# The password for Redis.
|
2024-05-07 11:43:33 +08:00
|
|
|
REDIS_PASSWORD=infini_rag_flow
|
|
|
|
|
2025-05-16 11:14:57 +08:00
|
|
|
# The port used to expose RAGFlow's HTTP API service to the host machine,
|
2024-11-08 16:31:52 +08:00
|
|
|
# allowing EXTERNAL access to the service running inside the Docker container.
|
2024-02-28 15:02:04 +08:00
|
|
|
SVR_HTTP_PORT=9380
|
|
|
|
|
2024-11-08 16:31:52 +08:00
|
|
|
# The RAGFlow Docker image to download.
|
2025-06-23 16:00:14 +08:00
|
|
|
# Defaults to the v0.19.1-slim edition, which is the RAGFlow Docker image without embedding models.
|
|
|
|
RAGFLOW_IMAGE=infiniflow/ragflow:v0.19.1-slim
|
2024-11-08 16:31:52 +08:00
|
|
|
#
|
|
|
|
# To download the RAGFlow Docker image with embedding models, uncomment the following line instead:
|
2025-06-23 16:00:14 +08:00
|
|
|
# RAGFLOW_IMAGE=infiniflow/ragflow:v0.19.1
|
2025-05-16 11:14:57 +08:00
|
|
|
#
|
2025-06-23 16:00:14 +08:00
|
|
|
# The Docker image of the v0.19.1 edition includes built-in embedding models:
|
2024-11-08 16:31:52 +08:00
|
|
|
# - BAAI/bge-large-zh-v1.5
|
|
|
|
# - maidalun1020/bce-embedding-base_v1
|
2025-04-25 09:21:33 +08:00
|
|
|
#
|
2024-11-08 16:31:52 +08:00
|
|
|
|
|
|
|
# If you cannot download the RAGFlow Docker image:
|
|
|
|
#
|
2024-12-09 12:44:57 +08:00
|
|
|
# - For the `nightly-slim` edition, uncomment either of the following:
|
|
|
|
# RAGFLOW_IMAGE=swr.cn-north-4.myhuaweicloud.com/infiniflow/ragflow:nightly-slim
|
|
|
|
# RAGFLOW_IMAGE=registry.cn-hangzhou.aliyuncs.com/infiniflow/ragflow:nightly-slim
|
2024-11-08 16:31:52 +08:00
|
|
|
#
|
2024-12-09 12:44:57 +08:00
|
|
|
# - For the `nightly` edition, uncomment either of the following:
|
|
|
|
# RAGFLOW_IMAGE=swr.cn-north-4.myhuaweicloud.com/infiniflow/ragflow:nightly
|
|
|
|
# RAGFLOW_IMAGE=registry.cn-hangzhou.aliyuncs.com/infiniflow/ragflow:nightly
|
2024-10-10 15:30:32 +08:00
|
|
|
|
2024-11-08 16:31:52 +08:00
|
|
|
# The local time zone.
|
2024-03-05 12:08:41 +08:00
|
|
|
TIMEZONE='Asia/Shanghai'
|
|
|
|
|
2024-11-08 16:31:52 +08:00
|
|
|
# Uncomment the following line if you have limited access to huggingface.co:
|
2024-09-29 18:24:24 +08:00
|
|
|
# HF_ENDPOINT=https://hf-mirror.com
|
2024-09-23 10:00:44 +08:00
|
|
|
|
2024-11-08 19:46:18 +08:00
|
|
|
# Optimizations for MacOS
|
2025-03-12 16:07:22 +08:00
|
|
|
# Uncomment the following line if your operating system is MacOS:
|
2024-11-08 16:50:35 +08:00
|
|
|
# MACOS=1
|
2024-11-22 12:03:46 +08:00
|
|
|
|
2025-03-26 09:03:18 +08:00
|
|
|
# The maximum file size limit (in bytes) for each upload to your knowledge base or File Management.
|
|
|
|
# To change the 1GB file size limit, uncomment the line below and update as needed.
|
2025-03-14 16:47:39 +08:00
|
|
|
# MAX_CONTENT_LENGTH=1073741824
|
2025-03-26 09:03:18 +08:00
|
|
|
# After updating, ensure `client_max_body_size` in nginx/nginx.conf is updated accordingly.
|
|
|
|
# Note that neither `MAX_CONTENT_LENGTH` nor `client_max_body_size` sets the maximum size for files uploaded to an agent.
|
|
|
|
# See https://ragflow.io/docs/dev/begin_component for details.
|
2024-11-22 12:03:46 +08:00
|
|
|
|
Feat: make document parsing and embedding batch sizes configurable via environment variables (#8266)
### Description
This PR introduces two new environment variables, `DOC_BULK_SIZE` and
`EMBEDDING_BATCH_SIZE`, to allow flexible tuning of batch sizes for
document parsing and embedding vectorization in RAGFlow. By making these
parameters configurable, users can optimize performance and resource
usage according to their hardware capabilities and workload
requirements.
### What problem does this PR solve?
Previously, the batch sizes for document parsing and embedding were
hardcoded, limiting the ability to adjust throughput and memory
consumption. This PR enables users to set these values via environment
variables (in `.env`, Helm chart, or directly in the deployment
environment), improving flexibility and scalability for both small and
large deployments.
- `DOC_BULK_SIZE`: Controls how many document chunks are processed in a
single batch during document parsing (default: 4).
- `EMBEDDING_BATCH_SIZE`: Controls how many text chunks are processed
in a single batch during embedding vectorization (default: 16).
This change updates the codebase, documentation, and configuration files
to reflect the new options.
### Type of change
- [ ] Bug Fix (non-breaking change which fixes an issue)
- [x] New Feature (non-breaking change which adds functionality)
- [x] Documentation Update
- [ ] Refactoring
- [x] Performance Improvement
- [ ] Other (please describe):
### Additional context
- Updated `.env`, `helm/values.yaml`, and documentation to describe
the new variables.
- Modified relevant code paths to use the environment variables instead
of hardcoded values.
- Users can now tune these parameters to achieve better throughput or
reduce memory usage as needed.
Before:
Default value:
<img width="643" alt="image"
src="https://github.com/user-attachments/assets/086e1173-18f3-419d-a0f5-68394f63866a"
/>
After:
10x:
<img width="777" alt="image"
src="https://github.com/user-attachments/assets/5722bbc0-0bcb-4536-b928-077031e550f1"
/>
2025-06-16 13:40:47 +08:00
|
|
|
# Controls how many documents are processed in a single batch.
|
|
|
|
# Defaults to 4 if DOC_BULK_SIZE is not explicitly set.
|
|
|
|
DOC_BULK_SIZE=${DOC_BULK_SIZE:-4}
|
|
|
|
|
|
|
|
# Defines the number of items to process per batch when generating embeddings.
|
|
|
|
# Defaults to 16 if EMBEDDING_BATCH_SIZE is not set in the environment.
|
|
|
|
EMBEDDING_BATCH_SIZE=${EMBEDDING_BATCH_SIZE:-16}
|
|
|
|
|
2025-04-24 18:02:32 +08:00
|
|
|
# Log level for the RAGFlow's own and imported packages.
|
|
|
|
# Available levels:
|
2024-12-02 17:24:39 +08:00
|
|
|
# - `DEBUG`
|
|
|
|
# - `INFO` (default)
|
|
|
|
# - `WARNING`
|
|
|
|
# - `ERROR`
|
2025-04-24 18:02:32 +08:00
|
|
|
# For example, the following line changes the log level of `ragflow.es_conn` to `DEBUG`:
|
2024-12-02 17:24:39 +08:00
|
|
|
# LOG_LEVELS=ragflow.es_conn=DEBUG
|
2025-02-27 17:02:42 +08:00
|
|
|
|
|
|
|
# aliyun OSS configuration
|
|
|
|
# STORAGE_IMPL=OSS
|
|
|
|
# ACCESS_KEY=xxx
|
|
|
|
# SECRET_KEY=eee
|
|
|
|
# ENDPOINT=http://oss-cn-hangzhou.aliyuncs.com
|
|
|
|
# REGION=cn-hangzhou
|
2025-03-02 18:47:06 +08:00
|
|
|
# BUCKET=ragflow65536
|
2025-03-21 09:38:15 +08:00
|
|
|
|
2025-04-24 18:02:32 +08:00
|
|
|
# A user registration switch:
|
|
|
|
# - Enable registration: 1
|
|
|
|
# - Disable registration: 0
|
2025-03-21 09:38:15 +08:00
|
|
|
REGISTER_ENABLED=1
|
2025-05-16 11:14:57 +08:00
|
|
|
|
|
|
|
# Sandbox settings
|
|
|
|
# Important: To enable sandbox, you must re-declare the compose profiles. See hints at the end of file.
|
|
|
|
# Double check if you add `sandbox-executor-manager` to your `/etc/hosts`
|
|
|
|
# Pull the required base images before running:
|
|
|
|
# docker pull infiniflow/sandbox-base-nodejs:latest
|
|
|
|
# docker pull infiniflow/sandbox-base-python:latest
|
|
|
|
# Our default sandbox environments include:
|
|
|
|
# - Node.js base image: includes axios
|
|
|
|
# - Python base image: includes requests, numpy, and pandas
|
|
|
|
# Specify custom executor images below if you're using non-default environments.
|
|
|
|
# SANDBOX_ENABLED=1
|
|
|
|
# SANDBOX_HOST=sandbox-executor-manager
|
|
|
|
# SANDBOX_EXECUTOR_MANAGER_IMAGE=infiniflow/sandbox-executor-manager:latest
|
|
|
|
# SANDBOX_EXECUTOR_MANAGER_POOL_SIZE=3
|
|
|
|
# SANDBOX_BASE_PYTHON_IMAGE=infiniflow/sandbox-base-python:latest
|
|
|
|
# SANDBOX_BASE_NODEJS_IMAGE=infiniflow/sandbox-base-nodejs:latest
|
|
|
|
# SANDBOX_EXECUTOR_MANAGER_PORT=9385
|
|
|
|
# SANDBOX_ENABLE_SECCOMP=false
|
2025-05-20 17:21:28 +08:00
|
|
|
# SANDBOX_MAX_MEMORY=256m # b, k, m, g
|
|
|
|
# SANDBOX_TIMEOUT=10s # s, m, 1m30s
|
2025-05-16 11:14:57 +08:00
|
|
|
|
|
|
|
# Important: To enable sandbox, you must re-declare the compose profiles.
|
|
|
|
# 1. Comment out the COMPOSE_PROFILES line above.
|
|
|
|
# 2. Uncomment one of the following based on your chosen document engine:
|
|
|
|
# - For Elasticsearch:
|
|
|
|
# COMPOSE_PROFILES=elasticsearch,sandbox
|
|
|
|
# - For Infinity:
|
|
|
|
# COMPOSE_PROFILES=infinity,sandbox
|
|
|
|
# - For OpenSearch:
|
|
|
|
# COMPOSE_PROFILES=opensearch,sandbox
|