app_config.py 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. from pydantic_settings import BaseSettings, SettingsConfigDict
  2. from configs.deploy import DeploymentConfig
  3. from configs.enterprise import EnterpriseFeatureConfig
  4. from configs.extra import ExtraServiceConfig
  5. from configs.feature import FeatureConfig
  6. from configs.middleware import MiddlewareConfig
  7. from configs.packaging import PackagingInfo
  8. # TODO: Both `BaseModel` and `BaseSettings` has `model_config` attribute but they are in different types.
  9. # This inheritance is depends on the order of the classes.
  10. # It is better to use `BaseSettings` as the base class.
  11. class DifyConfig(
  12. # based on pydantic-settings
  13. BaseSettings,
  14. # Packaging info
  15. PackagingInfo,
  16. # Deployment configs
  17. DeploymentConfig,
  18. # Feature configs
  19. FeatureConfig,
  20. # Middleware configs
  21. MiddlewareConfig,
  22. # Extra service configs
  23. ExtraServiceConfig,
  24. # Enterprise feature configs
  25. # **Before using, please contact business@dify.ai by email to inquire about licensing matters.**
  26. EnterpriseFeatureConfig,
  27. ):
  28. model_config = SettingsConfigDict(
  29. # read from dotenv format config file
  30. env_file='.env',
  31. env_file_encoding='utf-8',
  32. # ignore extra attributes
  33. extra='ignore',
  34. )