configParser.py 1.9 KB

12345678910111213141516171819202122232425262728293031323334
  1. # -*- coding: utf-8 -*-
  2. import os
  3. from digitalHuman.utils.env import CONFIG_ROOT_PATH, CONFIG_FILE
  4. from yacs.config import CfgNode as CN
  5. __all__ = ['config']
  6. def parseConfig(configFile: str) -> CN:
  7. with open(configFile, 'r', encoding='utf-8') as f:
  8. config = CN.load_cfg(f)
  9. return config
  10. def parseServerConfig(config: CN) -> None:
  11. # 加载engines配置文件
  12. config.ENGINES.ASR.SUPPORT_LIST = [parseConfig(os.path.join(CONFIG_ROOT_PATH, "engines", "asr", configFile)) for configFile in config.ENGINES.ASR.SUPPORT_LIST]
  13. config.ENGINES.TTS.SUPPORT_LIST = [parseConfig(os.path.join(CONFIG_ROOT_PATH, "engines", "tts", configFile)) for configFile in config.ENGINES.TTS.SUPPORT_LIST]
  14. config.ENGINES.LLM.SUPPORT_LIST = [parseConfig(os.path.join(CONFIG_ROOT_PATH, "engines", "llm", configFile)) for configFile in config.ENGINES.LLM.SUPPORT_LIST]
  15. config.ENGINES.ASR.DEFAULT = parseConfig(os.path.join(CONFIG_ROOT_PATH, "engines", "asr", config.ENGINES.ASR.DEFAULT)).NAME if config.ENGINES.ASR.DEFAULT else None
  16. config.ENGINES.TTS.DEFAULT = parseConfig(os.path.join(CONFIG_ROOT_PATH, "engines", "tts", config.ENGINES.TTS.DEFAULT)).NAME if config.ENGINES.TTS.DEFAULT else None
  17. config.ENGINES.LLM.DEFAULT = parseConfig(os.path.join(CONFIG_ROOT_PATH, "engines", "llm", config.ENGINES.LLM.DEFAULT)).NAME if config.ENGINES.LLM.DEFAULT else None
  18. # 加载agents配置文件
  19. config.AGENTS.SUPPORT_LIST = [parseConfig(os.path.join(CONFIG_ROOT_PATH, "agents", configFile)) for configFile in config.AGENTS.SUPPORT_LIST]
  20. config.AGENTS.DEFAULT = parseConfig(os.path.join(CONFIG_ROOT_PATH, "agents", config.AGENTS.DEFAULT)).NAME if config.AGENTS.DEFAULT else None
  21. def getConfig(configFile: str) -> CN:
  22. with open(configFile, 'r', encoding='utf-8') as f:
  23. config = CN.load_cfg(f)
  24. parseServerConfig(config.SERVER)
  25. config.freeze()
  26. return config
  27. config = getConfig(CONFIG_FILE)