From 454c3ed111055d28c78ed6f9279dab758b411fc6 Mon Sep 17 00:00:00 2001 From: YoVinchen Date: Wed, 10 Dec 2025 15:52:26 +0800 Subject: [PATCH] refactor(health): replace model_test with stream_check Replace model_test module with stream_check across the codebase: - Remove model_test command and service modules - Update command registry in lib.rs to use stream_check commands - Update module exports in commands/mod.rs and services/mod.rs - Remove frontend useModelTest hook - Update stream_check command implementation This refactoring provides clearer naming and better separation of concerns. --- src-tauri/src/commands/mod.rs | 4 +- src-tauri/src/commands/stream_check.rs | 19 +++----- src-tauri/src/lib.rs | 12 ++--- src-tauri/src/services/mod.rs | 4 +- src/hooks/useModelTest.ts | 66 -------------------------- 5 files changed, 15 insertions(+), 90 deletions(-) delete mode 100644 src/hooks/useModelTest.ts diff --git a/src-tauri/src/commands/mod.rs b/src-tauri/src/commands/mod.rs index cd8018b8b..9b7e87b98 100644 --- a/src-tauri/src/commands/mod.rs +++ b/src-tauri/src/commands/mod.rs @@ -6,13 +6,13 @@ mod env; mod import_export; mod mcp; mod misc; -mod model_test; mod plugin; mod prompt; mod provider; mod proxy; mod settings; pub mod skill; +mod stream_check; mod usage; pub use config::*; @@ -21,11 +21,11 @@ pub use env::*; pub use import_export::*; pub use mcp::*; pub use misc::*; -pub use model_test::*; pub use plugin::*; pub use prompt::*; pub use provider::*; pub use proxy::*; pub use settings::*; pub use skill::*; +pub use stream_check::*; pub use usage::*; diff --git a/src-tauri/src/commands/stream_check.rs b/src-tauri/src/commands/stream_check.rs index e70d5ea2d..d0fa13dbf 100644 --- a/src-tauri/src/commands/stream_check.rs +++ b/src-tauri/src/commands/stream_check.rs @@ -25,12 +25,10 @@ pub async fn stream_check_provider( let result = StreamCheckService::check_with_retry(&app_type, provider, &config).await?; // 记录日志 - let _ = state.db.save_stream_check_log( - &provider_id, - &provider.name, - app_type.as_str(), - &result, - ); + let _ = + state + .db + .save_stream_check_log(&provider_id, &provider.name, app_type.as_str(), &result); Ok(result) } @@ -65,12 +63,9 @@ pub async fn stream_check_all_providers( retry_count: 0, }); - let _ = state.db.save_stream_check_log( - &id, - &provider.name, - app_type.as_str(), - &result, - ); + let _ = state + .db + .save_stream_check_log(&id, &provider.name, app_type.as_str(), &result); results.push((id, result)); } diff --git a/src-tauri/src/lib.rs b/src-tauri/src/lib.rs index a17190c27..26db9bae5 100644 --- a/src-tauri/src/lib.rs +++ b/src-tauri/src/lib.rs @@ -672,13 +672,11 @@ pub fn run() { commands::update_model_pricing, commands::delete_model_pricing, commands::check_provider_limits, - // Model testing - commands::test_provider_model, - commands::test_all_providers_model, - commands::get_model_test_config, - commands::save_model_test_config, - commands::get_model_test_logs, - commands::cleanup_model_test_logs, + // Stream health check + commands::stream_check_provider, + commands::stream_check_all_providers, + commands::get_stream_check_config, + commands::save_stream_check_config, commands::get_tool_versions, ]); diff --git a/src-tauri/src/services/mod.rs b/src-tauri/src/services/mod.rs index 2b3e7bcc6..c314c70ef 100644 --- a/src-tauri/src/services/mod.rs +++ b/src-tauri/src/services/mod.rs @@ -2,18 +2,16 @@ pub mod config; pub mod env_checker; pub mod env_manager; pub mod mcp; -pub mod model_test; pub mod prompt; pub mod provider; pub mod proxy; pub mod skill; pub mod speedtest; +pub mod stream_check; pub mod usage_stats; pub use config::ConfigService; pub use mcp::McpService; -#[allow(unused_imports)] -pub use model_test::{ModelTestConfig, ModelTestLog, ModelTestResult, ModelTestService}; pub use prompt::PromptService; pub use provider::{ProviderService, ProviderSortUpdate}; pub use proxy::ProxyService; diff --git a/src/hooks/useModelTest.ts b/src/hooks/useModelTest.ts deleted file mode 100644 index f79e61faf..000000000 --- a/src/hooks/useModelTest.ts +++ /dev/null @@ -1,66 +0,0 @@ -import { useState, useCallback } from "react"; -import { toast } from "sonner"; -import { useTranslation } from "react-i18next"; -import { testProviderModel, type ModelTestResult } from "@/lib/api/model-test"; -import type { AppId } from "@/lib/api"; - -export function useModelTest(appId: AppId) { - const { t } = useTranslation(); - const [testingIds, setTestingIds] = useState>(new Set()); - - const testProvider = useCallback( - async ( - providerId: string, - providerName: string, - ): Promise => { - setTestingIds((prev) => new Set(prev).add(providerId)); - - try { - const result = await testProviderModel(appId, providerId); - - if (result.success) { - toast.success( - t("modelTest.success", { - name: providerName, - time: result.responseTimeMs, - defaultValue: `${providerName} 测试成功 (${result.responseTimeMs}ms)`, - }), - ); - } else { - toast.error( - t("modelTest.failed", { - name: providerName, - error: result.message, - defaultValue: `${providerName} 测试失败: ${result.message}`, - }), - ); - } - - return result; - } catch (e) { - toast.error( - t("modelTest.error", { - name: providerName, - error: String(e), - defaultValue: `${providerName} 测试出错: ${String(e)}`, - }), - ); - return null; - } finally { - setTestingIds((prev) => { - const next = new Set(prev); - next.delete(providerId); - return next; - }); - } - }, - [appId, t], - ); - - const isTesting = useCallback( - (providerId: string) => testingIds.has(providerId), - [testingIds], - ); - - return { testProvider, isTesting }; -}