跳转到主要内容
Dify 企业版通过 Helm 部署,大多数变量在 values.yaml 文件中配置。Helm chart 会将一组固定变量写入 API、web、worker 和 enterprise 这几个 ConfigMap(默认值取自 values.yaml),其余 Dify 应用变量则通过各服务的 extraEnv 字段暴露。
此处列出的变量仅供参考。Dify 应用读取的变量远多于 Helm chart 直接设置的部分。完整的应用级变量列表见上游 .env.example。任何未在 values.yaml 中设置的变量都可通过 extraEnv 添加(见 常见问题)。如果在 values.yaml 中找不到某个变量,通过 extraEnv 设置即可。
标注为 (Helm default) 的默认值是 chart 从 values.yaml 写入 ConfigMap 的值。其余默认值均为 Dify 应用的内置默认值,在变量未通过 extraEnv 设置时生效。

通用变量

以下 URL 变量用于配置 Dify 各服务的公开地址。Helm chart 根据 values.yaml 中的域名设置(global.consoleApiDomainglobal.consoleWebDomain 等)推导这些变量,因此通常设置域名即可,无需直接设置变量。

CONSOLE_API_URL

默认值:由 global.consoleApiDomain 推导 Dify 后端 API 的公开 URL。用于构造 OAuth 授权回调(GitHub、Google 登录)、Notion 集成,以及任何需要 OAuth 的插件。同时决定是否使用安全(仅 HTTPS)Cookie。 范例:https://api.console.dify.ai

CONSOLE_WEB_URL

默认值:由 global.consoleWebDomain 推导 Dify 控制台前端的公开 URL。用于构造所有系统邮件(邀请、密码重置、通知)中的链接,并在 OAuth 登录后将用户重定向回控制台。当 CONSOLE_CORS_ALLOW_ORIGINS 未设置时,它还作为默认的 CORS 允许来源。 范例:https://console.dify.ai

SERVICE_API_URL

默认值:由 global.serviceApiDomain 推导 控制台中向开发者展示的 API Base URL,即开发者复制到代码里调用 Dify API 的地址。当服务器可通过多个地址访问时,设置该变量可确保 URL 一致。 范例:https://api.dify.ai

APP_API_URL

默认值:由 global.appApiDomain 推导 WebApp 前端(已发布应用)使用的后端 API URL。该变量由 web 前端容器使用,而非 Python 后端。 范例:https://api.app.dify.ai

APP_WEB_URL

默认值:由 global.appWebDomain 推导 已发布 WebApp 的公开访问 URL。工作流中的 Human Input 节点必须设置此项:邮件通知里的表单链接按 {APP_WEB_URL}/form/{token} 构造。若为空,Human Input 邮件将无法包含有效的表单链接。 范例:https://app.dify.ai

TRIGGER_URL

默认值:由 global.triggerDomain 推导 Webhook 和插件触发端点的公开访问 URL。外部系统通过该地址调用你的工作流。Dify 按 {TRIGGER_URL}/triggers/webhook/{id} 构造触发器回调 URL 并在控制台中展示。要让触发器正常工作,此项必须指向外部系统可访问的公开域名或 IP。

FILES_URL

默认值:由 global.filesDomain 推导 文件预览与下载链接的基础 URL。Dify 为所有文件(上传的文档、工具输出、工作空间 Logo)生成带签名、有时效的 URL,并提供给前端和多模态模型。为防止伪造,文件 URL 经过签名并会过期(见 FILES_ACCESS_TIMEOUT)。 范例:https://upload.example.com

INTERNAL_FILES_URL

默认值:(为空;回退到 FILES_URL 集群内部服务之间通信所用的文件访问 URL(例如插件守护进程和文档提取器)。若外部 FILES_URL 通过 ingress 或公开域名路由,内部服务可能无法访问。当内部服务无法访问外部 URL 时,通过 extraEnv 设置此项。 范例:http://dify-api-svc:5001

FILES_ACCESS_TIMEOUT

默认值:300(5 分钟) 签名文件 URL 的有效时长(秒)。超过该时间后 URL 会被拒绝,文件需重新请求。长耗时流程可调大;追求更严格的安全性可调小。

服务器配置

日志

VariableDefaultDescription
LOG_LEVELINFO (Helm default)最低日志级别。级别由低到高:DEBUGINFOWARNINGERRORCRITICAL。生产环境用 ERROR 可减少噪声。
LOG_OUTPUT_FORMATjson (Helm default)json 生成适合聚合工具(ELK、Datadog)的结构化日志,text 生成可读性更好的文本行。chart 默认 json,应用自身默认 text
LOG_FILE/app/logs/server.log日志文件路径。设置后启用基于文件的日志记录并自动轮转;为空时日志仅输出到控制台。
LOG_FILE_MAX_SIZE20触发轮转的日志文件最大体积(MB)。
LOG_FILE_BACKUP_COUNT5保留的轮转日志文件数量。
LOG_DATEFORMAT%Y-%m-%d %H:%M:%S文本格式日志的时间戳格式(strftime 代码)。
LOG_TZUTC日志时间戳的时区,同时设置 Celery 的任务调度时区。

通用

VariableDefaultDescription
MODEapi / worker / beat (Helm default)服务角色。chart 会按 ConfigMap 分别设置,不要覆盖。
DEBUGfalse启用详细日志:节点输入/输出、工具执行细节、完整的 LLM 提示词与响应。不建议在生产环境使用。
FLASK_DEBUGfalse标准 Flask 调试标志。Dify 并未实际使用,主要由 DEBUG 控制。
ENABLE_REQUEST_LOGGINGfalse为每个 HTTP 请求记录一行简洁的访问日志。在 LOG_LEVEL=DEBUG 下,还会记录完整的请求与响应体。
DEPLOY_ENVPRODUCTION (Helm default)在 Sentry 和 OpenTelemetry 中为监控数据打标签,便于按环境过滤。同时作为 X-Env 响应头发送。
MIGRATION_ENABLEDtrue (API), false (worker/beat) (Helm default)true 时,在容器启动时自动执行数据库 schema 迁移。chart 仅为 API 服务启用。
CHECK_UPDATE_URLhttps://updates.dify.ai (Helm default)控制台通过该 URL 检查 Dify 新版本。离网(air-gapped)环境可置空。
OPENAI_API_BASEhttps://api.openai.com/v1遗留变量,Dify 自身代码并未实际使用。

SECRET_KEY

默认值:由 chart 设置(见你部署的 secret 配置) 用于会话 Cookie 签名、JWT 鉴权令牌、文件 URL 签名(HMAC-SHA256),以及加密第三方 OAuth 凭据(AES-256)。Helm chart 通过一个 secret 管理该值。
部署后更改此密钥会立即登出所有用户、使所有文件 URL 失效,并破坏所有使用 OAuth 的插件集成,因为它们的加密凭据将无法恢复。

Token 与请求限制

VariableDefaultDescription
ACCESS_TOKEN_EXPIRE_MINUTES60登录会话的访问令牌保持有效的时长(分钟)。浏览器会用刷新令牌静默续期。
REFRESH_TOKEN_EXPIRE_DAYS30用户无需重新输入凭据即可保持登录的时长(天)。
APP_MAX_EXECUTION_TIME1200单次应用执行在被终止前可运行的最长时间(秒)。与 WORKFLOW_MAX_EXECUTION_TIME 配合生效。
APP_DEFAULT_ACTIVE_REQUESTS0未设置自定义上限时,每个应用的默认并发请求上限。0 表示不限。
APP_MAX_ACTIVE_REQUESTS0每个应用并发请求的全局上限。0 表示不限。

Worker 配置

Helm chart 通过 values.yaml 而非环境变量管理 worker 数量。serverWorkerAmount 控制 API Gunicorn worker 数,celeryWorkerAmount 控制每个 worker 部署的 Celery worker 数。请在 values.yaml 中设置。
VariableDefaultDescription
SERVER_WORKER_AMOUNT1 (Helm default)Gunicorn worker 进程数。使用 gevent(默认)时,1 通常足够。通过 values.yaml 中的 api.serverWorkerAmount 设置。
GUNICORN_TIMEOUT360 (Helm default)若 worker 在该秒数内无响应,Gunicorn 会重启它。360 可支持长连接的 SSE 流式输出。
CELERY_WORKER_AMOUNT1 (Helm default)每个 worker 部署的 Celery worker 进程数。通过 values.yaml 中的 worker.celeryWorkerAmount 设置。
SERVER_WORKER_CLASSgeventGunicorn worker 类型。保持默认值,其他值会破坏 psycopg2 和 gRPC 的猴子补丁。
SERVER_WORKER_CONNECTIONS10每个 worker 的最大并发连接数。仅对异步(gevent)worker 生效。
CELERY_WORKER_CLASS(为空;默认 gevent)Celery worker 类型。强烈不建议更改。

API Tool 配置

VariableDefaultDescription
API_TOOL_DEFAULT_CONNECT_TIMEOUT10API Tool 节点调用外部 API 时,建立 TCP 连接的最长等待时间(秒)。
API_TOOL_DEFAULT_READ_TIMEOUT60API Tool 节点从外部 API 接收响应数据的最长等待时间(秒)。

数据库配置

Helm chart 通过 values.yaml 和共享的数据库 ConfigMap 配置主数据库连接(主机、端口、凭据、数据库名),而非通过各个 DB_* 变量。下列变量用于调优应用的连接池,可通过 extraEnv 设置。
VariableDefaultDescription
SQLALCHEMY_POOL_SIZE250 (Helm default)连接池中保持的持久连接数。chart 默认 250(应用默认 30)。通过 api.db.poolSize / worker.db.poolSize 设置。
SQLALCHEMY_POOL_RECYCLE3600 (Helm default)连接在该秒数后回收,以避免陈旧连接。
SQLALCHEMY_MAX_OVERFLOW10连接池满时允许的额外临时连接数。
SQLALCHEMY_POOL_TIMEOUT30连接池耗尽时,等待可用连接的时长。
SQLALCHEMY_POOL_RESET_ON_RETURNrollback连接归还到池时执行的动作。rollback 清除未提交的事务状态,commit 则提交。
SQLALCHEMY_POOL_PRE_PINGfalse使用前用一条轻量查询测试每个连接。可避免「连接丢失」错误,但会增加少量延迟。
SQLALCHEMY_POOL_USE_LIFOfalse复用最近归还的连接(LIFO),而非均匀轮换(FIFO)。
SQLALCHEMY_ECHOfalse将所有 SQL 语句打印到日志。便于排查查询问题。

Redis 配置

Helm chart 通过 values.yaml(共享的 Redis 配置)配置 Redis 连接。应用支持单机、Sentinel 和 Cluster 三种模式。下列变量是应用级调节项;在 Helm 部署中,优先使用 chart 的 Redis 设置,调优时再用 extraEnv
VariableDefaultDescription
REDIS_KEY_PREFIX(为空)应用于所有 Redis 键、pub/sub 频道、Streams 名称和 Celery broker 队列的可选全局前缀。当多个 Dify 实例共用一个 Redis 部署时很有用。在已有部署上启用前缀,会让之前前缀下写入的键被遗弃。
REDIS_USE_SSLfalse为 Redis 连接启用 SSL/TLS。不会自动应用于 Sentinel 协议。
REDIS_MAX_CONNECTIONS(为空)Redis 连接池的最大连接数。不设置则使用库的默认值。

Redis SSL 配置

仅在 REDIS_USE_SSL=true 时生效。
VariableDefaultDescription
REDIS_SSL_CERT_REQSCERT_NONE证书校验级别:CERT_NONECERT_OPTIONALCERT_REQUIRED
REDIS_SSL_CA_CERTS(为空)用于校验 Redis 服务器的 CA 证书文件路径。
REDIS_SSL_CERTFILE(为空)用于双向 TLS 的客户端证书路径。
REDIS_SSL_KEYFILE(为空)用于双向 TLS 的客户端私钥路径。

Redis 连接弹性

VariableDefaultDescription
REDIS_RETRY_RETRIES3瞬时故障时每条 Redis 命令的最大重试次数。设为 0 可禁用。采用带抖动的指数退避。
REDIS_RETRY_BACKOFF_BASE1.0重试间指数退避的基础延迟(秒)。
REDIS_RETRY_BACKOFF_CAP10.0重试间退避延迟的上限(秒)。
REDIS_SOCKET_TIMEOUT5.0Redis 读/写操作的套接字超时(秒)。
REDIS_SOCKET_CONNECT_TIMEOUT5.0建立 Redis 连接的套接字超时(秒)。
REDIS_HEALTH_CHECK_INTERVAL30对空闲连接进行客户端健康检查的间隔(秒)。设为 0 可禁用。Cluster 模式下不生效。

Celery 配置

Helm chart 通过 values.yaml 和共享的 Celery secret 管理 Celery broker 连接。下列变量是应用级调优项。
VariableDefaultDescription
CELERY_BACKENDredisCelery 存放任务结果的位置。可选:redis(快速、内存型)或 database
BROKER_USE_SSLfalse当 broker URL 使用 rediss:// 协议时自动启用。
CELERY_USE_SENTINELfalse为 Celery broker 启用 Redis Sentinel 模式。
CELERY_SENTINEL_MASTER_NAME(为空)Sentinel 服务名(Master Name)。
CELERY_SENTINEL_PASSWORD(为空)Sentinel 鉴权密码。
CELERY_SENTINEL_SOCKET_TIMEOUT0.1连接 Sentinel 的超时(秒)。
CELERY_TASK_ANNOTATIONSnull为特定任务应用运行时设置(例如速率限制)。格式为 JSON 字典。多数用户无需配置。

CORS 配置

控制前端的跨域访问策略。chart 仅在 values.yaml 中设置时才写入这些变量。
VariableDefaultDescription
WEB_API_CORS_ALLOW_ORIGINS*允许向 Web API 发起跨域请求的来源。范例:https://dify.app
CONSOLE_CORS_ALLOW_ORIGINS*允许向控制台 API 发起跨域请求的来源。未设置时回退到 CONSOLE_WEB_URL
COOKIE_DOMAIN(为空)当前后端运行在不同子域时,设为共享的顶级域名(例如 example.com),以便跨子域共享鉴权 Cookie。

文件存储配置

配置 Dify 存放上传文件、知识库文档和加密密钥的位置。每种存储类型都有各自的凭据变量,只需配置你使用的那种。在 Helm 部署中,除非 chart 已暴露,否则通过 extraEnv 设置。

STORAGE_TYPE

默认值:opendal 选择文件存储后端。支持的值:opendals3azure-blobaliyun-ossgoogle-storagehuawei-obsvolcengine-tostencent-cosbaidu-obsoci-storagesupabaseclickzetta-volumelocal(已弃用;内部通过 OpenDAL 的 filesystem 协议实现)。
默认存储后端,基于 Apache OpenDAL,提供支持多种存储服务的统一接口。Dify 会自动扫描匹配 OPENDAL_<SCHEME>_* 的环境变量并传给 OpenDAL。例如当 OPENDAL_SCHEME=s3 时,设置 OPENDAL_S3_ACCESS_KEY_IDOPENDAL_S3_SECRET_ACCESS_KEY 等。
VariableDefaultDescription
OPENDAL_SCHEMEfs使用的存储服务。范例:fs(本地文件系统)、s3gcsazblob
OPENDAL_FS_ROOTstorage本地文件系统存储的根目录(配合 fs 协议使用)。
所有可用协议及其配置选项,见 OpenDAL 服务文档
VariableDefaultDescription
S3_ENDPOINT(为空)S3 端点地址。非 AWS 的 S3 兼容服务(MinIO 等)必填。
S3_REGIONus-east-1S3 区域。
S3_BUCKET_NAMEdifyaiS3 存储桶名称。
S3_ACCESS_KEY(为空)S3 Access Key。使用 IAM 角色时无需填写。
S3_SECRET_KEY(为空)S3 Secret Key。使用 IAM 角色时无需填写。
S3_ADDRESS_STYLEautoS3 寻址方式:autopathvirtual。仅在 S3_USE_AWS_MANAGED_IAMfalse 时生效。
S3_USE_AWS_MANAGED_IAMfalse使用 AWS IAM 角色(EC2 实例配置文件、EKS 服务账户)而非显式密钥。凭据会从实例元数据自动发现。
VariableDefaultDescription
AZURE_BLOB_ACCOUNT_NAMEdifyaiAzure 存储账户名。
AZURE_BLOB_ACCOUNT_KEYdifyaiAzure 存储账户密钥。
AZURE_BLOB_CONTAINER_NAMEdifyai-containerAzure Blob 容器名。
AZURE_BLOB_ACCOUNT_URLhttps://<your_account_name>.blob.core.windows.netAzure Blob 账户 URL。
VariableDefaultDescription
GOOGLE_STORAGE_BUCKET_NAME(为空)Google Cloud Storage 存储桶名称。
GOOGLE_STORAGE_SERVICE_ACCOUNT_JSON_BASE64(为空)Base64 编码的服务账户 JSON 密钥。
VariableDefaultDescription
ALIYUN_OSS_BUCKET_NAME(为空)OSS 存储桶名称。
ALIYUN_OSS_ACCESS_KEY(为空)OSS access key。
ALIYUN_OSS_SECRET_KEY(为空)OSS secret key。
ALIYUN_OSS_ENDPOINThttps://oss-ap-southeast-1-internal.aliyuncs.comOSS 端点。区域与端点参考
ALIYUN_OSS_REGIONap-southeast-1OSS 区域。
ALIYUN_OSS_AUTH_VERSIONv4OSS 鉴权版本。
ALIYUN_OSS_PATH(为空)对象路径前缀。不要以 / 开头。参考
ALIYUN_CLOUDBOX_ID(为空)基于 CloudBox 的 OSS 部署所用的 CloudBox ID。
VariableDefaultDescription
TENCENT_COS_BUCKET_NAME(为空)COS 存储桶名称。
TENCENT_COS_SECRET_KEY(为空)COS secret key。
TENCENT_COS_SECRET_ID(为空)COS secret ID。
TENCENT_COS_REGION(为空)COS 区域,例如 ap-guangzhou参考
TENCENT_COS_SCHEME(为空)访问 COS 的协议(httphttps)。
TENCENT_COS_CUSTOM_DOMAIN(为空)访问 COS 的自定义域名。
VariableDefaultDescription
OCI_ENDPOINT(为空)OCI 端点 URL。
OCI_BUCKET_NAME(为空)OCI 存储桶名称。
OCI_ACCESS_KEY(为空)OCI access key。
OCI_SECRET_KEY(为空)OCI secret key。
OCI_REGIONus-ashburn-1OCI 区域。
VariableDefaultDescription
HUAWEI_OBS_BUCKET_NAME(为空)OBS 存储桶名称。
HUAWEI_OBS_ACCESS_KEY(为空)OBS access key。
HUAWEI_OBS_SECRET_KEY(为空)OBS secret key。
HUAWEI_OBS_SERVER(为空)OBS 服务器 URL。参考
HUAWEI_OBS_PATH_STYLEfalse使用 path-style URL 而非 virtual-hosted-style。
VariableDefaultDescription
VOLCENGINE_TOS_BUCKET_NAME(为空)TOS 存储桶名称。
VOLCENGINE_TOS_ACCESS_KEY(为空)TOS access key。
VOLCENGINE_TOS_SECRET_KEY(为空)TOS secret key。
VOLCENGINE_TOS_ENDPOINT(为空)TOS 端点 URL。参考
VOLCENGINE_TOS_REGION(为空)TOS 区域,例如 cn-guangzhou
VariableDefaultDescription
BAIDU_OBS_BUCKET_NAME(为空)百度 OBS 存储桶名称。
BAIDU_OBS_ACCESS_KEY(为空)百度 OBS access key。
BAIDU_OBS_SECRET_KEY(为空)百度 OBS secret key。
BAIDU_OBS_ENDPOINT(为空)百度 OBS 服务器 URL。
VariableDefaultDescription
SUPABASE_BUCKET_NAME(为空)Supabase 存储桶名称。
SUPABASE_API_KEY(为空)Supabase API key。
SUPABASE_URL(为空)Supabase 服务器 URL。
VariableDefaultDescription
CLICKZETTA_VOLUME_TYPEuserVolume 类型。可选:usertableexternal
CLICKZETTA_VOLUME_NAME(为空)外部 Volume 名称(仅在 TYPE=external 时必填)。
CLICKZETTA_VOLUME_TABLE_PREFIXdataset_Table volume 的表前缀(仅在 TYPE=table 时使用)。
CLICKZETTA_VOLUME_DIFY_PREFIXdify_kmDify 文件目录前缀,用于与其他应用隔离。
ClickZetta Volume 复用 Vector Database 部分配置的 CLICKZETTA_* 连接参数。

归档存储

用于归档工作流运行日志的独立 S3 兼容存储。把超过保留期的工作流运行记录归档为 JSONL 格式。
VariableDefaultDescription
ARCHIVE_STORAGE_ENABLEDfalse为工作流日志归档启用归档存储。
ARCHIVE_STORAGE_ENDPOINT(为空)S3 兼容端点 URL。
ARCHIVE_STORAGE_ARCHIVE_BUCKET(为空)存放已归档工作流运行日志的存储桶。
ARCHIVE_STORAGE_EXPORT_BUCKET(为空)存放工作流运行导出的存储桶。
ARCHIVE_STORAGE_ACCESS_KEY(为空)Access key。
ARCHIVE_STORAGE_SECRET_KEY(为空)Secret key。
ARCHIVE_STORAGE_REGIONauto存储区域。

向量数据库配置

配置用于知识库嵌入存储和相似度搜索的向量数据库。每个供应商都有各自的凭据变量,只需配置你使用的那个。

VECTOR_STORE

默认值:weaviate 选择向量数据库后端。如果某个数据集已建立索引,该数据集存储的类型优先于此设置。 支持的值:weaviateoceanbaseseekdbqdrantmilvusmyscalerelytpgvectorpgvecto-rschromaopensearchoracletencentelasticsearchelasticsearch-jaanalyticdbcouchbasevikingdbopengausstablestorevastbasetidbtidb_on_qdrantbaidulindormhuawei_cloudupstashmatrixoneclickzettaalibabacloud_mysqlirishologres
VariableDefaultDescription
VECTOR_INDEX_NAME_PREFIXVector_index添加到向量数据库 collection 名称的前缀。如果多个 Dify 部署共用一个向量数据库实例,请更改此项。
VariableDefaultDescription
WEAVIATE_ENDPOINThttp://weaviate:8080Weaviate REST API 端点。
WEAVIATE_API_KEY(为空)Weaviate 鉴权用的 API key。
WEAVIATE_GRPC_ENDPOINTgrpc://weaviate:50051用于高性能二进制协议的独立 gRPC 端点。未设置时回退为从 HTTP 端点推断。
WEAVIATE_TOKENIZATIONword分词方式。可选:wordwhitespacecharacter(对 CJK 语言更友好)。
seekdb 是 OceanBase 的精简版,使用相同的连接配置。
VariableDefaultDescription
OCEANBASE_VECTOR_HOSToceanbase主机名或 IP 地址。
OCEANBASE_VECTOR_PORT2881端口号。
OCEANBASE_VECTOR_USERroot@test数据库用户名。
OCEANBASE_VECTOR_PASSWORDdifyai123456数据库密码。
OCEANBASE_VECTOR_DATABASEtest数据库名。
OCEANBASE_ENABLE_HYBRID_SEARCHfalse在向量搜索之外启用 BM25 查询的全文索引。要求 OceanBase >= 4.3.5.1。启用后必须重建 collection。
OCEANBASE_FULLTEXT_PARSERik全文解析器。内置:ngrambengspacengram2ik
VariableDefaultDescription
QDRANT_URLhttp://qdrant:6333Qdrant 端点地址。
QDRANT_API_KEYdifyai123456Qdrant 的 API key。
QDRANT_CLIENT_TIMEOUT20客户端超时(秒)。
QDRANT_GRPC_ENABLEDfalse启用 gRPC 通信。
QDRANT_GRPC_PORT6334gRPC 端口。
QDRANT_REPLICATION_FACTOR1每个分片的副本数。
VariableDefaultDescription
MILVUS_URIhttp://host.docker.internal:19530Milvus URI。使用 Zilliz Cloud 时填 Public Endpoint。
MILVUS_DATABASE(为空)数据库名。
MILVUS_TOKEN(为空)鉴权令牌。使用 Zilliz Cloud 时填 API Key。
MILVUS_USER(为空)用户名。
MILVUS_PASSWORD(为空)密码。
MILVUS_ENABLE_HYBRID_SEARCHfalse为全文检索启用 BM25 稀疏索引。要求 Milvus >= 2.5.0。
MILVUS_ANALYZER_PARAMS(为空)文本字段的分析器参数。
VariableDefaultDescription
MYSCALE_HOSTmyscaleMyScale 主机。
MYSCALE_PORT8123MyScale 端口。
MYSCALE_USERdefault用户名。
MYSCALE_PASSWORD(为空)密码。
MYSCALE_DATABASEdify数据库名。
MYSCALE_FTS_PARAMS(为空)全文检索参数。参考
VariableDefaultDescription
COUCHBASE_CONNECTION_STRINGcouchbase://couchbase-serverCouchbase 集群的连接字符串。
COUCHBASE_USERAdministrator用户名。
COUCHBASE_PASSWORDpassword密码。
COUCHBASE_BUCKET_NAMEEmbeddings存储桶名称。
COUCHBASE_SCOPE_NAME_defaultScope 名称。
VariableDefaultDescription
HOLOGRES_HOST(为空)主机名。
HOLOGRES_PORT80端口号。
HOLOGRES_DATABASE(为空)数据库名。
HOLOGRES_ACCESS_KEY_ID(为空)Access key ID(用作 PG 用户名)。
HOLOGRES_ACCESS_KEY_SECRET(为空)Access key secret(用作 PG 密码)。
HOLOGRES_SCHEMApublicSchema 名称。
HOLOGRES_TOKENIZERjieba文本字段的分词器。
HOLOGRES_DISTANCE_METHODCosine距离度量方法。
HOLOGRES_BASE_QUANTIZATION_TYPErabitq量化类型。
HOLOGRES_MAX_DEGREE64HNSW 最大度数。
HOLOGRES_EF_CONSTRUCTION400HNSW ef_construction 参数。
VariableDefaultDescription
PGVECTOR_HOSTpgvector主机名。
PGVECTOR_PORT5432端口号。
PGVECTOR_USERpostgres用户名。
PGVECTOR_PASSWORDdifyai123456密码。
PGVECTOR_DATABASEdify数据库名。
PGVECTOR_MIN_CONNECTION1连接池最小连接数。
PGVECTOR_MAX_CONNECTION5连接池最大连接数。
PGVECTOR_PG_BIGMfalse启用 pg_bigm 扩展用于全文检索。
VariableDefaultDescription
VASTBASE_HOSTvastbase主机名。
VASTBASE_PORT5432端口号。
VASTBASE_USERdify用户名。
VASTBASE_PASSWORDDifyai123456密码。
VASTBASE_DATABASEdify数据库名。
VASTBASE_MIN_CONNECTION1连接池最小连接数。
VASTBASE_MAX_CONNECTION5连接池最大连接数。
VariableDefaultDescription
PGVECTO_RS_HOSTpgvecto-rs主机名。
PGVECTO_RS_PORT5432端口号。
PGVECTO_RS_USERpostgres用户名。
PGVECTO_RS_PASSWORDdifyai123456密码。
PGVECTO_RS_DATABASEdify数据库名。
VariableDefaultDescription
ANALYTICDB_KEY_ID(为空)阿里云 access key ID。创建 AccessKey
ANALYTICDB_KEY_SECRET(为空)阿里云 access key secret。
ANALYTICDB_REGION_IDcn-hangzhou区域标识。
ANALYTICDB_INSTANCE_ID(为空)实例 ID,例如 gp-xxxxxx创建实例
ANALYTICDB_ACCOUNT(为空)账户名。创建账户
ANALYTICDB_PASSWORD(为空)账户密码。
ANALYTICDB_NAMESPACEdify命名空间(schema)。不存在时自动创建。
ANALYTICDB_NAMESPACE_PASSWORD(为空)命名空间密码。
ANALYTICDB_HOST(为空)直连主机(基于 API 访问的替代方案)。
ANALYTICDB_PORT5432直连端口。
ANALYTICDB_MIN_CONNECTION1连接池最小连接数。
ANALYTICDB_MAX_CONNECTION5连接池最大连接数。
VariableDefaultDescription
TIDB_VECTOR_HOSTtidb主机名。
TIDB_VECTOR_PORT4000端口号。
TIDB_VECTOR_USER(为空)用户名。
TIDB_VECTOR_PASSWORD(为空)密码。
TIDB_VECTOR_DATABASEdify数据库名。
VariableDefaultDescription
MATRIXONE_HOSTmatrixone主机名。
MATRIXONE_PORT6001端口号。
MATRIXONE_USERdump用户名。
MATRIXONE_PASSWORD111密码。
MATRIXONE_DATABASEdify数据库名。
VariableDefaultDescription
CHROMA_HOST127.0.0.1Chroma 服务器主机。
CHROMA_PORT8000Chroma 服务器端口。
CHROMA_TENANTdefault_tenant租户名称。
CHROMA_DATABASEdefault_database数据库名。
CHROMA_AUTH_PROVIDERchromadb.auth.token_authn.TokenAuthClientProvider鉴权 provider 类。
CHROMA_AUTH_CREDENTIALS(为空)鉴权凭据。
VariableDefaultDescription
ORACLE_USERdifyOracle 用户名。
ORACLE_PASSWORDdifyOracle 密码。
ORACLE_DSNoracle:1521/FREEPDB1数据源名称。
ORACLE_CONFIG_DIR/app/api/storage/walletOracle 配置目录。
ORACLE_WALLET_LOCATION/app/api/storage/walletAutonomous DB 的 wallet 位置。
ORACLE_WALLET_PASSWORDdifyWallet 密码。
ORACLE_IS_AUTONOMOUSfalse是否使用 Oracle Autonomous Database。
VariableDefaultDescription
ALIBABACLOUD_MYSQL_HOST127.0.0.1主机名。
ALIBABACLOUD_MYSQL_PORT3306端口号。
ALIBABACLOUD_MYSQL_USERroot用户名。
ALIBABACLOUD_MYSQL_PASSWORDdifyai123456密码。
ALIBABACLOUD_MYSQL_DATABASEdify数据库名。
ALIBABACLOUD_MYSQL_MAX_CONNECTION5连接池最大连接数。
ALIBABACLOUD_MYSQL_HNSW_M6HNSW M 参数。
VariableDefaultDescription
RELYT_HOSTdb主机名。
RELYT_PORT5432端口号。
RELYT_USERpostgres用户名。
RELYT_PASSWORDdifyai123456密码。
RELYT_DATABASEpostgres数据库名。
VariableDefaultDescription
OPENSEARCH_HOSTopensearch主机名。
OPENSEARCH_PORT9200端口号。
OPENSEARCH_SECUREtrue使用 HTTPS。
OPENSEARCH_VERIFY_CERTStrue校验 SSL 证书。
OPENSEARCH_AUTH_METHODbasicbasic 使用用户名/密码,aws_managed_iam 通过 Boto3 凭据使用 AWS SigV4 请求签名。
OPENSEARCH_USERadmin用户名。仅在 basic 鉴权时使用。
OPENSEARCH_PASSWORDadmin密码。仅在 basic 鉴权时使用。
OPENSEARCH_AWS_REGIONap-southeast-1AWS 区域。仅在 aws_managed_iam 鉴权时使用。
OPENSEARCH_AWS_SERVICEaossAWS 服务类型:es(Managed Cluster)或 aoss(OpenSearch Serverless)。
VariableDefaultDescription
TENCENT_VECTOR_DB_URLhttp://127.0.0.1访问地址。控制台
TENCENT_VECTOR_DB_API_KEYdifyAPI key。密钥管理
TENCENT_VECTOR_DB_TIMEOUT30请求超时(秒)。
TENCENT_VECTOR_DB_USERNAMEdify账户名。账户管理
TENCENT_VECTOR_DB_DATABASEdify数据库名。创建数据库
TENCENT_VECTOR_DB_SHARD1分片数。
TENCENT_VECTOR_DB_REPLICAS2副本数。
TENCENT_VECTOR_DB_ENABLE_HYBRID_SEARCHfalse启用混合检索。稀疏向量文档
VariableDefaultDescription
ELASTICSEARCH_HOST0.0.0.0主机名。
ELASTICSEARCH_PORT9200端口号。
ELASTICSEARCH_USERNAMEelastic用户名。
ELASTICSEARCH_PASSWORDelastic密码。
ELASTICSEARCH_USE_CLOUDfalse切换到 Elastic Cloud 模式。为 true 时使用 ELASTICSEARCH_CLOUD_URLELASTICSEARCH_API_KEY,而非主机/端口/用户名/密码。
ELASTICSEARCH_CLOUD_URL(为空)Elastic Cloud 端点 URL。ELASTICSEARCH_USE_CLOUD=true 时必填。
ELASTICSEARCH_API_KEY(为空)Elastic Cloud API key。ELASTICSEARCH_USE_CLOUD=true 时必填。
ELASTICSEARCH_VERIFY_CERTSfalse校验 SSL 证书。
ELASTICSEARCH_CA_CERTS(为空)CA 证书路径。
ELASTICSEARCH_REQUEST_TIMEOUT100000请求超时(毫秒)。
ELASTICSEARCH_RETRY_ON_TIMEOUTtrue超时时重试。
ELASTICSEARCH_MAX_RETRIES10最大重试次数。
VariableDefaultDescription
BAIDU_VECTOR_DB_ENDPOINThttp://127.0.0.1:5287端点 URL。
BAIDU_VECTOR_DB_CONNECTION_TIMEOUT_MS30000连接超时(毫秒)。
BAIDU_VECTOR_DB_ACCOUNTroot账户名。
BAIDU_VECTOR_DB_API_KEYdifyAPI key。
BAIDU_VECTOR_DB_DATABASEdify数据库名。
BAIDU_VECTOR_DB_SHARD1分片数。
BAIDU_VECTOR_DB_REPLICAS3副本数。
BAIDU_VECTOR_DB_INVERTED_INDEX_ANALYZERDEFAULT_ANALYZER倒排索引分析器。
BAIDU_VECTOR_DB_INVERTED_INDEX_PARSER_MODECOARSE_MODE倒排索引解析器模式。
BAIDU_VECTOR_DB_AUTO_BUILD_ROW_COUNT_INCREMENT500触发自动重建索引的行数绝对增量。与 _RATIO 配合,任一阈值先达到即触发。
BAIDU_VECTOR_DB_AUTO_BUILD_ROW_COUNT_INCREMENT_RATIO0.05触发自动重建索引的相对增长。任一阈值先达到即触发。
BAIDU_VECTOR_DB_REBUILD_INDEX_TIMEOUT_IN_SECONDS300客户端等待索引重建完成的最长时间。
VariableDefaultDescription
VIKINGDB_ACCESS_KEY(为空)Access key。
VIKINGDB_SECRET_KEY(为空)Secret key。
VIKINGDB_REGIONcn-shanghai区域。
VIKINGDB_HOSTapi-vikingdb.xxx.volces.comAPI 主机。替换为你所在区域的端点。
VIKINGDB_SCHEMEhttp协议(httphttps)。
VIKINGDB_CONNECTION_TIMEOUT30连接超时(秒)。
VIKINGDB_SOCKET_TIMEOUT30套接字超时(秒)。
VariableDefaultDescription
LINDORM_URLhttp://localhost:30070Lindorm 搜索引擎 URL。控制台
LINDORM_USERNAMEadmin用户名。
LINDORM_PASSWORDadmin密码。
LINDORM_USING_UGCtrue使用 UGC 模式。
LINDORM_QUERY_TIMEOUT1查询超时(秒)。
VariableDefaultDescription
OPENGAUSS_HOSTopengauss主机名。
OPENGAUSS_PORT6600端口号。
OPENGAUSS_USERpostgres用户名。
OPENGAUSS_PASSWORDDify@123密码。
OPENGAUSS_DATABASEdify数据库名。
OPENGAUSS_MIN_CONNECTION1连接池最小连接数。
OPENGAUSS_MAX_CONNECTION5连接池最大连接数。
OPENGAUSS_ENABLE_PQfalse启用 PQ 加速。
VariableDefaultDescription
HUAWEI_CLOUD_HOSTShttps://127.0.0.1:9200集群端点 URL。
HUAWEI_CLOUD_USERadmin用户名。
HUAWEI_CLOUD_PASSWORDadmin密码。
VariableDefaultDescription
UPSTASH_VECTOR_URL(为空)Upstash Vector 端点 URL。
UPSTASH_VECTOR_TOKEN(为空)Upstash Vector API 令牌。
VariableDefaultDescription
TABLESTORE_ENDPOINThttps://instance-name.cn-hangzhou.ots.aliyuncs.com端点地址。将 instance-name 替换为你的实例。
TABLESTORE_INSTANCE_NAME(为空)实例名称。
TABLESTORE_ACCESS_KEY_ID(为空)Access key ID。
TABLESTORE_ACCESS_KEY_SECRET(为空)Access key secret。
TABLESTORE_NORMALIZE_FULLTEXT_BM25_SCOREfalse归一化全文 BM25 分数。
VariableDefaultDescription
CLICKZETTA_USERNAME(为空)用户名。
CLICKZETTA_PASSWORD(为空)密码。
CLICKZETTA_INSTANCE(为空)实例名称。
CLICKZETTA_SERVICEapi.clickzetta.com服务端点。
CLICKZETTA_WORKSPACEquick_start工作空间名称。
CLICKZETTA_VCLUSTERdefault_ap虚拟集群。
CLICKZETTA_SCHEMAdifySchema 名称。
CLICKZETTA_BATCH_SIZE100操作的批处理大小。
CLICKZETTA_ENABLE_INVERTED_INDEXtrue启用倒排索引。
CLICKZETTA_ANALYZER_TYPEchinese分析器类型。
CLICKZETTA_ANALYZER_MODEsmart分析器模式。
CLICKZETTA_VECTOR_DISTANCE_FUNCTIONcosine_distance距离函数。
VariableDefaultDescription
IRIS_HOSTiris主机名。
IRIS_SUPER_SERVER_PORT1972Super server 端口。
IRIS_USER_SYSTEM用户名。
IRIS_PASSWORDDify@1234密码。
IRIS_DATABASEUSER数据库名。
IRIS_SCHEMAdifySchema 名称。
IRIS_CONNECTION_URL(为空)完整连接 URL(覆盖单项设置)。
IRIS_MIN_CONNECTION1连接池最小连接数。
IRIS_MAX_CONNECTION3连接池最大连接数。
IRIS_TEXT_INDEXtrue启用文本索引。
IRIS_TEXT_INDEX_LANGUAGEen文本索引语言。

知识库配置

VariableDefaultDescription
UPLOAD_FILE_SIZE_LIMIT15 (Helm default)文档上传(PDF、Word 文档等)的最大文件大小(MB)。超出时用户会看到「文件过大」错误。通过 values.yaml 中的 api.limits.uploadFileSize 设置。
UPLOAD_FILE_BATCH_LIMIT5 (Helm default)单次上传批次允许的最大文件数。通过 api.limits.uploadFileBatchCount 设置。
UPLOAD_FILE_EXTENSION_BLACKLIST(为空)禁止上传的文件扩展名安全黑名单。逗号分隔、小写、不带点。范例:exe,bat,cmd,com,scr,vbs,ps1,msi,dll
SINGLE_CHUNK_ATTACHMENT_LIMIT10单个知识库分段(chunk)中可嵌入的最大图片数。
IMAGE_FILE_BATCH_LIMIT10单次上传批次的最大图片文件数。
ATTACHMENT_IMAGE_FILE_SIZE_LIMIT2知识库索引期间从外部 URL 抓取图片的最大大小(MB)。区别于针对直接上传的 UPLOAD_IMAGE_FILE_SIZE_LIMIT
ATTACHMENT_IMAGE_DOWNLOAD_TIMEOUT60知识库索引期间从外部 URL 下载图片的超时(秒)。
ETL_TYPEdify (Helm default)文档提取库。dify 支持 txt、md、pdf、html、xlsx、docx、csv,Unstructured 额外支持 doc、msg、eml、ppt、pptx、xml、epub。当 global.rag.etlTypeUnstructured 时,chart 会设置 Unstructured 并自动接入 UNSTRUCTURED_API_URL
UNSTRUCTURED_API_URL(为空;etlType=Unstructured 时由 chart 设置)Unstructured.io API 端点。ETL_TYPEUnstructured 时必填。
UNSTRUCTURED_API_KEY(为空)Unstructured.io 鉴权用的 API key。
SCARF_NO_ANALYTICStrue禁用 Unstructured 库的遥测采集。
TOP_K_MAX_VALUE10 (Helm default)用户在知识库检索中可为 top_k 参数设置的最大值。通过 global.rag.topKMaxValue 设置。
DATASET_MAX_SEGMENTS_PER_REQUEST0每次 dataset API 请求的最大分段数。0 表示不限。

标注导入

VariableDefaultDescription
ANNOTATION_IMPORT_FILE_SIZE_LIMIT2标注导入的最大 CSV 文件大小(MB)。超出时返回 HTTP 413。
ANNOTATION_IMPORT_MAX_RECORDS10000每次标注导入的最大记录数。
ANNOTATION_IMPORT_MIN_RECORDS1每次标注导入所需的最少有效记录数。
ANNOTATION_IMPORT_RATE_LIMIT_PER_MINUTE5每个工作空间每分钟的最大标注导入请求数。超出时返回 HTTP 429。
ANNOTATION_IMPORT_RATE_LIMIT_PER_HOUR20每个工作空间每小时的最大标注导入请求数。
ANNOTATION_IMPORT_MAX_CONCURRENT5每个工作空间的最大并发标注导入任务数。

模型配置

VariableDefaultDescription
PLUGIN_BASED_TOKEN_COUNTING_ENABLEDfalse使用基于插件的 token 计数以精确跟踪用量。禁用时 token 计数返回 0(更快,但成本跟踪不够准确)。

多模态配置

VariableDefaultDescription
MULTIMODAL_SEND_FORMATbase64文件发送给多模态 LLM 的方式。base64 将文件数据嵌入请求(兼容性更好),url 发送签名 URL 供模型抓取(更快、请求更小,但模型必须能访问 FILES_URL)。
UPLOAD_IMAGE_FILE_SIZE_LIMIT5 (Helm default)直接上传的最大图片文件大小(MB,jpg、png、webp、gif、svg)。chart 默认 5(应用默认 10)。通过 api.limits.uploadImageFileSize 设置。
UPLOAD_VIDEO_FILE_SIZE_LIMIT100直接上传的最大视频文件大小(MB,mp4、mov、mpeg、webm)。
UPLOAD_AUDIO_FILE_SIZE_LIMIT50直接上传的最大音频文件大小(MB,mp3、m4a、wav、amr、mpga)。

Sentry 配置

Sentry 提供错误跟踪和性能监控。在 Helm 部署中,通过 values.yamlapi.sentryworker.sentryweb.sentry)按服务启用 Sentry。
VariableDefaultDescription
SENTRY_DSN(为空)Sentry DSN。启用 Sentry 时由 chart 按服务设置。
SENTRY_TRACES_SAMPLE_RATE1.0纳入性能追踪的请求比例(0.01 = 1%)。
SENTRY_PROFILES_SAMPLE_RATE1.0纳入 CPU/内存性能分析的请求比例。
PLUGIN_SENTRY_ENABLEDfalse为插件守护进程服务启用 Sentry。
PLUGIN_SENTRY_DSN(为空)插件守护进程的 Sentry DSN。

Notion 集成配置

将 Dify 连接到 Notion 作为知识库数据源。在 https://www.notion.so/my-integrations 获取集成凭据。
VariableDefaultDescription
NOTION_INTEGRATION_TYPEpublicpublic 使用标准 OAuth 2.0(需要 HTTPS 重定向 URL,以及 CLIENT_ID 和 CLIENT_SECRET),internal 使用直连集成令牌(支持 HTTP)。
NOTION_CLIENT_SECRET(为空)OAuth client secret。public 集成必填。
NOTION_CLIENT_ID(为空)OAuth client ID。public 集成必填。
NOTION_INTERNAL_SECRET(为空)来自 Notion 的直连集成令牌。internal 集成必填。

邮件配置

Dify 会为账户邀请、密码重置、登录验证码和 Human Input 节点通知发送邮件。配置三种受支持的服务商之一。邮件链接要求设置 CONSOLE_WEB_URL(见 通用变量)。
VariableDefaultDescription
MAIL_TYPEresend邮件服务商:resendsmtpsendgrid
MAIL_DEFAULT_SEND_FROM(为空)所有外发邮件的默认「From」地址。必填。
VariableDefaultDescription
RESEND_API_URLhttps://api.resend.comResend API 端点。自托管 Resend 或代理时可覆盖。
RESEND_API_KEY(为空)Resend API key。MAIL_TYPE=resend 时必填。
三种 TLS 模式:隐式 TLS(SMTP_USE_TLS=trueSMTP_OPPORTUNISTIC_TLS=false、端口 465)、STARTTLS(SMTP_USE_TLS=trueSMTP_OPPORTUNISTIC_TLS=true、端口 587)或明文(SMTP_USE_TLS=false、端口 25)。
VariableDefaultDescription
SMTP_SERVER(为空)SMTP 服务器地址。
SMTP_PORT465SMTP 服务器端口。STARTTLS 模式用 587
SMTP_USERNAME(为空)SMTP 用户名。对 IP 白名单服务器可为空。
SMTP_PASSWORD(为空)SMTP 密码。对 IP 白名单服务器可为空。
SMTP_USE_TLStrue启用 TLS。配合 SMTP_OPPORTUNISTIC_TLS=false 时使用隐式 TLS。
SMTP_OPPORTUNISTIC_TLSfalse使用 STARTTLS(显式 TLS)而非隐式 TLS。必须与 SMTP_USE_TLS=true 一起使用。
SMTP_LOCAL_HOSTNAME(为空)覆盖 SMTP HELO/EHLO 中发送的主机名。当你的 SMTP 服务器拒绝容器主机名时必填(Google Workspace、Microsoft 365 常见)。
VariableDefaultDescription
SENDGRID_API_KEY(为空)SendGrid API key。MAIL_TYPE=sendgrid 时必填。
更多细节见 SendGrid 文档

其他配置

索引

VariableDefaultDescription
INDEXING_MAX_SEGMENTATION_TOKENS_LENGTH4000 (Helm default)为知识库分段文档时,每个文本片段的最大 token 长度。值越大每个分段保留的上下文越多,值越小粒度越细。通过 global.rag.indexingMaxSegmentationTokensLength 设置。

Token 与邀请

所有 token 过期变量都控制存于 Redis 的一次性令牌保持有效的时长。过期后用户须重新申请新令牌。
VariableDefaultDescription
INVITE_EXPIRY_HOURS72工作空间邀请链接的有效时长(小时)。
RESET_PASSWORD_TOKEN_EXPIRY_MINUTES5密码重置令牌的有效期(分钟)。
EMAIL_REGISTER_TOKEN_EXPIRY_MINUTES5邮箱注册令牌的有效期(分钟)。
CHANGE_EMAIL_TOKEN_EXPIRY_MINUTES5更改邮箱令牌的有效期(分钟)。
OWNER_TRANSFER_TOKEN_EXPIRY_MINUTES5工作空间所有者转移令牌的有效期(分钟)。

代码执行沙箱

沙箱是一个独立服务,在隔离环境中运行 Python、JavaScript 和 Jinja2 代码节点。chart 会自动将 CODE_EXECUTION_ENDPOINT 指向集群内的沙箱服务。
VariableDefaultDescription
CODE_EXECUTION_ENDPOINT集群内沙箱服务 (Helm default)沙箱服务端点。chart 将其指向内置的沙箱服务。
CODE_EXECUTION_API_KEYdify-sandbox沙箱鉴权用的 API key。必须与沙箱服务中的 SANDBOX_API_KEY 一致。
CODE_EXECUTION_SSL_VERIFYtrue校验沙箱连接的 SSL。
CODE_EXECUTION_CONNECT_TIMEOUT10连接超时(秒)。
CODE_EXECUTION_READ_TIMEOUT60读取超时(秒)。
CODE_EXECUTION_WRITE_TIMEOUT10写入超时(秒)。
CODE_EXECUTION_POOL_MAX_CONNECTIONS100到沙箱服务的最大并发 HTTP 连接数。
CODE_EXECUTION_POOL_MAX_KEEPALIVE_CONNECTIONS20沙箱连接池中保持存活的最大空闲连接数。
CODE_EXECUTION_POOL_KEEPALIVE_EXPIRY5.0空闲沙箱连接被关闭前的秒数。
CODE_MAX_NUMBER9223372036854775807代码节点输出允许的最大数值。
CODE_MIN_NUMBER-9223372036854775808代码节点输出允许的最小数值。
CODE_MAX_STRING_LENGTH400000代码节点输出的最大字符串长度。
CODE_MAX_DEPTH5输出数据结构的最大嵌套深度。
CODE_MAX_PRECISION20输出中浮点数的最大小数位数。
CODE_MAX_STRING_ARRAY_LENGTH30字符串数组输出的最大元素数。
CODE_MAX_OBJECT_ARRAY_LENGTH30对象数组输出的最大元素数。
CODE_MAX_NUMBER_ARRAY_LENGTH1000数值数组输出的最大元素数。
TEMPLATE_TRANSFORM_MAX_LENGTH400000模板转换节点输出的最大字符长度。

工作流运行时

VariableDefaultDescription
WORKFLOW_MAX_EXECUTION_STEPS500单次工作流运行的最大节点执行数。超出会终止工作流。
WORKFLOW_MAX_EXECUTION_TIME1200单次工作流运行的最大墙钟时间(秒)。
WORKFLOW_CALL_MAX_DEPTH5工作流嵌套调用工作流的最大深度。防止无限递归。
MAX_VARIABLE_SIZE204800单个工作流变量的最大大小(字节,200 KB)。
WORKFLOW_FILE_UPLOAD_LIMIT10单次工作流执行可上传的最大文件数。
WORKFLOW_NODE_EXECUTION_STORAGErdbms工作流节点执行记录的存储位置。rdbms 将所有内容存于数据库,hybrid 将新数据存于对象存储并从两者读取。
DSL_EXPORT_ENCRYPT_DATASET_IDtrue导出 DSL 文件时加密 dataset ID。设为 false 可导出明文 ID,便于跨环境导入。

工作流存储仓库

以下变量选择由哪个后端实现处理工作流执行数据。默认的 SQLAlchemy 仓库将所有内容存于数据库。
VariableDefaultDescription
CORE_WORKFLOW_EXECUTION_REPOSITORYcore.repositories.sqlalchemy_workflow_execution_repository.SQLAlchemyWorkflowExecutionRepository工作流执行记录的仓库实现。
CORE_WORKFLOW_NODE_EXECUTION_REPOSITORYcore.repositories.sqlalchemy_workflow_node_execution_repository.SQLAlchemyWorkflowNodeExecutionRepository工作流节点执行记录的仓库实现。
API_WORKFLOW_RUN_REPOSITORYrepositories.sqlalchemy_api_workflow_run_repository.DifyAPISQLAlchemyWorkflowRunRepository工作流运行 API 操作的服务层仓库。
API_WORKFLOW_NODE_EXECUTION_REPOSITORYrepositories.sqlalchemy_api_workflow_node_execution_repository.DifyAPISQLAlchemyWorkflowNodeExecutionRepository工作流节点执行 API 操作的服务层仓库。
LOOP_NODE_MAX_COUNT100Loop 节点的最大迭代次数。防止无限循环。
MAX_PARALLEL_LIMIT10工作流中并行分支的最大数量。

GraphEngine Worker 池

VariableDefaultDescription
GRAPH_ENGINE_MIN_WORKERS3每个 GraphEngine 实例的最小 worker 数。
GRAPH_ENGINE_MAX_WORKERS10每个 GraphEngine 实例的最大 worker 数。
GRAPH_ENGINE_SCALE_UP_THRESHOLD3触发新增 worker 的队列深度。
GRAPH_ENGINE_SCALE_DOWN_IDLE_TIME5.0移除多余 worker 前的空闲时间(秒)。

工作流日志清理

chart 通过 workerBeat.enableWorkflowLogCleanup 启用此功能,它会在 beat ConfigMap 上设置 WORKFLOW_LOG_CLEANUP_ENABLED。其余变量不由 chart 设置,请通过 worker 和 beat 服务的 extraEnv 配置。
VariableDefaultDescription
WORKFLOW_LOG_CLEANUP_ENABLEDfalse (Helm default)启用每天凌晨 2:00 自动清理工作流执行日志。通过 workerBeat.enableWorkflowLogCleanup 设置。
WORKFLOW_LOG_RETENTION_DAYS30清理前保留工作流日志的天数。
WORKFLOW_LOG_CLEANUP_BATCH_SIZE100每个清理批次处理的日志条数。
WORKFLOW_LOG_CLEANUP_SPECIFIC_WORKFLOW_IDS(为空)限定清理范围的工作流 ID 列表,逗号分隔。为空时清理所有工作流日志。

HTTP Request 节点

以下变量用于配置工作流中调用外部 API 的 HTTP Request 节点。
VariableDefaultDescription
HTTP_REQUEST_NODE_MAX_TEXT_SIZE1048576最大文本响应大小(字节,1 MB)。超过此值的响应会被截断。
HTTP_REQUEST_NODE_MAX_BINARY_SIZE10485760最大二进制响应大小(字节,10 MB)。
HTTP_REQUEST_NODE_SSL_VERIFYtrue校验 SSL 证书。用自签名证书测试时可禁用。
HTTP_REQUEST_MAX_CONNECT_TIMEOUT10用户在工作流编辑器中可设置的最大连接超时(秒)。
HTTP_REQUEST_MAX_READ_TIMEOUT600读取超时上限(秒)。
HTTP_REQUEST_MAX_WRITE_TIMEOUT600写入超时上限(秒)。

Webhook

VariableDefaultDescription
WEBHOOK_REQUEST_BODY_MAX_SIZE10485760最大 webhook 负载大小(字节,10 MB)。更大的负载会被拒绝并返回 413 错误。

SSRF 防护

Dify 所有出站 HTTP 请求(HTTP 节点、图片下载等)都经由一个代理路由,该代理会拦截发往内部/私有 IP 段的请求,防止服务端请求伪造(SSRF)攻击。启用 SSRF 代理时,chart 会自动设置 SSRF_PROXY_HTTP_URLSSRF_PROXY_HTTPS_URL
VariableDefaultDescription
SSRF_PROXY_HTTP_URL集群内 SSRF 代理 (Helm default)HTTP 请求的 SSRF 代理 URL。
SSRF_PROXY_HTTPS_URL集群内 SSRF 代理 (Helm default)HTTPS 请求的 SSRF 代理 URL。
SSRF_POOL_MAX_CONNECTIONS100SSRF HTTP 客户端池的最大并发连接数。
SSRF_POOL_MAX_KEEPALIVE_CONNECTIONS20SSRF 池中保持存活的最大空闲连接数。
SSRF_POOL_KEEPALIVE_EXPIRY5.0空闲 SSRF 连接被关闭前的秒数。
RESPECT_XFORWARD_HEADERS_ENABLEDfalse信任反向代理传来的 X-Forwarded-For/Proto/Port 头。仅在单个可信反向代理之后启用。

Agent 配置

VariableDefaultDescription
MAX_TOOLS_NUM10一个 agent 可同时使用的最大工具数。
MAX_ITERATIONS_NUM99单次 agent 执行的最大推理迭代次数。

Web 前端服务

以下变量仅由 Next.js web 前端容器使用,不影响 Python 后端。
VariableDefaultDescription
TEXT_GENERATION_TIMEOUT_MS60000流式文本生成 UI 的前端超时。若数据流停滞超过此时长,UI 会暂停渲染。
ALLOW_INLINE_STYLESfalse允许用户生成的 Markdown 内容中使用内联 style 属性和 <style> 块。出于安全考虑默认禁用。
ALLOW_UNSAFE_DATA_SCHEMEfalse允许渲染使用 data: 协议的 URL。出于安全考虑默认禁用。
MARKETPLACE_URL由 chart 设置 (Helm default)前端中展示的市场 web URL。通过 global.marketplace.url 设置。

企业版专属配置

以下变量仅适用于 Dify 企业版。当 enterprise.enabledtrue 时,Helm chart 会将它们设置到 API 和 worker 的 ConfigMap 上。
VariableDefaultDescription
ENTERPRISE_ENABLEDtrue(启用企业版时由 chart 设置)企业版功能的总开关。启用前请就授权事宜联系你的 Dify 代表。
CAN_REPLACE_LOGOtrue(启用企业版时的 Helm default)允许自定义工作空间/控制台 Logo。chart 为企业版部署将其设为 true
MODEL_LB_ENABLEDtrue(启用企业版时的 Helm default)为某个模型在多个凭据间启用负载均衡。chart 为企业版部署将其设为 true(应用默认为 false)。
ENTERPRISE_API_URL集群内企业版服务 (Helm default)企业版后端服务的内部 URL。由 chart 自动设置。
ENTERPRISE_REQUEST_TIMEOUT5Dify API 调用企业版后端的最大超时(秒)。
ENTERPRISE_DISABLE_RUNTIME_CREDENTIAL_CHECKfalsetrue 时,凭据策略检查仅在保存工作流时进行,而非运行时。以一致性换取运行时性能。
INNER_APItrue(启用 inner API 时由 chart 设置)启用用于服务间调用的内部 API。

企业版遥测

用于企业版审计和追踪的 OpenTelemetry 导出。当 enterprise.enabledglobal.otel.enabled 均为 true 时,chart 会启用这些变量,并将端点接入集群内的企业版收集器。
VariableDefaultDescription
ENTERPRISE_TELEMETRY_ENABLEDfalse(启用 OTel 时由 chart 设为 true启用企业版遥测采集。同时要求 ENTERPRISE_ENABLED=true
ENTERPRISE_OTLP_ENDPOINT集群内收集器 (Helm default)企业版 OTel 收集器端点。
ENTERPRISE_OTLP_PROTOCOLgrpc(Helm default;应用默认 httpOTLP 协议:httpgrpc
ENTERPRISE_OTLP_HEADERS(为空)OTLP 导出的鉴权头(key=value,key2=value2)。
ENTERPRISE_OTLP_API_KEY(为空)企业版 OTLP 导出鉴权的 Bearer 令牌。
ENTERPRISE_INCLUDE_CONTENTfalse在追踪中包含输入/输出内容。默认关闭,以免记录敏感数据。
ENTERPRISE_SERVICE_NAMEdifyOTel 资源上报的服务名。
ENTERPRISE_OTEL_SAMPLING_RATE1.0企业版追踪的采样率(0.0 到 1.0)。

模型供应商与工具排序配置

自定义应用界面中可用的工具和模型供应商及其显示顺序。使用逗号分隔的值,各项之间不加空格。chart 从 values.yaml 中的 api.positionToolapi.positionProvider 写入这些变量。
VariableDefaultDescription
POSITION_TOOL_PINS(为空)将特定工具置顶。范例:bing,google
POSITION_TOOL_INCLUDES(为空)仅显示列出的工具。不设置时所有工具均可用。
POSITION_TOOL_EXCLUDES(为空)隐藏特定工具(置顶的工具不受影响)。
POSITION_PROVIDER_PINS(为空)将特定模型供应商置顶。范例:openai,anthropic
POSITION_PROVIDER_INCLUDES(为空)仅显示列出的供应商。不设置时所有供应商均可用。
POSITION_PROVIDER_EXCLUDES(为空)隐藏特定供应商(置顶的供应商不受影响)。

插件守护进程配置

插件守护进程是一个独立服务,管理插件生命周期(安装、执行、升级)。启用插件守护进程时,chart 会自动设置守护进程 URL、密钥和市场相关设置。
VariableDefaultDescription
PLUGIN_DAEMON_URL集群内插件守护进程服务 (Helm default)插件守护进程服务 URL。
PLUGIN_DAEMON_KEY由 chart 设置 (Helm default)插件守护进程的鉴权密钥。从 global.innerApiKey 派生。
PLUGIN_DAEMON_PORT5002 (Helm default)插件守护进程监听端口。
PLUGIN_DAEMON_TIMEOUT600.0所有插件守护进程请求的超时(秒)。
PLUGIN_MAX_PACKAGE_SIZE52428800 (Helm default)最大插件包大小(字节,50 MB)。
PLUGIN_MODEL_SCHEMA_CACHE_TTL3600缓存插件模型 schema 的时长(秒)。
MARKETPLACE_ENABLEDtrue (Helm default)启用插件市场。禁用时仅可使用本地安装的插件。通过 global.marketplace.enabled 设置。
MARKETPLACE_API_URLhttps://marketplace.dify.ai (Helm default)市场 API 端点。通过 global.marketplace.apiUrl 设置。
FORCE_VERIFYING_SIGNATUREtrue安装插件前要求有效签名。
PLUGIN_MAX_EXECUTION_TIMEOUT600插件执行超时(秒,插件守护进程一侧)。
PIP_MIRROR_URL(为空)插件守护进程安装插件依赖时使用的自定义 PyPI 镜像 URL。适用于离网环境。
ENDPOINT_URL_TEMPLATEglobal.consoleApiDomain 推导 (Helm default)插件端点的 URL 模板。{hook_id} 会被替换为实际的 hook ID。

OTLP / OpenTelemetry 配置

应用级 OpenTelemetry 埋点(区别于上面的企业版遥测)。启用时,Dify 会对 Flask 进行埋点并将遥测数据导出到 OTLP 收集器。
VariableDefaultDescription
ENABLE_OTELfalse应用级 OpenTelemetry 埋点的总开关。
OTLP_TRACE_ENDPOINT(为空)专用的 trace 端点 URL。未设置时回退到 {OTLP_BASE_ENDPOINT}/v1/traces
OTLP_METRIC_ENDPOINT(为空)专用的 metric 端点 URL。未设置时回退到 {OTLP_BASE_ENDPOINT}/v1/metrics
OTLP_BASE_ENDPOINThttp://localhost:4318OTLP 收集器基础 URL。
OTLP_API_KEY(为空)OTLP 鉴权用的 API key。以 Authorization: Bearer 头发送。
OTEL_EXPORTER_TYPEotlp导出器类型。otlp 导出到收集器,其他值使用控制台导出器。
OTEL_EXPORTER_OTLP_PROTOCOL(为空)OTLP 导出协议。grpc 使用 gRPC 导出器,其他值使用 HTTP。
OTEL_SAMPLING_RATE0.1追踪的请求比例(0.1 = 10%)。
OTEL_BATCH_EXPORT_SCHEDULE_DELAY5000批量导出之间的延迟(毫秒)。
OTEL_MAX_QUEUE_SIZE2048丢弃前队列中 span 的最大数量。
OTEL_MAX_EXPORT_BATCH_SIZE512每个导出批次的最大 span 数。
OTEL_METRIC_EXPORT_INTERVAL60000Metric 导出间隔(毫秒)。
OTEL_BATCH_EXPORT_TIMEOUT10000批量 span 导出超时(毫秒)。
OTEL_METRIC_EXPORT_TIMEOUT30000Metric 导出超时(毫秒)。

杂项

VariableDefaultDescription
CSP_WHITELIST(为空)在 Content Security Policy 头中额外允许的域名。
ALLOW_EMBEDfalse允许 Dify 页面被嵌入 iframe。为 false 时设置 X-Frame-Options: DENY 以防点击劫持。
SWAGGER_UI_ENABLEDfalse (Helm default)暴露 Swagger UI 以浏览 API 文档。Swagger 端点会绕过鉴权。chart 默认禁用。
SWAGGER_UI_PATH/swagger-ui.htmlSwagger UI 的 URL 路径。
MAX_SUBMIT_COUNT100并行执行工作流节点所用线程池的最大并发任务提交数。
TENANT_ISOLATED_TASK_CONCURRENCY1每个租户同时处理的文档索引或 RAG 流水线任务数。

定时任务配置

Dify 使用 Celery Beat 按可配置的计划运行后台维护任务。
VariableDefaultDescription
ENABLE_CLEAN_EMBEDDING_CACHE_TASKfalse每天凌晨 2:00 删除过期的嵌入缓存记录。
ENABLE_CLEAN_UNUSED_DATASETS_TASKfalse禁用保留期内无活动的知识库中的文档。每天凌晨 3:00 运行。
ENABLE_CLEAN_MESSAGESfalse每天凌晨 4:00 删除超过保留期的会话消息。
ENABLE_MAIL_CLEAN_DOCUMENT_NOTIFY_TASKfalse向工作空间所有者发送邮件,列出被清理任务自动禁用了文档的知识库。每周一上午 10:00 运行。
ENABLE_DATASETS_QUEUE_MONITORfalse监控 Redis 中数据集处理队列的积压。队列超过阈值时发送邮件告警。
QUEUE_MONITOR_INTERVAL30检查队列的频率(分钟)。
QUEUE_MONITOR_THRESHOLD200触发告警邮件的队列大小。
QUEUE_MONITOR_ALERT_EMAILS(为空)接收队列告警的邮箱地址(逗号分隔)。
ENABLE_CHECK_UPGRADABLE_PLUGIN_TASKtrue每 15 分钟检查市场中是否有更新的插件版本。
ENABLE_WORKFLOW_SCHEDULE_POLLER_TASKtrue启用触发定时工作流运行的工作流调度轮询器。
WORKFLOW_SCHEDULE_POLLER_INTERVAL1检查到期定时工作流的频率(分钟)。
WORKFLOW_SCHEDULE_POLLER_BATCH_SIZE100每个轮询周期获取的最大到期计划数。
WORKFLOW_SCHEDULE_MAX_DISPATCH_PER_TICK0熔断器:每个 tick 派发的最大计划数。0 表示不限。
ENABLE_WORKFLOW_RUN_CLEANUP_TASKfalse启用工作流运行记录的自动清理。
ENABLE_CREATE_TIDB_SERVERLESS_TASKfalse为向量数据库池化预创建 TiDB Serverless 集群。
ENABLE_UPDATE_TIDB_SERVERLESS_STATUS_TASKfalse定期更新 TiDB Serverless 集群状态。
ENABLE_HUMAN_INPUT_TIMEOUT_TASKtrue检查过期的 Human Input 表单,并恢复或停止超时的工作流。
HUMAN_INPUT_TIMEOUT_TASK_INTERVAL1检查过期 Human Input 表单的频率(分钟)。

记录保留与清理

VariableDefaultDescription
SANDBOX_EXPIRED_RECORDS_RETENTION_DAYS30超过这么多天的记录可被删除。
SANDBOX_EXPIRED_RECORDS_CLEAN_BATCH_SIZE1000每个清理批次处理的记录数。
SANDBOX_EXPIRED_RECORDS_CLEAN_BATCH_MAX_INTERVAL200清理批次之间的最大随机延迟(毫秒)。
SANDBOX_EXPIRED_RECORDS_CLEAN_TASK_LOCK_TTL90000Redis 锁 TTL(秒,约 25 小时),防止清理任务并发执行。

阿里云 SLS Logstore 配置

与阿里云日志服务(SLS)的可选集成,将工作流执行日志存于外部而非数据库。
VariableDefaultDescription
ALIYUN_SLS_ACCESS_KEY_ID(为空)SLS 鉴权用的阿里云 access key ID。
ALIYUN_SLS_ACCESS_KEY_SECRET(为空)SLS 鉴权用的阿里云 access key secret。
ALIYUN_SLS_ENDPOINT(为空)SLS 服务端点 URL(例如 cn-hangzhou.log.aliyuncs.com)。
ALIYUN_SLS_REGION(为空)阿里云区域(例如 cn-hangzhou)。
ALIYUN_SLS_PROJECT_NAME(为空)存储工作流日志的 SLS 项目名。
ALIYUN_SLS_LOGSTORE_TTL365SLS logstore 的数据保留天数。3650 表示永久存储。
LOGSTORE_DUAL_WRITE_ENABLEDfalse同时将工作流数据写入 SLS 和 PostgreSQL。迁移到 SLS 期间很有用。
LOGSTORE_DUAL_READ_ENABLEDtrue当 SLS 无结果时回退到 PostgreSQL。
LOGSTORE_ENABLE_PUT_GRAPH_FIELDtrue在 SLS 日志中包含完整的工作流图定义。设为 false 可减少存储。

事件总线配置

API 与 Celery worker 之间基于 Redis 的事件传输。
VariableDefaultDescription
EVENT_BUS_REDIS_URL(为空)事件流的 Redis 连接 URL。为空时使用主 Redis 连接设置。
EVENT_BUS_REDIS_CHANNEL_TYPEpubsub传输类型:pubsubshardedstreams(至少一次投递)。
EVENT_BUS_REDIS_USE_CLUSTERSfalse为事件总线启用 Redis Cluster 模式。大型部署推荐。

插件守护进程存储配置

插件守护进程可将插件包存于不同的存储后端。只需配置与 PLUGIN_STORAGE_TYPE 匹配的那个供应商。
VariableDefaultDescription
PLUGIN_STORAGE_TYPElocal插件存储后端:localaws_s3tencent_cosazure_blobaliyun_ossvolcengine_tos
PLUGIN_STORAGE_LOCAL_ROOT/app/storage本地插件存储的根目录。
PLUGIN_WORKING_PATH/app/storage/cwd插件执行的工作目录。
PLUGIN_INSTALLED_PATHplugin已安装插件的子目录。
PLUGIN_PACKAGE_CACHE_PATHplugin_packages缓存插件包的子目录。
PLUGIN_MEDIA_CACHE_PATHassets缓存媒体资源的子目录。
PLUGIN_STORAGE_OSS_BUCKET(为空)对象存储桶名称(在 S3/COS/OSS/TOS 各供应商间共用)。
PLUGIN_PYTHON_ENV_INIT_TIMEOUT120为插件初始化 Python 环境的超时(秒)。
PLUGIN_STDIO_BUFFER_SIZE1024插件 stdio 通信的缓冲区大小(字节)。
PLUGIN_STDIO_MAX_BUFFER_SIZE5242880插件 stdio 通信的最大缓冲区大小(字节,5 MB)。
VariableDefaultDescription
PLUGIN_S3_USE_AWSfalse使用 AWS S3(区别于 S3 兼容服务)。
PLUGIN_S3_USE_AWS_MANAGED_IAMfalse使用 IAM 角色而非显式凭据。
PLUGIN_S3_ENDPOINT(为空)S3 端点 URL。
PLUGIN_S3_USE_PATH_STYLEfalse使用 path-style URL 而非 virtual-hosted。
PLUGIN_AWS_ACCESS_KEY(为空)AWS access key。
PLUGIN_AWS_SECRET_KEY(为空)AWS secret key。
PLUGIN_AWS_REGION(为空)AWS 区域。
VariableDefaultDescription
PLUGIN_AZURE_BLOB_STORAGE_CONTAINER_NAME(为空)Azure Blob 容器名。
PLUGIN_AZURE_BLOB_STORAGE_CONNECTION_STRING(为空)Azure Blob 连接字符串。
VariableDefaultDescription
PLUGIN_TENCENT_COS_SECRET_KEY(为空)腾讯 COS secret key。
PLUGIN_TENCENT_COS_SECRET_ID(为空)腾讯 COS secret ID。
PLUGIN_TENCENT_COS_REGION(为空)腾讯 COS 区域。
VariableDefaultDescription
PLUGIN_ALIYUN_OSS_REGION(为空)阿里云 OSS 区域。
PLUGIN_ALIYUN_OSS_ENDPOINT(为空)阿里云 OSS 端点。
PLUGIN_ALIYUN_OSS_ACCESS_KEY_ID(为空)阿里云 OSS access key ID。
PLUGIN_ALIYUN_OSS_ACCESS_KEY_SECRET(为空)阿里云 OSS access key secret。
PLUGIN_ALIYUN_OSS_AUTH_VERSIONv4阿里云 OSS 鉴权版本。
PLUGIN_ALIYUN_OSS_PATH(为空)阿里云 OSS 路径前缀。
VariableDefaultDescription
PLUGIN_VOLCENGINE_TOS_ENDPOINT(为空)火山引擎 TOS 端点。
PLUGIN_VOLCENGINE_TOS_ACCESS_KEY(为空)火山引擎 TOS access key。
PLUGIN_VOLCENGINE_TOS_SECRET_KEY(为空)火山引擎 TOS secret key。
PLUGIN_VOLCENGINE_TOS_REGION(为空)火山引擎 TOS 区域。

常见问题

如何设置 values.yaml 中没有的变量?

通过需要该变量的服务(apiworkerweb)的 extraEnv 字段添加。例如,在 API 服务上设置两个变量:
api:
  extraEnv:
    - name: ENV_FROM_COMMUNITY1
      value: "env123"
    - name: ENV_FROM_COMMUNITY2
      value: "env123"
同样的方式适用于 worker.extraEnvweb.extraEnv。在每个读取该变量的服务上都设置一遍。

如何配置 HTTP_PROXYHTTPS_PROXY

出于安全考虑,你可能需要让 Dify API 服务的出站流量经由代理路由。使用 extraEnv 字段:
api:
  extraEnv:
    - name: "HTTP_PROXY"
      value: "http://proxy.example.com:8080"
    - name: "HTTPS_PROXY"
      value: "http://proxy.example.com:8080"