feat(frontend): Responses WebSocket 配置与用量展示

provider 表单支持开启 Responses WebSocket;用量列表、状态与详情
区分 WebSocket 请求。
This commit is contained in:
AAEE86
2026-08-17 14:52:25 +08:00
committed by ZheFox
parent 621a528083
commit 1353d76e07
13 changed files with 97 additions and 0 deletions
@@ -357,6 +357,19 @@
/>
</div>
<div class="flex items-center justify-between p-3 border rounded-lg bg-muted/50">
<div class="space-y-0.5">
<span class="text-sm font-medium">{{ legacyT('Responses WebSocket 模式') }}</span>
<p class="text-xs text-muted-foreground leading-relaxed">
{{ legacyT('允许此提供商处理标准 Responses API WebSocket 请求。仅在已验证兼容性后启用。') }}
</p>
</div>
<Switch
:model-value="form.responses_websocket_enabled"
@update:model-value="(v: boolean) => form.responses_websocket_enabled = v"
/>
</div>
<div class="flex items-center justify-between gap-4 p-3 border rounded-lg bg-muted/50">
<div class="space-y-0.5">
<span class="text-sm font-medium">{{ legacyT('敏感信息保护') }}</span>
@@ -481,6 +494,8 @@ const form = ref({
codex_fingerprint_convergence_enabled: false,
// Kiro 专属配置
kiro_simulated_cache_enabled: false,
// Responses WebSocket 配置
responses_websocket_enabled: false,
})
// 重置表单
@@ -513,6 +528,8 @@ function resetForm() {
codex_fingerprint_convergence_enabled: false,
// Kiro 专属配置
kiro_simulated_cache_enabled: false,
// Responses WebSocket 配置
responses_websocket_enabled: false,
}
}
@@ -549,6 +566,8 @@ function loadProviderData() {
codex_fingerprint_convergence_enabled: props.provider.codex_fingerprint_convergence_enabled ?? false,
// Kiro 专属配置
kiro_simulated_cache_enabled: props.provider.kiro_simulated_cache_enabled ?? false,
// Responses WebSocket 配置
responses_websocket_enabled: props.provider.responses_websocket_enabled ?? false,
}
}
@@ -608,6 +627,7 @@ const handleSubmit = async () => {
quota_last_reset_at: quotaLastResetAt,
quota_expires_at: quotaExpiresAt,
keep_priority_on_conversion: form.value.keep_priority_on_conversion,
responses_websocket_enabled: form.value.responses_websocket_enabled,
is_active: form.value.is_active,
// 请求配置
max_retries: form.value.max_retries ?? undefined,