This commit is contained in:
61
frontend/config.py
Normal file
61
frontend/config.py
Normal file
@@ -0,0 +1,61 @@
|
||||
"""
|
||||
前端配置管理模块
|
||||
集中管理所有配置项,支持环境变量覆盖
|
||||
"""
|
||||
|
||||
import os
|
||||
from dataclasses import dataclass
|
||||
from dotenv import load_dotenv
|
||||
|
||||
# 加载 .env 文件
|
||||
load_dotenv()
|
||||
|
||||
|
||||
@dataclass
|
||||
class FrontendConfig:
|
||||
"""前端配置类 - 统一管理所有配置项"""
|
||||
|
||||
# ==================== API 配置 ====================
|
||||
api_base: str = ""
|
||||
|
||||
# ==================== 页面配置 ====================
|
||||
page_title: str = "AI 个人助手"
|
||||
page_icon: str = "🤖"
|
||||
layout: str = "wide"
|
||||
|
||||
# ==================== 模型配置 ====================
|
||||
default_model: str = "zhipu"
|
||||
model_options: dict = None
|
||||
|
||||
# ==================== 用户配置 ====================
|
||||
default_user_id: str = "default_user"
|
||||
|
||||
# ==================== 历史记录配置 ====================
|
||||
history_limit: int = 50
|
||||
summary_max_length: int = 30
|
||||
|
||||
# ==================== 流式响应配置 ====================
|
||||
stream_timeout: int = 120
|
||||
|
||||
def __post_init__(self):
|
||||
"""初始化后处理 - 设置默认值和加载环境变量"""
|
||||
if self.model_options is None:
|
||||
self.model_options = {
|
||||
"zhipu": "智谱 GLM-4.7-Flash(在线)",
|
||||
"deepseek": "DeepSeek V3.2(在线)",
|
||||
"local": "本地 llama.cpp(Gemma-4)"
|
||||
}
|
||||
|
||||
# 从环境变量加载配置
|
||||
self._load_from_env()
|
||||
|
||||
def _load_from_env(self):
|
||||
"""从环境变量加载配置(优先级最高)"""
|
||||
# API 地址(移除 /chat 后缀)
|
||||
# 优先级:环境变量 API_URL > 默认值
|
||||
api_url = os.getenv("API_URL", "http://localhost:8083")
|
||||
self.api_base = api_url.replace("/chat", "").rstrip("/")
|
||||
|
||||
|
||||
# 全局配置实例(单例模式)
|
||||
config = FrontendConfig()
|
||||
Reference in New Issue
Block a user