"""中控 AI 配置(读 hub .env,与实例同名 AI 变量)。""" from __future__ import annotations import os HUB_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) def _int_env(key: str, default: int) -> int: try: return int(os.getenv(key, str(default)) or default) except ValueError: return default SUMMARY_TEMPERATURE = 0.15 CHAT_TEMPERATURE = 0.5 CHAT_MAX_HISTORY_TURNS = 40 CHAT_MAX_OUTPUT_TOKENS = _int_env("CHAT_MAX_OUTPUT_TOKENS", 8192) CHAT_MAX_CONTINUATIONS = _int_env("CHAT_MAX_CONTINUATIONS", 4) CHAT_CONTEXT_MAX_CHARS = _int_env("CHAT_CONTEXT_MAX_CHARS", 20_000) CHAT_SUMMARY_EXCERPT_MAX_CHARS = _int_env("CHAT_SUMMARY_EXCERPT_MAX_CHARS", 2000) CHAT_HISTORY_MAX_CHARS_PER_MSG = _int_env("CHAT_HISTORY_MAX_CHARS_PER_MSG", 1500) SUMMARY_RETENTION_DAYS = 90 CHAT_SESSION_RETENTION_DAYS = 60 FUND_HISTORY_DAYS = 180 CHAT_MAX_ATTACHMENTS = 3 CHAT_MAX_IMAGE_BYTES = 4 * 1024 * 1024 CHAT_MAX_TEXT_FILE_BYTES = 200 * 1024 def trading_day_reset_hour() -> int: try: return int(os.getenv("TRADING_DAY_RESET_HOUR", "8") or "8") except ValueError: return 8 def hub_flask_timeout() -> float: try: return float(os.getenv("HUB_FLASK_TIMEOUT", "10") or "10") except ValueError: return 10.0 def hub_agent_timeout() -> float: try: return float(os.getenv("HUB_AGENT_TIMEOUT", "8") or "8") except ValueError: return 8.0