"""
|
配置管理模块
|
"""
|
|
import os
|
import json
|
|
|
class Settings:
|
"""应用配置"""
|
|
def __init__(self, config_file: str = "config.json"):
|
"""初始化配置,从JSON文件加载"""
|
self.config_file = config_file
|
self._load_config()
|
|
def _load_config(self):
|
"""从JSON文件加载配置"""
|
try:
|
if os.path.exists(self.config_file):
|
with open(self.config_file, 'r', encoding='utf-8') as f:
|
config_data = json.load(f)
|
self._set_config_from_dict(config_data)
|
else:
|
# 如果配置文件不存在,使用默认值
|
self._set_default_config()
|
except Exception as e:
|
print(f"加载配置文件失败: {e}")
|
self._set_default_config()
|
|
def _set_config_from_dict(self, config_data: dict):
|
"""从字典设置配置"""
|
# 数据库配置
|
self.database_url = config_data.get("database", {}).get("url", "mysql+pymysql://root:TAI%402019%23Zjun@120.24.39.179:3306/ecloud_dify")
|
|
# Redis配置
|
self.redis_url = config_data.get("redis", {}).get("url", "redis://localhost:6379/0")
|
|
# E云管家配置
|
ecloud_config = config_data.get("ecloud", {})
|
self.ecloud_base_url = ecloud_config.get("base_url", "http://125.122.152.142:9899")
|
self.ecloud_authorization = ecloud_config.get("authorization", "eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiIxMzYxMTQ1MjE3NSIsInBhc3N3b3JkIjoiJDJhJDEwJEU3Ry5LOEJzekphM2JGQlh0SG8vOXVrUk1NalVweGVVemguUDRnMkJBdHN2YXpBb0JIQWJpIn0.Gd2vbeJjL5pUGFhUngWPLkDTLhD3GUaEPXOkdoTf4KRh9o2FtST1OZJxmZuGdUy7WIYlIPVueoVyIu5iHOyi8A")
|
self.ecloud_w_id = ecloud_config.get("w_id", "")
|
|
# DifyAI配置
|
dify_config = config_data.get("dify", {})
|
self.dify_base_url = dify_config.get("base_url", "https://api.dify.ai/v1")
|
self.dify_api_key = dify_config.get("api_key", "app-OMnBr7zsf5UTV83Ey8QcSErA")
|
|
# 服务配置
|
server_config = config_data.get("server", {})
|
self.server_host = server_config.get("host", "0.0.0.0")
|
self.server_port = server_config.get("port", 7979)
|
self.debug = server_config.get("debug", True)
|
|
# 日志配置
|
logging_config = config_data.get("logging", {})
|
self.log_level = logging_config.get("level", "INFO")
|
self.log_file = logging_config.get("file", "logs/app.log")
|
|
# 消息处理配置
|
msg_config = config_data.get("message_processing", {})
|
self.max_retry_count = msg_config.get("max_retry_count", 3)
|
self.retry_delay = msg_config.get("retry_delay", 5)
|
self.queue_timeout = msg_config.get("queue_timeout", 300)
|
|
# 客服配置
|
customer_service_config = config_data.get("customer_service", {})
|
self.customer_service_names = customer_service_config.get("names", ["客服1", "客服2"])
|
|
def _set_default_config(self):
|
"""设置默认配置"""
|
# 数据库配置
|
self.database_url = "mysql+pymysql://root:TAI%402019%23Zjun@120.24.39.179:3306/ecloud_dify"
|
|
# Redis配置
|
self.redis_url = "redis://localhost:6379/0"
|
|
# E云管家配置
|
self.ecloud_base_url = "http://125.122.152.142:9899"
|
self.ecloud_authorization = "eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiIxMzYxMTQ1MjE3NSIsInBhc3N3b3JkIjoiJDJhJDEwJEU3Ry5LOEJzekphM2JGQlh0SG8vOXVrUk1NalVweGVVemguUDRnMkJBdHN2YXpBb0JIQWJpIn0.Gd2vbeJjL5pUGFhUngWPLkDTLhD3GUaEPXOkdoTf4KRh9o2FtST1OZJxmZuGdUy7WIYlIPVueoVyIu5iHOyi8A"
|
self.ecloud_w_id = ""
|
|
# DifyAI配置
|
self.dify_base_url = "https://api.dify.ai/v1"
|
self.dify_api_key = "app-OMnBr7zsf5UTV83Ey8QcSErA"
|
|
# 服务配置
|
self.server_host = "0.0.0.0"
|
self.server_port = 7979
|
self.debug = True
|
|
# 日志配置
|
self.log_level = "INFO"
|
self.log_file = "logs/app.log"
|
|
# 消息处理配置
|
self.max_retry_count = 3
|
self.retry_delay = 5
|
self.queue_timeout = 300
|
|
# 客服配置
|
self.customer_service_names = ["客服1", "客服2"]
|
|
|
# 全局配置实例
|
settings = Settings()
|