yj
2025-07-28 99266ea57913663f9880c512726c42cb7e5e7f28
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
"""
配置管理模块
"""
 
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文件加载配置"""
        if not os.path.exists(self.config_file):
            raise FileNotFoundError(f"配置文件 {self.config_file} 不存在")
 
        try:
            with open(self.config_file, 'r', encoding='utf-8') as f:
                config_data = json.load(f)
            self._set_config_from_dict(config_data)
        except Exception as e:
            raise Exception(f"加载配置文件失败: {e}")
 
    def _set_config_from_dict(self, config_data: dict):
        """从字典设置配置"""
        # 数据库配置
        self.database_url = config_data["database"]["url"]
 
        # Redis配置
        self.redis_url = config_data["redis"]["url"]
 
        # E云管家配置
        ecloud_config = config_data["ecloud"]
        self.ecloud_base_url = ecloud_config["base_url"]
        self.ecloud_authorization = ecloud_config["authorization"]
        self.ecloud_w_id = ecloud_config["w_id"]
 
        # DifyAI配置
        dify_config = config_data["dify"]
        self.dify_base_url = dify_config["base_url"]
        self.dify_api_key = dify_config["api_key"]
        self.dify_streaming_enabled = dify_config["streaming_enabled"]
        self.dify_streaming_timeout = dify_config["streaming_timeout"]
 
        # 服务配置
        server_config = config_data["server"]
        self.server_host = server_config["host"]
        self.server_port = server_config["port"]
        self.debug = server_config["debug"]
 
        # 日志配置
        logging_config = config_data["logging"]
        self.log_level = logging_config["level"]
        self.log_file = logging_config["file"]
 
        # 消息处理配置
        msg_config = config_data["message_processing"]
        self.max_retry_count = msg_config["max_retry_count"]
        self.retry_delay = msg_config["retry_delay"]
        self.queue_timeout = msg_config["queue_timeout"]
 
        # 客服配置
        customer_service_config = config_data["customer_service"]
        self.customer_service_names = customer_service_config["names"]
 
        # 好友忽略配置
        friend_ignore_config = config_data["friend_ignore"]
        self.friend_ignore_enabled = friend_ignore_config["enabled"]
        self.friend_ignore_whitelist = friend_ignore_config["whitelist"]
 
 
# 全局配置实例
settings = Settings()