From 1225b6cbf0a028b765a0ab6d784bcb80459a67bb Mon Sep 17 00:00:00 2001 From: yj <2077506045@qq.com> Date: 星期三, 23 七月 2025 17:59:54 +0800 Subject: [PATCH] 功能更新 --- config.py | 114 +++++++++++++++++++++++++++++++++++++++++++------------- 1 files changed, 87 insertions(+), 27 deletions(-) diff --git a/config.py b/config.py index ae16800..d7919aa 100644 --- a/config.py +++ b/config.py @@ -3,44 +3,104 @@ """ import os -from typing import Optional -from pydantic_settings import BaseSettings +import json -class Settings(BaseSettings): +class Settings: """搴旂敤閰嶇疆""" - # 鏁版嵁搴撻厤缃� - database_url: str = "mysql+pymysql://root:TAI%402019%23Zjun@120.24.39.179:3306/ecloud_dify" + def __init__(self, config_file: str = "config.json"): + """鍒濆鍖栭厤缃紝浠嶫SON鏂囦欢鍔犺浇""" + self.config_file = config_file + self._load_config() - # Redis閰嶇疆 - redis_url: str = "redis://localhost:6379/0" + def _load_config(self): + """浠嶫SON鏂囦欢鍔犺浇閰嶇疆""" + 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() - # E浜戠瀹堕厤缃� - ecloud_base_url: str = "http://your-ecloud-domain.com" - ecloud_authorization: str = "your-authorization-token" + 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") - # DifyAI閰嶇疆 - dify_base_url: str = "https://api.dify.ai/v1" - dify_api_key: str = "your-dify-api-key" + # Redis閰嶇疆 + self.redis_url = config_data.get("redis", {}).get("url", "redis://localhost:6379/0") - # 鏈嶅姟閰嶇疆 - server_host: str = "0.0.0.0" - server_port: int = 8000 - debug: bool = True + # 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", "") - # 鏃ュ織閰嶇疆 - log_level: str = "INFO" - log_file: str = "logs/app.log" + # 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") - # 娑堟伅澶勭悊閰嶇疆 - max_retry_count: int = 3 - retry_delay: int = 5 # 绉� - queue_timeout: int = 300 # 绉� + # 鏈嶅姟閰嶇疆 + 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) - class Config: - env_file = ".env" - env_file_encoding = "utf-8" + # 鏃ュ織閰嶇疆 + 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"] # 鍏ㄥ眬閰嶇疆瀹炰緥 -- Gitblit v1.9.1