refactor: centralize config — HERMES_URL, SSH params, validate_critical_config()
- config.py: add HERMES_URL (default 192.168.0.111:11434), SSH jump params, validate_critical_config() - services/hermes_analyst_service.py: remove hardcoded HERMES_URL, import from config - app.py: call validate_critical_config() on startup, log warnings for optional missing vars Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
6
app.py
6
app.py
@@ -70,10 +70,14 @@ except ImportError as e:
|
||||
|
||||
# ================= 🔧 3. 系統核心配置 =================
|
||||
# 從 config.py 匯入必要的設定
|
||||
from config import EXCEL_EXPORT_DIR, DATABASE_TYPE
|
||||
from config import EXCEL_EXPORT_DIR, DATABASE_TYPE, validate_critical_config
|
||||
|
||||
sys_log = SystemLogger("Web_Server").get_logger()
|
||||
|
||||
# 驗證選用配置,缺少時輸出 warning(非 fatal)
|
||||
for _warn in validate_critical_config():
|
||||
sys_log.warning(_warn)
|
||||
|
||||
# 🚩 V-Opt: 全域資料快取 (用於加速業績分析)
|
||||
_SALES_DF_CACHE = {} # 已棄用,保留相容性
|
||||
_SALES_PROCESSED_CACHE = {} # V-Opt: 處理後資料快取
|
||||
|
||||
21
config.py
21
config.py
@@ -202,6 +202,15 @@ GRIST_URL = os.getenv('GRIST_URL', '') # Grist 資料協作連結
|
||||
# ==========================================
|
||||
# AI 服務設定
|
||||
# ==========================================
|
||||
# Hermes AI Service (競價情報分析)
|
||||
HERMES_URL = os.getenv('HERMES_URL', 'http://192.168.0.111:11434')
|
||||
|
||||
# SSH Jump Configuration (AIOps AutoHeal)
|
||||
SSH_JUMP_HOST = os.getenv('SSH_JUMP_HOST', '192.168.0.110')
|
||||
SSH_JUMP_USER = os.getenv('SSH_JUMP_USER', 'wooo')
|
||||
SSH_TARGET_HOST = os.getenv('SSH_TARGET_HOST', '192.168.0.188')
|
||||
SSH_TARGET_USER = os.getenv('SSH_TARGET_USER', 'ollama')
|
||||
|
||||
# Ollama 本地 AI 服務
|
||||
OLLAMA_HOST = os.getenv('OLLAMA_HOST', 'https://ollama.wooo.work/ollama')
|
||||
OLLAMA_MODEL = os.getenv('OLLAMA_MODEL', 'gemma3:4b')
|
||||
@@ -237,4 +246,14 @@ USE_MODULAR_ROUTES = {
|
||||
'export': True, # 匯出功能
|
||||
'import': True, # 匯入功能
|
||||
'sales': True, # 業績分析
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
def validate_critical_config():
|
||||
"""啟動時驗證選用配置,缺少則回傳 warning 清單(非 fatal)。"""
|
||||
warnings = []
|
||||
optional_vars = ['HERMES_URL', 'GOOGLE_DRIVE_CREDENTIALS']
|
||||
for var in optional_vars:
|
||||
if not os.getenv(var):
|
||||
warnings.append(f"[Config] 選用設定 {var} 未設,部分功能可能停用")
|
||||
return warnings
|
||||
@@ -25,8 +25,9 @@ from sqlalchemy import text
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
from config import HERMES_URL
|
||||
|
||||
HERMES_MODEL = "hermes3:latest"
|
||||
HERMES_URL = "http://192.168.0.111:11434"
|
||||
HERMES_TIMEOUT = 120 # 秒,批量 300 筆最長預估 ~90s
|
||||
TOP_N = 20 # 輸出前 N 個威脅,控制 NemoTron 每次消耗配額
|
||||
|
||||
|
||||
Reference in New Issue
Block a user