这是一份Dify平台的环境变量配置文件,对平台的各项功能、服务和组件进行参数设置。以下是对其主要部分的详细解读:
1. 通用变量(Common Variables)
CONSOLE_API_URL
:控制台API的后端URL,用于拼接授权回调。若为空,使用同一域名。CONSOLE_WEB_URL
:控制台Web前端的URL,用于拼接前端地址和CORS配置。SERVICE_API_URL
、APP_API_URL
、APP_WEB_URL
:分别为服务API、Web应用API后端及Web应用的URL,用于向前端展示或声明后端地址。FILES_URL
:文件预览或下载的URL前缀,用于前端展示或多模型输入。
2. 服务器配置(Server Configuration)
- 日志相关:
LOG_LEVEL
:应用的日志级别,可选择DEBUG
、INFO
、WARNING
、ERROR
、CRITICAL
。LOG_FILE
:日志文件路径。LOG_FILE_MAX_SIZE
、LOG_FILE_BACKUP_COUNT
:分别指定日志文件最大大小(MB)和最大备份数量。LOG_DATEFORMAT
、LOG_TZ
:日志日期格式和时区。
- 调试模式:
DEBUG
:应用调试模式,默认false
,本地开发建议开启。FLASK_DEBUG
:Flask调试模式,开启可在界面输出跟踪信息。
- 其他:
SECRET_KEY
:用于安全签名会话cookie和加密数据库敏感信息的密钥。INIT_PASSWORD
:管理员用户初始化密码,不设置则创建初始管理员账户时不提示密码。DEPLOY_ENV
:部署环境,可选择PRODUCTION
、TESTING
,默认PRODUCTION
。CHECK_UPDATE_URL
:版本检查的URL。OPENAI_API_BASE
:OpenAI API的基础地址,默认是官方地址,可替换为国内镜像或本地兼容API地址。MIGRATION_ENABLED
:是否在应用启动前执行数据库迁移。FILES_ACCESS_TIMEOUT
:文件访问超时时间(秒)。ACCESS_TOKEN_EXPIRE_MINUTES
、REFRESH_TOKEN_EXPIRE_DAYS
:分别为访问令牌和刷新令牌的过期时间。APP_MAX_ACTIVE_REQUESTS
、APP_MAX_EXECUTION_TIME
:应用的最大活动请求数和最大执行时间。
3. 容器启动相关配置(Container Startup Related Configuration)
DIFY_BIND_ADDRESS
、DIFY_PORT
:API服务绑定的地址和端口。SERVER_WORKER_AMOUNT
、SERVER_WORKER_CLASS
、SERVER_WORKER_CONNECTIONS
:API服务器工作进程的数量、类型和默认连接数。CELERY_WORKER_CLASS
、CELERY_WORKER_AMOUNT
:Celery工作进程的类型和数量。CELERY_AUTO_SCALE
、CELERY_MAX_WORKERS
、CELERY_MIN_WORKERS
:是否启用Celery工作进程自动缩放及最大、最小工作进程数。GUNICORN_TIMEOUT
:Gunicorn请求处理超时时间。API_TOOL_DEFAULT_CONNECT_TIMEOUT
、API_TOOL_DEFAULT_READ_TIMEOUT
:API工具的默认连接和读取超时时间。
4. 数据库配置(Database Configuration)
DB_USERNAME
、DB_PASSWORD
、DB_HOST
、DB_PORT
、DB_DATABASE
:PostgreSQL数据库的用户名、密码、主机、端口和数据库名。SQLALCHEMY_POOL_SIZE
、SQLALCHEMY_POOL_RECYCLE
、SQLALCHEMY_ECHO
:数据库连接池的大小、回收时间和是否打印SQL语句。POSTGRES_MAX_CONNECTIONS
、POSTGRES_SHARED_BUFFERS
、POSTGRES_WORK_MEM
、POSTGRES_MAINTENANCE_WORK_MEM
、POSTGRES_EFFECTIVE_CACHE_SIZE
:PostgreSQL数据库的相关资源配置参数。
5. Redis配置(Redis Configuration)
REDIS_HOST
、REDIS_PORT
、REDIS_USERNAME
、REDIS_PASSWORD
、REDIS_USE_SSL
、REDIS_DB
:Redis的主机、端口、用户名、密码、是否使用SSL及数据库编号。REDIS_USE_SENTINEL
、REDIS_SENTINELS
、REDIS_SENTINEL_SERVICE_NAME
、REDIS_SENTINEL_USERNAME
、REDIS_SENTINEL_PASSWORD
、REDIS_SENTINEL_SOCKET_TIMEOUT
:是否使用Redis Sentinel模式及相关配置。REDIS_USE_CLUSTERS
、REDIS_CLUSTERS
、REDIS_CLUSTERS_PASSWORD
:是否使用Redis Cluster模式及相关配置。
6. Celery配置(Celery Configuration)
CELERY_BROKER_URL
、BROKER_USE_SSL
:Celery使用的消息代理URL及是否使用SSL。CELERY_USE_SENTINEL
、CELERY_SENTINEL_MASTER_NAME
、CELERY_SENTINEL_SOCKET_TIMEOUT
:若使用Redis Sentinel,相关的配置参数。
7. CORS配置(CORS Configuration)
WEB_API_CORS_ALLOW_ORIGINS
、CONSOLE_CORS_ALLOW_ORIGINS
:分别指定Web API和控制台API的跨域请求允许来源。
8. 文件存储配置(File Storage Configuration)
STORAGE_TYPE
:文件存储类型,如opendal
。OPENDAL_SCHEME
、OPENDAL_FS_ROOT
:OpenDAL存储方案及本地文件系统根目录。S3_*
、AZURE_BLOB_*
、GOOGLE_STORAGE_*
等:不同云存储服务(S3、Azure Blob、Google Storage等)的配置参数。
9. 向量数据库配置(Vector Database Configuration)
VECTOR_STORE
:向量存储类型,支持多种类型如weaviate
、qdrant
等。- 针对不同向量存储类型(如
WEAVIATE_*
、QDRANT_*
、MILVUS_*
等)的相应配置参数,包括端点URL、API密钥、超时时间等。
10. 知识配置(Knowledge Configuration)
UPLOAD_FILE_SIZE_LIMIT
、UPLOAD_FILE_BATCH_LIMIT
:上传文件的大小限制(MB)和一次上传的最大文件数。ETL_TYPE
:ETL类型,可选择dify
或Unstructured
。UNSTRUCTURED_API_URL
、UNSTRUCTURED_API_KEY
:当ETL_TYPE
为Unstructured
时,Unstructured.io的API路径和密钥。
11. 模型配置(Model Configuration)
PROMPT_GENERATION_MAX_TOKENS
、CODE_GENERATION_MAX_TOKENS
:提示生成和代码生成工具中允许的最大令牌数。
12. 多模态配置(Multi-modal Configuration)
MULTIMODAL_SEND_FORMAT
:多模态模型输入的图像、视频、音频、文档格式,默认base64
,也可选择url
。UPLOAD_IMAGE_FILE_SIZE_LIMIT
、UPLOAD_VIDEO_FILE_SIZE_LIMIT
、UPLOAD_AUDIO_FILE_SIZE_LIMIT
:分别为上传图像、视频、音频文件的大小限制(MB)。
13. Sentry配置(Sentry Configuration)
SENTRY_DSN
、API_SENTRY_DSN
、WEB_SENTRY_DSN
:Sentry服务的DSN地址,用于应用监控和错误日志跟踪。API_SENTRY_TRACES_SAMPLE_RATE
、API_SENTRY_PROFILES_SAMPLE_RATE
:API服务Sentry事件和配置文件的报告比率。
14. Notion集成配置(Notion Integration Configuration)
NOTION_INTEGRATION_TYPE
:Notion集成类型,可选择public
或internal
。NOTION_CLIENT_SECRET
、NOTION_CLIENT_ID
、NOTION_INTERNAL_SECRET
:根据集成类型所需的客户端密钥、ID或内部密钥。
15. 邮件相关配置(Mail related configuration)
MAIL_TYPE
:邮件类型,支持resend
或smtp
。MAIL_DEFAULT_SEND_FROM
:默认发件人邮箱地址。RESEND_API_URL
、RESEND_API_KEY
:当MAIL_TYPE
为resend
时,Resend邮件服务的API地址和密钥。SMTP_SERVER
、SMTP_PORT
、SMTP_USERNAME
、SMTP_PASSWORD
、SMTP_USE_TLS
、SMTP_OPPORTUNISTIC_TLS
:当MAIL_TYPE
为smtp
时,SMTP服务器的相关配置。
16. 其他配置(Others Configuration)
INDEXING_MAX_SEGMENTATION_TOKENS_LENGTH
:索引时分割令牌的最大长度。INVITE_EXPIRY_HOURS
、RESET_PASSWORD_TOKEN_EXPIRY_MINUTES
:成员邀请链接和重置密码令牌的有效时间。CODE_EXECUTION_*
:代码执行服务的端点、API密钥及各种超时时间、数据限制等配置。WORKFLOW_*
:工作流运行时的各种配置,如最大执行步骤、时间、调用深度、变量大小等。HTTP_REQUEST_NODE_*
:工作流中HTTP请求节点的配置,如最大二进制和文本大小、SSL验证。SSRF_PROXY_*
:SSRF代理服务器的HTTP和HTTPS URL。LOOP_NODE_MAX_COUNT
:工作流中循环节点的最大循环次数。MAX_TOOLS_NUM
、MAX_PARALLEL_LIMIT
:代理中可使用的最大工具数和工作流中最大并行分支数。
17. 各服务特定环境变量
TEXT_GENERATION_TIMEOUT_MS
:Web服务中文本生成的超时时间(毫秒)。PGUSER
、POSTGRES_PASSWORD
、POSTGRES_DB
、PGDATA
:数据库服务的相关环境变量。SANDBOX_*
:沙箱服务的API密钥、运行模式、超时时间等配置。WEAVIATE_*
:当使用Weaviate作为向量存储时的相关配置。CHROMA_*
:当使用Chroma作为向量存储时的认证和持久化配置。ORACLE_*
:当使用Oracle作为向量存储时的相关配置。MILVUS_*
:当使用Milvus作为向量存储时的ETCD、MinIO等相关配置。PGVECTOR_*
:当使用pgvector或pgvecto - rs作为向量存储时的数据库相关配置。OPENSEARCH_*
:当使用OpenSearch作为向量存储时的相关配置。
18. Nginx反向代理配置
NGINX_*
:Nginx服务器的配置,包括服务器名称、是否启用HTTPS、端口、SSL证书及密钥文件名、协议、工作进程数、客户端最大请求体大小、保持连接超时时间、代理读写超时时间等。CERTBOT_*
:Certbot获取证书的相关配置,如邮箱、域名、命令选项。
19. SSRF代理配置
SSRF_*
:SSRF代理的端口、核心转储目录、反向代理端口、超时时间等配置。
20. 其他杂项配置
COMPOSE_PROFILES
:根据向量数据库类型指定Docker Compose配置文件。POSITION_TOOL_*
、POSITION_PROVIDER_*
:用于指定应用中可使用的工具和模型提供商,通过引脚、包含或排除列表配置。CSP_WHITELIST
:内容安全策略(CSP)的白名单。CREATE_TIDB_SERVICE_JOB_ENABLED
:是否启用创建TiDB服务作业。MAX_SUBMIT_COUNT
:并行节点执行时线程池中的最大提交线程数。TOP_K_MAX_VALUE
:RAG中top - k值的最大值。
21. 插件守护进程配置
DB_PLUGIN_DATABASE
:插件数据库名称。EXPOSE_PLUGIN_DAEMON_PORT
、PLUGIN_DAEMON_PORT
:插件守护进程暴露的端口。PLUGIN_DAEMON_KEY
、PLUGIN_DAEMON_URL
:插件守护进程的密钥和URL。PLUGIN_MAX_PACKAGE_SIZE
:插件最大包大小。PLUGIN_PPROF_ENABLED
:是否启用插件性能分析。PLUGIN_DEBUGGING_*
:插件调试相关的主机和端口配置。PLUGIN_DIFY_INNER_API_KEY
、PLUGIN_DIFY_INNER_API_URL
:插件与Dify内部API通信的密钥和URL。ENDPOINT_URL_TEMPLATE
:端点URL模板。MARKETPLACE_ENABLED
、MARKETPLACE_API_URL
:是否启用插件市场及市场API URL。FORCE_VERIFYING_SIGNATURE
:是否强制验证签名。PLUGIN_PYTHON_ENV_INIT_TIMEOUT
、PLUGIN_MAX_EXECUTION_TIMEOUT
、PIP_MIRROR_URL
:插件Python环境初始化超时时间、最大执行超时时间和PIP镜像URL。