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',
|
||||
|
||||
Reference in New Issue
Block a user