12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- import os
- import yaml
- from .app_config import AppConfig
- from .database_config import DatabaseConfig
- from .ai_config import AIConfig
- from .ai_fastgpt_config import FastGPTAIConfig
- class Config:
- """配置管理类"""
- _instance = None
- _config = None
- app = None
- database = None
- ai = None
- fastgpt_ai = None
- def __new__(cls):
- if cls._instance is None:
- cls._instance = super().__new__(cls)
- cls.app = AppConfig()
- cls.database = DatabaseConfig()
- cls.ai = AIConfig()
- cls.fastgpt_ai = FastGPTAIConfig()
- return cls._instance
- @classmethod
- def load_config(cls, path=None):
- """加载配置文件
-
- Args:
- path: 配置文件路径,如果为None则使用默认路径
- """
- if path is None:
- # path = os.environ.get("CONFIG_PATH", os.path.join(os.path.dirname(__file__), "../..", "config.yml"))
- path = os.environ.get("CONFIG_PATH","config.yml")
- with open(path, 'r', encoding='utf-8') as f:
- cls._config = yaml.safe_load(f)
- # 初始化应用配置
- cls.app.update_config(cls._config.get('app', {}))
- # 初始化数据库配置
- cls.database.update_config(cls._config.get('db', {}))
- # 初始化AI配置
- cls.ai.update_config(cls._config.get('ai', {}))
- # 初始化FastGPT AI配置
- cls.fastgpt_ai.update_config(cls._config.get('fastgpt_ai', {}))
- @classmethod
- def reload(cls, path=None):
- """重新加载配置
- Args:
- path: 配置文件路径,如果为None则使用默认路径
- """
- cls._config = None
- cls.load_config(path)
- # 创建全局配置实例
- config = Config()
-
|