dify_container_shared_envs.go 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242
  1. package models
  2. import (
  3. "yunion.io/x/onecloud/pkg/apis"
  4. api "yunion.io/x/onecloud/pkg/apis/llm"
  5. )
  6. var sharedApiWorkerEnvKeyVal []*apis.ContainerKeyValue
  7. func getSharedApiWorkerEnv(custom *DifyContainerEnv) []*apis.ContainerKeyValue {
  8. if sharedApiWorkerEnvKeyVal == nil {
  9. sharedApiWorkerEnv := &DifyContainerEnv{
  10. "CONSOLE_API_URL": "",
  11. "CONSOLE_WEB_URL": "",
  12. "SERVICE_API_URL": "",
  13. "APP_API_URL": "",
  14. "APP_WEB_URL": "",
  15. "LANG": "en_US.UTF-8",
  16. "LC_ALL": "en_US.UTF-8",
  17. "PYTHONIOENCODING": "utf-8",
  18. "LOG_LEVEL": "INFO",
  19. "LOG_FILE": "/app/logs/server.log",
  20. "LOG_FILE_MAX_SIZE": "20",
  21. "LOG_FILE_BACKUP_COUNT": "5",
  22. "LOG_DATEFORMAT": "%Y-%m-%d %H:%M:%S",
  23. "LOG_TZ": "UTC",
  24. "DEBUG": "false",
  25. "FLASK_DEBUG": "false",
  26. "ENABLE_REQUEST_LOGGING": "False",
  27. "SECRET_KEY": api.DIFY_SECRET_KEY,
  28. "INIT_PASSWORD": "",
  29. "DEPLOY_ENV": "PRODUCTION",
  30. "CHECK_UPDATE_URL": "https://updates.dify.ai",
  31. "OPENAI_API_BASE": "https://api.openai.com/v1",
  32. "MIGRATION_ENABLED": "true",
  33. "FILES_ACCESS_TIMEOUT": "300",
  34. "ACCESS_TOKEN_EXPIRE_MINUTES": "60",
  35. "REFRESH_TOKEN_EXPIRE_DAYS": "30",
  36. "APP_MAX_ACTIVE_REQUESTS": "0",
  37. "APP_MAX_EXECUTION_TIME": "1200",
  38. "DIFY_BIND_ADDRESS": "0.0.0.0",
  39. "DIFY_PORT": "5001",
  40. "SERVER_WORKER_AMOUNT": "1",
  41. "SERVER_WORKER_CLASS": "gevent",
  42. "SERVER_WORKER_CONNECTIONS": "10",
  43. "CELERY_WORKER_CLASS": "",
  44. "GUNICORN_TIMEOUT": "360",
  45. "CELERY_WORKER_AMOUNT": "",
  46. "CELERY_AUTO_SCALE": "false",
  47. "CELERY_MAX_WORKERS": "",
  48. "CELERY_MIN_WORKERS": "",
  49. "API_TOOL_DEFAULT_CONNECT_TIMEOUT": "10",
  50. "API_TOOL_DEFAULT_READ_TIMEOUT": "60",
  51. "ENABLE_WEBSITE_JINAREADER": api.DIFY_WEB_ENABLE_WEBSITE_JINAREADER,
  52. "ENABLE_WEBSITE_FIRECRAWL": api.DIFY_WEB_ENABLE_WEBSITE_FIRECRAWL,
  53. "ENABLE_WEBSITE_WATERCRAWL": api.DIFY_WEB_ENABLE_WEBSITE_WATERCRAWL,
  54. "DB_USERNAME": api.DIFY_POSTGRES_USER,
  55. "DB_PASSWORD": api.DIFY_POSTGRES_PASSWORD,
  56. "DB_HOST": api.DIFY_LOCALHOST,
  57. "DB_PORT": api.DIFY_POSTGRES_PORT,
  58. "DB_DATABASE": "dify",
  59. "SQLALCHEMY_POOL_SIZE": "30",
  60. "SQLALCHEMY_POOL_RECYCLE": "3600",
  61. "SQLALCHEMY_ECHO": "false",
  62. "SQLALCHEMY_POOL_PRE_PING": "false",
  63. "SQLALCHEMY_POOL_USE_LIFO": "false",
  64. "POSTGRES_MAX_CONNECTIONS": api.DIFY_POSTGRES_MAX_CONNECTIONS,
  65. "POSTGRES_SHARED_BUFFERS": api.DIFY_POSTGRES_SHARED_BUFFERS,
  66. "POSTGRES_WORK_MEM": api.DIFY_POSTGRES_WORK_MEM,
  67. "POSTGRES_MAINTENANCE_WORK_MEM": api.DIFY_POSTGRES_MAINTENANCE_WORK_MEM,
  68. "POSTGRES_EFFECTIVE_CACHE_SIZE": api.DIFY_POSTGRES_EFFECTIVE_CACHE_SIZE,
  69. "REDIS_HOST": api.DIFY_LOCALHOST,
  70. "REDIS_PORT": api.DIFY_REDIS_PORT,
  71. "REDIS_USERNAME": "",
  72. "REDIS_PASSWORD": api.DIFY_REDISCLI_AUTH,
  73. "REDIS_USE_SSL": "false",
  74. "REDIS_DB": "0",
  75. "REDIS_USE_SENTINEL": "false",
  76. "REDIS_SENTINELS": "",
  77. "REDIS_SENTINEL_SERVICE_NAME": "",
  78. "REDIS_SENTINEL_USERNAME": "",
  79. "REDIS_SENTINEL_PASSWORD": "",
  80. "REDIS_SENTINEL_SOCKET_TIMEOUT": "0.1",
  81. "REDIS_USE_CLUSTERS": "false",
  82. "REDIS_CLUSTERS": "",
  83. "REDIS_CLUSTERS_PASSWORD": "",
  84. "CELERY_BROKER_URL": "redis://:" + api.DIFY_REDISCLI_AUTH + "@" + api.DIFY_LOCALHOST + ":" + api.DIFY_REDIS_PORT + "/1",
  85. "CELERY_BACKEND": api.DIFY_LOCALHOST,
  86. "BROKER_USE_SSL": "false",
  87. "CELERY_USE_SENTINEL": "false",
  88. "CELERY_SENTINEL_MASTER_NAME": "",
  89. "CELERY_SENTINEL_PASSWORD": "",
  90. "CELERY_SENTINEL_SOCKET_TIMEOUT": "0.1",
  91. "STORAGE_TYPE": "opendal",
  92. "OPENDAL_SCHEME": "fs",
  93. "OPENDAL_FS_ROOT": "storage",
  94. "VECTOR_STORE": "weaviate",
  95. "VECTOR_INDEX_NAME_PREFIX": "Vector_index",
  96. "WEAVIATE_ENDPOINT": "http://" + api.DIFY_LOCALHOST + ":8080",
  97. "WEAVIATE_API_KEY": api.DIFY_WEAVIATE_AUTHENTICATION_APIKEY_ALLOWED_KEYS,
  98. "UPLOAD_FILE_SIZE_LIMIT": "15",
  99. "UPLOAD_FILE_BATCH_LIMIT": "5",
  100. "ETL_TYPE": "dify",
  101. "UNSTRUCTURED_API_URL": "",
  102. "UNSTRUCTURED_API_KEY": "",
  103. "SCARF_NO_ANALYTICS": "true",
  104. "PROMPT_GENERATION_MAX_TOKENS": "512",
  105. "CODE_GENERATION_MAX_TOKENS": "1024",
  106. "PLUGIN_BASED_TOKEN_COUNTING_ENABLED": "false",
  107. "MULTIMODAL_SEND_FORMAT": "base64",
  108. "UPLOAD_IMAGE_FILE_SIZE_LIMIT": "10",
  109. "UPLOAD_VIDEO_FILE_SIZE_LIMIT": "100",
  110. "UPLOAD_AUDIO_FILE_SIZE_LIMIT": "50",
  111. "API_SENTRY_DSN": api.DIFY_API_SENTRY_DSN,
  112. "API_SENTRY_TRACES_SAMPLE_RATE": api.DIFY_API_SENTRY_TRACES_SAMPLE_RATE,
  113. "API_SENTRY_PROFILES_SAMPLE_RATE": api.DIFY_API_SENTRY_PROFILES_SAMPLE_RATE,
  114. "WEB_SENTRY_DSN": "",
  115. "NOTION_INTEGRATION_TYPE": "public",
  116. "NOTION_CLIENT_SECRET": "",
  117. "NOTION_CLIENT_ID": "",
  118. "NOTION_INTERNAL_SECRET": "",
  119. "MAIL_TYPE": "resend",
  120. "MAIL_DEFAULT_SEND_FROM": "",
  121. "RESEND_API_URL": "https://api.resend.com",
  122. "RESEND_API_KEY": "your-resend-api-key",
  123. "SMTP_SERVER": "",
  124. "SMTP_PORT": "465",
  125. "SMTP_USERNAME": "",
  126. "SMTP_PASSWORD": "",
  127. "SMTP_USE_TLS": "true",
  128. "SMTP_OPPORTUNISTIC_TLS": "false",
  129. "SENDGRID_API_KEY": "",
  130. "INDEXING_MAX_SEGMENTATION_TOKENS_LENGTH": api.DIFY_WEB_INDEXING_MAX_SEGMENTATION_TOKENS_LENGTH,
  131. "INVITE_EXPIRY_HOURS": "72",
  132. "RESET_PASSWORD_TOKEN_EXPIRY_MINUTES": "5",
  133. "CHANGE_EMAIL_TOKEN_EXPIRY_MINUTES": "5",
  134. "OWNER_TRANSFER_TOKEN_EXPIRY_MINUTES": "5",
  135. "CODE_EXECUTION_ENDPOINT": "http://" + api.DIFY_LOCALHOST + ":8194",
  136. "CODE_EXECUTION_API_KEY": api.DIFY_SANDBOX_API_KEY,
  137. "CODE_MAX_NUMBER": "9223372036854775807",
  138. "CODE_MIN_NUMBER": "-9223372036854775808",
  139. "CODE_MAX_DEPTH": "5",
  140. "CODE_MAX_PRECISION": "20",
  141. "CODE_MAX_STRING_LENGTH": "80000",
  142. "CODE_MAX_STRING_ARRAY_LENGTH": "30",
  143. "CODE_MAX_OBJECT_ARRAY_LENGTH": "30",
  144. "CODE_MAX_NUMBER_ARRAY_LENGTH": "1000",
  145. "CODE_EXECUTION_CONNECT_TIMEOUT": "10",
  146. "CODE_EXECUTION_READ_TIMEOUT": "60",
  147. "CODE_EXECUTION_WRITE_TIMEOUT": "10",
  148. "TEMPLATE_TRANSFORM_MAX_LENGTH": "80000",
  149. "WORKFLOW_MAX_EXECUTION_STEPS": "500",
  150. "WORKFLOW_MAX_EXECUTION_TIME": "1200",
  151. "WORKFLOW_CALL_MAX_DEPTH": "5",
  152. "MAX_VARIABLE_SIZE": "204800",
  153. "WORKFLOW_PARALLEL_DEPTH_LIMIT": "3",
  154. "WORKFLOW_FILE_UPLOAD_LIMIT": "10",
  155. "WORKFLOW_NODE_EXECUTION_STORAGE": "rdbms",
  156. "CORE_WORKFLOW_EXECUTION_REPOSITORY": "core.repositories.sqlalchemy_workflow_execution_repository.SQLAlchemyWorkflowExecutionRepository",
  157. "CORE_WORKFLOW_NODE_EXECUTION_REPOSITORY": "core.repositories.sqlalchemy_workflow_node_execution_repository.SQLAlchemyWorkflowNodeExecutionRepository",
  158. "API_WORKFLOW_NODE_EXECUTION_REPOSITORY": "repositories.sqlalchemy_api_workflow_node_execution_repository.DifyAPISQLAlchemyWorkflowNodeExecutionRepository",
  159. "API_WORKFLOW_RUN_REPOSITORY": "repositories.sqlalchemy_api_workflow_run_repository.DifyAPISQLAlchemyWorkflowRunRepository",
  160. "HTTP_REQUEST_NODE_MAX_BINARY_SIZE": "10485760",
  161. "HTTP_REQUEST_NODE_MAX_TEXT_SIZE": "1048576",
  162. "HTTP_REQUEST_NODE_SSL_VERIFY": "True",
  163. "RESPECT_XFORWARD_HEADERS_ENABLED": "false",
  164. "SSRF_PROXY_HTTP_URL": "http://" + api.DIFY_LOCALHOST + ":3128",
  165. "SSRF_PROXY_HTTPS_URL": "http://" + api.DIFY_LOCALHOST + ":3128",
  166. "LOOP_NODE_MAX_COUNT": api.DIFY_WEB_LOOP_NODE_MAX_COUNT,
  167. "MAX_TOOLS_NUM": api.DIFY_WEB_MAX_TOOLS_NUM,
  168. "MAX_PARALLEL_LIMIT": api.DIFY_WEB_MAX_PARALLEL_LIMIT,
  169. "MAX_ITERATIONS_NUM": api.DIFY_WEB_MAX_ITERATIONS_NUM,
  170. "TEXT_GENERATION_TIMEOUT_MS": api.DIFY_WEB_TEXT_GENERATION_TIMEOUT_MS,
  171. "ALLOW_UNSAFE_DATA_SCHEME": api.DIFY_WEB_ALLOW_UNSAFE_DATA_SCHEME,
  172. "POSTGRES_USER": "${DB_USERNAME}",
  173. "POSTGRES_PASSWORD": "${DB_PASSWORD}",
  174. "POSTGRES_DB": "${DB_DATABASE}",
  175. "PGDATA": "/var/lib/postgresql/data/pgdata",
  176. "SANDBOX_API_KEY": api.DIFY_SANDBOX_API_KEY,
  177. "SANDBOX_GIN_MODE": api.DIFY_SANDBOX_GIN_MODE,
  178. "SANDBOX_WORKER_TIMEOUT": api.DIFY_SANDBOX_WORKER_TIMEOUT,
  179. "SANDBOX_ENABLE_NETWORK": api.DIFY_SANDBOX_ENABLE_NETWORK,
  180. "SANDBOX_HTTP_PROXY": api.DIFY_SANDBOX_HTTP_PROXY,
  181. "SANDBOX_HTTPS_PROXY": api.DIFY_SANDBOX_HTTPS_PROXY,
  182. "SANDBOX_PORT": api.DIFY_SANDBOX_PORT,
  183. "WEAVIATE_PERSISTENCE_DATA_PATH": api.DIFY_WEAVIATE_PERSISTENCE_DATA_PATH,
  184. "WEAVIATE_QUERY_DEFAULTS_LIMIT": api.DIFY_WEAVIATE_QUERY_DEFAULTS_LIMIT,
  185. "WEAVIATE_AUTHENTICATION_ANONYMOUS_ACCESS_ENABLED": api.DIFY_WEAVIATE_AUTHENTICATION_ANONYMOUS_ACCESS_ENABLED,
  186. "WEAVIATE_DEFAULT_VECTORIZER_MODULE": api.DIFY_WEAVIATE_DEFAULT_VECTORIZER_MODULE,
  187. "WEAVIATE_CLUSTER_HOSTNAME": api.DIFY_WEAVIATE_CLUSTER_HOSTNAME,
  188. "WEAVIATE_AUTHENTICATION_APIKEY_ENABLED": api.DIFY_WEAVIATE_AUTHENTICATION_APIKEY_ENABLED,
  189. "WEAVIATE_AUTHENTICATION_APIKEY_ALLOWED_KEYS": api.DIFY_WEAVIATE_AUTHENTICATION_APIKEY_ALLOWED_KEYS,
  190. "WEAVIATE_AUTHENTICATION_APIKEY_USERS": api.DIFY_WEAVIATE_AUTHENTICATION_APIKEY_USERS,
  191. "WEAVIATE_AUTHORIZATION_ADMINLIST_ENABLED": api.DIFY_WEAVIATE_AUTHORIZATION_ADMINLIST_ENABLED,
  192. "WEAVIATE_AUTHORIZATION_ADMINLIST_USERS": api.DIFY_WEAVIATE_AUTHORIZATION_ADMINLIST_USERS,
  193. "NGINX_SERVER_NAME": api.DIFY_NGINX_SERVER_NAME,
  194. "NGINX_PORT": api.DIFY_NGINX_PORT,
  195. "NGINX_WORKER_PROCESSES": api.DIFY_NGINX_WORKER_PROCESSES,
  196. "NGINX_CLIENT_MAX_BODY_SIZE": api.DIFY_NGINX_CLIENT_MAX_BODY_SIZE,
  197. "NGINX_KEEPALIVE_TIMEOUT": api.DIFY_NGINX_KEEPALIVE_TIMEOUT,
  198. "NGINX_PROXY_READ_TIMEOUT": api.DIFY_NGINX_PROXY_READ_TIMEOUT,
  199. "NGINX_PROXY_SEND_TIMEOUT": api.DIFY_NGINX_PROXY_SEND_TIMEOUT,
  200. "SSRF_HTTP_PORT": api.DIFY_SSRF_HTTP_PORT,
  201. "SSRF_COREDUMP_DIR": api.DIFY_SSRF_COREDUMP_DIR,
  202. "SSRF_REVERSE_PROXY_PORT": api.DIFY_SANDBOX_PORT,
  203. "SSRF_SANDBOX_HOST": api.DIFY_LOCALHOST,
  204. "SSRF_DEFAULT_TIME_OUT": "5",
  205. "SSRF_DEFAULT_CONNECT_TIME_OUT": "5",
  206. "SSRF_DEFAULT_READ_TIME_OUT": "5",
  207. "SSRF_DEFAULT_WRITE_TIME_OUT": "5",
  208. "DB_PLUGIN_DATABASE": api.DIFY_PLUGIN_DB_DATABASE,
  209. "PLUGIN_DAEMON_PORT": api.DIFY_PLUGIN_SERVER_PORT,
  210. "PLUGIN_DAEMON_KEY": api.DIFY_PLUGIN_SERVER_KEY,
  211. "PLUGIN_DAEMON_URL": "http://" + api.DIFY_LOCALHOST + ":" + api.DIFY_PLUGIN_SERVER_PORT,
  212. "PLUGIN_MAX_PACKAGE_SIZE": api.DIFY_PLUGIN_MAX_PACKAGE_SIZE,
  213. "PLUGIN_PPROF_ENABLED": api.DIFY_PLUGIN_PPROF_ENABLED,
  214. "PLUGIN_DEBUGGING_HOST": api.DIFY_PLUGIN_REMOTE_INSTALLING_HOST,
  215. "PLUGIN_DEBUGGING_PORT": api.DIFY_PLUGIN_REMOTE_INSTALLING_PORT,
  216. "EXPOSE_PLUGIN_DEBUGGING_HOST": api.DIFY_LOCALHOST,
  217. "EXPOSE_PLUGIN_DEBUGGING_PORT": api.DIFY_PLUGIN_REMOTE_INSTALLING_PORT,
  218. "PLUGIN_DIFY_INNER_API_KEY": api.DIFY_API_INNER_KEY,
  219. "PLUGIN_DIFY_INNER_API_URL": "http://" + api.DIFY_LOCALHOST + ":5001",
  220. "ENDPOINT_URL_TEMPLATE": "http://" + api.DIFY_LOCALHOST + "/e/{hook_id}",
  221. "MARKETPLACE_ENABLED": "true",
  222. "MARKETPLACE_API_URL": api.DIFY_WEB_MARKETPLACE_API_URL,
  223. "ALLOW_EMBED": api.DIFY_WEB_ALLOW_EMBED,
  224. "QUEUE_MONITOR_THRESHOLD": "200",
  225. "QUEUE_MONITOR_ALERT_EMAILS": "",
  226. "QUEUE_MONITOR_INTERVAL": "30",
  227. "ENABLE_CLEAN_EMBEDDING_CACHE_TASK": "false",
  228. "ENABLE_CLEAN_UNUSED_DATASETS_TASK": "false",
  229. "ENABLE_CREATE_TIDB_SERVERLESS_TASK": "false",
  230. "ENABLE_UPDATE_TIDB_SERVERLESS_STATUS_TASK": "false",
  231. "ENABLE_CLEAN_MESSAGES": "false",
  232. "ENABLE_MAIL_CLEAN_DOCUMENT_NOTIFY_TASK": "false",
  233. "ENABLE_DATASETS_QUEUE_MONITOR": "false",
  234. "ENABLE_CHECK_UPGRADABLE_PLUGIN_TASK": "true",
  235. }
  236. sharedApiWorkerEnvKeyVal = sharedApiWorkerEnv.GetContainerEnvs(custom)
  237. }
  238. return sharedApiWorkerEnvKeyVal
  239. }