init
This commit is contained in:
68
app/backend-python/config.py
Normal file
68
app/backend-python/config.py
Normal file
@@ -0,0 +1,68 @@
|
||||
"""
|
||||
配置文件 - 从统一的 config.yaml 读取配置
|
||||
"""
|
||||
|
||||
import yaml
|
||||
import os
|
||||
from typing import List
|
||||
from pathlib import Path
|
||||
|
||||
|
||||
class Settings:
|
||||
"""应用配置 - 从 config.yaml 加载"""
|
||||
|
||||
def __init__(self):
|
||||
"""从 config.yaml 加载配置"""
|
||||
self.config = self._load_config()
|
||||
|
||||
# 从配置文件读取
|
||||
backend_config = self.config.get('backend', {}).get('python', {})
|
||||
|
||||
# 服务配置
|
||||
self.HOST: str = backend_config.get('host', '0.0.0.0')
|
||||
self.PORT: int = backend_config.get('port', 3000)
|
||||
self.ENVIRONMENT: str = backend_config.get('environment', 'development')
|
||||
self.DEBUG: bool = backend_config.get('debug', True)
|
||||
|
||||
# Conductor Agent 配置
|
||||
self.CONDUCTOR_AGENT_URL: str = backend_config.get('conductor_agent_url', 'http://localhost:12000')
|
||||
self.CONDUCTOR_TIMEOUT: int = backend_config.get('conductor_timeout', 120)
|
||||
|
||||
# CORS 配置
|
||||
self.CORS_ORIGINS: List[str] = backend_config.get('cors_origins', [
|
||||
"http://localhost:1420",
|
||||
"http://127.0.0.1:1420",
|
||||
"http://localhost:3000",
|
||||
"http://127.0.0.1:3000",
|
||||
"tauri://localhost",
|
||||
])
|
||||
|
||||
def _load_config(self) -> dict:
|
||||
"""加载 YAML 配置文件"""
|
||||
# 查找 config.yaml
|
||||
config_path = self._find_config_file()
|
||||
|
||||
try:
|
||||
with open(config_path, 'r', encoding='utf-8') as f:
|
||||
return yaml.safe_load(f)
|
||||
except Exception as e:
|
||||
print(f"⚠️ 加载配置文件失败: {e}")
|
||||
return {}
|
||||
|
||||
def _find_config_file(self) -> Path:
|
||||
"""自动查找 config.yaml"""
|
||||
# 从当前文件向上查找
|
||||
current = Path(__file__).parent
|
||||
|
||||
for _ in range(5): # 最多向上查找5层
|
||||
config_path = current / "config.yaml"
|
||||
if config_path.exists():
|
||||
return config_path
|
||||
current = current.parent
|
||||
|
||||
# 如果没找到,返回默认路径
|
||||
return Path(__file__).parent.parent.parent / "config.yaml"
|
||||
|
||||
|
||||
settings = Settings()
|
||||
|
||||
Reference in New Issue
Block a user