feat(gateway): 添加流超时处理机制
- 添加 StreamTimeoutSettings 配置结构体和系统设置 - 实现 TimeoutCounterCache Redis 计数器用于累计超时次数 - 在 RateLimitService 添加 HandleStreamTimeout 方法 - 在 gateway_service、openai_gateway_service、antigravity_gateway_service 中调用超时处理 - 添加后端 API 端点 GET/PUT /admin/settings/stream-timeout - 添加前端配置界面到系统设置页面 - 支持配置:启用开关、超时阈值、处理方式、暂停时长、触发阈值、阈值窗口 默认配置: - 启用:true - 超时阈值:60秒 - 处理方式:临时不可调度 - 暂停时长:5分钟 - 触发阈值:3次 - 阈值窗口:10分钟
This commit is contained in:
@@ -2512,6 +2512,27 @@ export default {
|
||||
securityWarning: 'Warning: This key provides full admin access. Keep it secure.',
|
||||
usage: 'Usage: Add to request header - x-api-key: <your-admin-api-key>'
|
||||
},
|
||||
streamTimeout: {
|
||||
title: 'Stream Timeout Handling',
|
||||
description: 'Configure account handling strategy when upstream response times out',
|
||||
enabled: 'Enable Stream Timeout Handling',
|
||||
enabledHint: 'Automatically handle problematic accounts when upstream times out',
|
||||
timeoutSeconds: 'Timeout Threshold (seconds)',
|
||||
timeoutSecondsHint: 'Stream data interval exceeding this time is considered timeout (30-300s)',
|
||||
action: 'Action',
|
||||
actionTempUnsched: 'Temporarily Unschedulable',
|
||||
actionError: 'Mark as Error',
|
||||
actionNone: 'No Action',
|
||||
actionHint: 'Action to take on the account after timeout',
|
||||
tempUnschedMinutes: 'Pause Duration (minutes)',
|
||||
tempUnschedMinutesHint: 'Duration of temporary unschedulable state (1-60 minutes)',
|
||||
thresholdCount: 'Trigger Threshold (count)',
|
||||
thresholdCountHint: 'Number of timeouts before triggering action (1-10)',
|
||||
thresholdWindowMinutes: 'Threshold Window (minutes)',
|
||||
thresholdWindowMinutesHint: 'Time window for counting timeouts (1-60 minutes)',
|
||||
saved: 'Stream timeout settings saved',
|
||||
saveFailed: 'Failed to save stream timeout settings'
|
||||
},
|
||||
saveSettings: 'Save Settings',
|
||||
saving: 'Saving...',
|
||||
settingsSaved: 'Settings saved successfully',
|
||||
|
||||
@@ -2696,6 +2696,27 @@ export default {
|
||||
securityWarning: '警告:此密钥拥有完整的管理员权限,请妥善保管。',
|
||||
usage: '使用方法:在请求头中添加 x-api-key: <your-admin-api-key>'
|
||||
},
|
||||
streamTimeout: {
|
||||
title: '流超时处理',
|
||||
description: '配置上游响应超时时的账户处理策略,避免问题账户持续被选中',
|
||||
enabled: '启用流超时处理',
|
||||
enabledHint: '当上游响应超时时,自动处理问题账户',
|
||||
timeoutSeconds: '超时阈值(秒)',
|
||||
timeoutSecondsHint: '流数据间隔超过此时间视为超时(30-300秒)',
|
||||
action: '处理方式',
|
||||
actionTempUnsched: '临时不可调度',
|
||||
actionError: '标记为错误状态',
|
||||
actionNone: '不处理',
|
||||
actionHint: '超时后对账户执行的操作',
|
||||
tempUnschedMinutes: '暂停时长(分钟)',
|
||||
tempUnschedMinutesHint: '临时不可调度的持续时间(1-60分钟)',
|
||||
thresholdCount: '触发阈值(次数)',
|
||||
thresholdCountHint: '累计超时多少次后触发处理(1-10次)',
|
||||
thresholdWindowMinutes: '阈值窗口(分钟)',
|
||||
thresholdWindowMinutesHint: '超时计数的时间窗口(1-60分钟)',
|
||||
saved: '流超时设置保存成功',
|
||||
saveFailed: '保存流超时设置失败'
|
||||
},
|
||||
saveSettings: '保存设置',
|
||||
saving: '保存中...',
|
||||
settingsSaved: '设置保存成功',
|
||||
|
||||
Reference in New Issue
Block a user