v2.1.2: auto调用全部失败时邮件通知 + 网页配置邮箱
- 新增邮件通知: auto 配置被调用后所有提供商都失败(含无可用提供商)时自动发邮件 - 通知路径: chat_completions 400/503 + 通用能力端点(生图/语音/视频) + ASR端点 - 防轰炸: cooldown_seconds(默认300s)最小间隔, 连续失败只发一封(实测3次失败1封) - 网页配置: 系统配置页新增「邮件通知」卡片, 支持 SMTP服务器/端口/加密(plain/starttls/ssl)/账号密码/发件人/收件人/间隔 + 发送测试邮件按钮 - API: GET/PUT /api/admin/email(密码掩码), POST /api/admin/email/test - 默认SMTP: mail.tphai.com:587 plain, 收件人 wlq@tphai.com - 修复: config页loadEmailConfig竞态(卡片未渲染就填充); 邮件失败不影响API响应
This commit is contained in:
@@ -200,6 +200,36 @@ ROUTING_CONFIG = {
|
||||
"cache_ttl_seconds": 3600, # 记忆有效期(秒)
|
||||
}
|
||||
|
||||
# 邮件通知配置(auto 调用全部失败时发邮件通知)
|
||||
EMAIL_CONFIG = {
|
||||
"enabled": True, # 总开关
|
||||
"notify_on_auto_failure": True, # auto 调用全部失败时发邮件
|
||||
"smtp_host": "mail.tphai.com",
|
||||
"smtp_port": 587,
|
||||
"smtp_mode": "plain", # plain | starttls | ssl
|
||||
"smtp_user": "hz4th_coder@tphai.com",
|
||||
"smtp_password": "hz4th_coder@!",
|
||||
"from_name": "LLM Proxy",
|
||||
"from_addr": "hz4th_coder@tphai.com",
|
||||
"to_addrs": ["wlq@tphai.com"],
|
||||
"cooldown_seconds": 300, # 失败通知最小间隔(防轰炸)
|
||||
}
|
||||
|
||||
|
||||
def load_email_config():
|
||||
"""加载邮件通知配置(运行时配置优先)"""
|
||||
config = load_config()
|
||||
return {**EMAIL_CONFIG, **config.get("email_config", {})}
|
||||
|
||||
|
||||
def save_email_config(data):
|
||||
"""保存邮件通知配置"""
|
||||
config = load_config()
|
||||
merged = {**EMAIL_CONFIG, **data}
|
||||
config["email_config"] = merged
|
||||
save_config(config)
|
||||
return merged
|
||||
|
||||
|
||||
def load_routing_config():
|
||||
"""加载路由缓存配置(运行时配置优先)"""
|
||||
|
||||
Reference in New Issue
Block a user