From 86ebb524f7749f5f9ace39350611efd6fc3612be Mon Sep 17 00:00:00 2001 From: YoVinchen Date: Wed, 10 Dec 2025 15:59:55 +0800 Subject: [PATCH] refactor(ui): update frontend components for stream check Update frontend components to use stream check API: - Refactor ModelTestConfigPanel to use stream check config - Update API layer to use stream_check commands - Add HealthStatus type and StreamCheckResult interface - Update ProviderList to use new health check integration - Update AutoFailoverConfigPanel with stream check references - Improve UI layout and configuration options This completes the frontend migration from model_test to stream_check. --- src/components/providers/ProviderList.tsx | 10 +- .../proxy/AutoFailoverConfigPanel.tsx | 3 +- src/components/usage/ModelTestConfigPanel.tsx | 210 ++++++++++-------- src/lib/api/model-test.ts | 79 +++---- 4 files changed, 154 insertions(+), 148 deletions(-) diff --git a/src/components/providers/ProviderList.tsx b/src/components/providers/ProviderList.tsx index 6fcff0b61..53499aed9 100644 --- a/src/components/providers/ProviderList.tsx +++ b/src/components/providers/ProviderList.tsx @@ -10,7 +10,7 @@ import type { CSSProperties } from "react"; import type { Provider } from "@/types"; import type { AppId } from "@/lib/api"; import { useDragSort } from "@/hooks/useDragSort"; -import { useModelTest } from "@/hooks/useModelTest"; +import { useStreamCheck } from "@/hooks/useStreamCheck"; import { ProviderCard } from "@/components/providers/ProviderCard"; import { ProviderEmptyState } from "@/components/providers/ProviderEmptyState"; @@ -48,8 +48,8 @@ export function ProviderList({ appId, ); - // 模型测试 - const { testProvider, isTesting } = useModelTest(appId); + // 流式健康检查 + const { checkProvider, isChecking } = useStreamCheck(appId); // 计算代理目标的实际优先级映射 (P1, P2, P3...) const proxyPriorityMap = useMemo(() => { @@ -73,7 +73,7 @@ export function ProviderList({ }, [sortedProviders]); const handleTest = (provider: Provider) => { - testProvider(provider.id, provider.name); + checkProvider(provider.id, provider.name); }; if (isLoading) { @@ -120,7 +120,7 @@ export function ProviderList({ onConfigureUsage={onConfigureUsage} onOpenWebsite={onOpenWebsite} onTest={handleTest} - isTesting={isTesting(provider.id)} + isTesting={isChecking(provider.id)} isProxyRunning={isProxyRunning} proxyPriority={proxyPriorityMap.get(provider.id)} allProviders={sortedProviders} diff --git a/src/components/proxy/AutoFailoverConfigPanel.tsx b/src/components/proxy/AutoFailoverConfigPanel.tsx index 9e8710f28..d8e644c94 100644 --- a/src/components/proxy/AutoFailoverConfigPanel.tsx +++ b/src/components/proxy/AutoFailoverConfigPanel.tsx @@ -18,7 +18,6 @@ export interface AutoFailoverConfigPanelProps { export function AutoFailoverConfigPanel({ enabled, - onEnabledChange, }: AutoFailoverConfigPanelProps) { const { t } = useTranslation(); const { data: config, isLoading, error } = useCircuitBreakerConfig(); @@ -262,7 +261,7 @@ export function AutoFailoverConfigPanel({