site.py 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. import os
  2. from dotenv import load_dotenv
  3. from urllib.parse import quote
  4. load_dotenv()
  5. class SiteConfig:
  6. def __init__(self):
  7. self.load_config()
  8. def load_config(self):
  9. self.config = {
  10. "SITE_NAME": os.getenv("SITE_NAME", "DEMO"),
  11. "SITE_DESCRIPTION": os.getenv("SITE_DESCRIPTION", "ChatGPT"),
  12. "SITE_URL": os.getenv("SITE_URL", ""),
  13. "SITE_LOGO": os.getenv("SITE_LOGO", ""),
  14. "SITE_FAVICON": os.getenv("SITE_FAVICON"),
  15. 'ELASTICSEARCH_HOST': os.getenv("ELASTICSEARCH_HOST"),
  16. 'ELASTICSEARCH_USER': os.getenv("ELASTICSEARCH_USER"),
  17. 'ELASTICSEARCH_PWD': os.getenv("ELASTICSEARCH_PWD"),
  18. 'WORD_INDEX': os.getenv("WORD_INDEX"),
  19. 'TITLE_INDEX': os.getenv("TITLE_INDEX"),
  20. 'CHUNC_INDEX': os.getenv("CHUNC_INDEX"),
  21. 'DEEPSEEK_API_URL': os.getenv("DEEPSEEK_API_URL"),
  22. 'DEEPSEEK_API_KEY': os.getenv("DEEPSEEK_API_KEY"),
  23. 'CACHED_DATA_PATH': os.getenv("CACHED_DATA_PATH"),
  24. 'UPDATE_DATA_PATH': os.getenv("UPDATE_DATA_PATH"),
  25. 'FACTOR_DATA_PATH': os.getenv("FACTOR_DATA_PATH"),
  26. 'GRAPH_API_URL': os.getenv("GRAPH_API_URL"),
  27. 'EMBEDDING_MODEL': os.getenv("EMBEDDING_MODEL"),
  28. 'DOC_PATH': os.getenv("DOC_PATH"),
  29. 'DOC_STORAGE_PATH': os.getenv("DOC_STORAGE_PATH"),
  30. 'TRUNC_OUTPUT_PATH': os.getenv("TRUNC_OUTPUT_PATH"),
  31. 'DOC_ABSTRACT_OUTPUT_PATH': os.getenv("DOC_ABSTRACT_OUTPUT_PATH"),
  32. 'JIEBA_USER_DICT': os.getenv("JIEBA_USER_DICT"),
  33. 'JIEBA_STOP_DICT': os.getenv("JIEBA_STOP_DICT"),
  34. 'POSTGRESQL_HOST': os.getenv("POSTGRESQL_HOST","localhost"),
  35. 'POSTGRESQL_DATABASE': os.getenv("POSTGRESQL_DATABASE","kg"),
  36. 'POSTGRESQL_USER': os.getenv("POSTGRESQL_USER","dify"),
  37. 'POSTGRESQL_PASSWORD': os.getenv("POSTGRESQL_PASSWORD",quote("difyai123456")),
  38. }
  39. def get_config(self, config_name):
  40. config_name = config_name.upper()
  41. if config_name in self.config:
  42. return self.config[config_name]
  43. else:
  44. return None
  45. def check_config(self, config_list):
  46. for item in config_list:
  47. if not self.get_config(item):
  48. raise ValueError(f"Configuration '{item}' is not set.")