import os from dotenv import load_dotenv from urllib.parse import quote load_dotenv() class SiteConfig: def __init__(self): self.load_config() def load_config(self): self.config = { "SITE_NAME": os.getenv("SITE_NAME", "DEMO"), "SITE_DESCRIPTION": os.getenv("SITE_DESCRIPTION", "ChatGPT"), "SITE_URL": os.getenv("SITE_URL", ""), "SITE_LOGO": os.getenv("SITE_LOGO", ""), "SITE_FAVICON": os.getenv("SITE_FAVICON"), 'ELASTICSEARCH_HOST': os.getenv("ELASTICSEARCH_HOST"), 'ELASTICSEARCH_USER': os.getenv("ELASTICSEARCH_USER"), 'ELASTICSEARCH_PWD': os.getenv("ELASTICSEARCH_PWD"), 'WORD_INDEX': os.getenv("WORD_INDEX"), 'TITLE_INDEX': os.getenv("TITLE_INDEX"), 'CHUNC_INDEX': os.getenv("CHUNC_INDEX"), 'DEEPSEEK_API_URL': os.getenv("DEEPSEEK_API_URL"), 'DEEPSEEK_API_KEY': os.getenv("DEEPSEEK_API_KEY"), 'CACHED_DATA_PATH': os.getenv("CACHED_DATA_PATH"), 'UPDATE_DATA_PATH': os.getenv("UPDATE_DATA_PATH"), 'FACTOR_DATA_PATH': os.getenv("FACTOR_DATA_PATH"), 'GRAPH_API_URL': os.getenv("GRAPH_API_URL"), 'EMBEDDING_MODEL': os.getenv("EMBEDDING_MODEL"), 'DOC_PATH': os.getenv("DOC_PATH"), 'DOC_STORAGE_PATH': os.getenv("DOC_STORAGE_PATH"), 'TRUNC_OUTPUT_PATH': os.getenv("TRUNC_OUTPUT_PATH"), 'DOC_ABSTRACT_OUTPUT_PATH': os.getenv("DOC_ABSTRACT_OUTPUT_PATH"), 'JIEBA_USER_DICT': os.getenv("JIEBA_USER_DICT"), 'JIEBA_STOP_DICT': os.getenv("JIEBA_STOP_DICT"), 'POSTGRESQL_HOST': os.getenv("POSTGRESQL_HOST","localhost"), 'POSTGRESQL_DATABASE': os.getenv("POSTGRESQL_DATABASE","kg"), 'POSTGRESQL_USER': os.getenv("POSTGRESQL_USER","dify"), 'POSTGRESQL_PASSWORD': os.getenv("POSTGRESQL_PASSWORD",quote("difyai123456")), } def get_config(self, config_name): config_name = config_name.upper() if config_name in self.config: return self.config[config_name] else: return None def check_config(self, config_list): for item in config_list: if not self.get_config(item): raise ValueError(f"Configuration '{item}' is not set.")