From c1622424338ec8bd8834d7d098c3deec7d2c93fd Mon Sep 17 00:00:00 2001 From: one Date: Wed, 26 Mar 2025 21:44:26 +0800 Subject: [PATCH] fix(HealthCheck): exclude rerank models from being checked (#3969) * fix(HealthCheck): exclude rerank models from being checked * fix: info in en --- src/renderer/src/i18n/locales/en-us.json | 2 +- src/renderer/src/i18n/locales/ja-jp.json | 2 +- src/renderer/src/i18n/locales/ru-ru.json | 2 +- src/renderer/src/i18n/locales/zh-cn.json | 2 +- src/renderer/src/i18n/locales/zh-tw.json | 2 +- .../ProviderSettings/ProviderSetting.tsx | 17 +++++++++++------ .../SelectProviderModelPopup.tsx | 4 ++-- 7 files changed, 18 insertions(+), 13 deletions(-) diff --git a/src/renderer/src/i18n/locales/en-us.json b/src/renderer/src/i18n/locales/en-us.json index 9c1f4253..af748308 100644 --- a/src/renderer/src/i18n/locales/en-us.json +++ b/src/renderer/src/i18n/locales/en-us.json @@ -1119,7 +1119,7 @@ "docs_more_details": "for more details", "get_api_key": "Get API Key", "is_not_support_array_content": "Enable compatible mode", - "no_models": "Please add models first before checking the API connection", + "no_models_for_check": "No models available for checking (e.g. chat models)", "not_checked": "Not Checked", "remove_duplicate_keys": "Remove Duplicate Keys", "remove_invalid_keys": "Remove Invalid Keys", diff --git a/src/renderer/src/i18n/locales/ja-jp.json b/src/renderer/src/i18n/locales/ja-jp.json index 02377ec3..b47b041c 100644 --- a/src/renderer/src/i18n/locales/ja-jp.json +++ b/src/renderer/src/i18n/locales/ja-jp.json @@ -1118,7 +1118,7 @@ "docs_more_details": "詳細を確認", "get_api_key": "APIキーを取得", "is_not_support_array_content": "互換モードを有効にする", - "no_models": "API接続をチェックする前に、モデルを追加してください", + "no_models_for_check": "チェックするモデルがありません(例:会話モデル)", "not_checked": "未チェック", "remove_duplicate_keys": "重複キーを削除", "remove_invalid_keys": "無効なキーを削除", diff --git a/src/renderer/src/i18n/locales/ru-ru.json b/src/renderer/src/i18n/locales/ru-ru.json index cf480111..6a67f05d 100644 --- a/src/renderer/src/i18n/locales/ru-ru.json +++ b/src/renderer/src/i18n/locales/ru-ru.json @@ -1118,7 +1118,7 @@ "docs_more_details": "для получения дополнительной информации", "get_api_key": "Получить ключ API", "is_not_support_array_content": "Включить совместимый режим", - "no_models": "Пожалуйста, добавьте модели перед проверкой соединения с API", + "no_models_for_check": "Нет моделей для проверки (например, диалоговые модели)", "not_checked": "Не проверено", "remove_duplicate_keys": "Удалить дубликаты ключей", "remove_invalid_keys": "Удалить недействительные ключи", diff --git a/src/renderer/src/i18n/locales/zh-cn.json b/src/renderer/src/i18n/locales/zh-cn.json index 6de80fa5..f51df767 100644 --- a/src/renderer/src/i18n/locales/zh-cn.json +++ b/src/renderer/src/i18n/locales/zh-cn.json @@ -1119,7 +1119,7 @@ "docs_more_details": "获取更多详情", "get_api_key": "点击这里获取密钥", "is_not_support_array_content": "开启兼容模式", - "no_models": "请先添加模型再检查 API 连接", + "no_models_for_check": "没有可以被检查的模型(例如对话模型)", "not_checked": "未检查", "remove_duplicate_keys": "移除重复密钥", "remove_invalid_keys": "删除无效密钥", diff --git a/src/renderer/src/i18n/locales/zh-tw.json b/src/renderer/src/i18n/locales/zh-tw.json index ad2cd87e..5bcb0c3c 100644 --- a/src/renderer/src/i18n/locales/zh-tw.json +++ b/src/renderer/src/i18n/locales/zh-tw.json @@ -1118,7 +1118,7 @@ "docs_more_details": "檢視更多細節", "get_api_key": "點選這裡取得金鑰", "is_not_support_array_content": "開啟相容模式", - "no_models": "請先新增模型再檢查 API 連接", + "no_models_for_check": "沒有可以被檢查的模型(例如對話模型)", "not_checked": "未檢查", "remove_duplicate_keys": "移除重複金鑰", "remove_invalid_keys": "刪除無效金鑰", diff --git a/src/renderer/src/pages/settings/ProviderSettings/ProviderSetting.tsx b/src/renderer/src/pages/settings/ProviderSettings/ProviderSetting.tsx index fdc82d45..6580ae96 100644 --- a/src/renderer/src/pages/settings/ProviderSettings/ProviderSetting.tsx +++ b/src/renderer/src/pages/settings/ProviderSettings/ProviderSetting.tsx @@ -1,6 +1,7 @@ import { CheckOutlined, ExportOutlined, HeartOutlined, LoadingOutlined, SettingOutlined } from '@ant-design/icons' import { HStack } from '@renderer/components/Layout' import OAuthButton from '@renderer/components/OAuth/OAuthButton' +import { isEmbeddingModel, isRerankModel } from '@renderer/config/models' import { PROVIDER_CONFIG } from '@renderer/config/providers' import { useTheme } from '@renderer/context/ThemeProvider' import { useProvider } from '@renderer/hooks/useProvider' @@ -91,12 +92,14 @@ const ProviderSetting: FC = ({ provider: _provider }) => { const onUpdateApiVersion = () => updateProvider({ ...provider, apiVersion }) const onHealthCheck = async () => { - if (isEmpty(models)) { + const modelsToCheck = models.filter((model) => !isRerankModel(model)) + + if (isEmpty(modelsToCheck)) { window.message.error({ key: 'no-models', style: { marginTop: '3vh' }, duration: 5, - content: t('settings.provider.no_models') + content: t('settings.provider.no_models_for_check') }) return } @@ -124,7 +127,7 @@ const ProviderSetting: FC = ({ provider: _provider }) => { } // Prepare the list of models to be checked - const initialStatuses = models.map((model) => ({ + const initialStatuses = modelsToCheck.map((model) => ({ model, checking: true, status: undefined @@ -135,7 +138,7 @@ const ProviderSetting: FC = ({ provider: _provider }) => { const checkResults = await checkModelsHealth( { provider: { ...provider, apiHost }, - models, + models: modelsToCheck, apiKeys: result.apiKeys, isConcurrent: result.isConcurrent }, @@ -180,12 +183,14 @@ const ProviderSetting: FC = ({ provider: _provider }) => { } const onCheckApi = async () => { - if (isEmpty(models)) { + const modelsToCheck = models.filter((model) => !isEmbeddingModel(model) && !isRerankModel(model)) + + if (isEmpty(modelsToCheck)) { window.message.error({ key: 'no-models', style: { marginTop: '3vh' }, duration: 5, - content: t('settings.provider.no_models') + content: t('settings.provider.no_models_for_check') }) return } diff --git a/src/renderer/src/pages/settings/ProviderSettings/SelectProviderModelPopup.tsx b/src/renderer/src/pages/settings/ProviderSettings/SelectProviderModelPopup.tsx index 7b9297c6..0d1d8627 100644 --- a/src/renderer/src/pages/settings/ProviderSettings/SelectProviderModelPopup.tsx +++ b/src/renderer/src/pages/settings/ProviderSettings/SelectProviderModelPopup.tsx @@ -1,5 +1,5 @@ import { TopView } from '@renderer/components/TopView' -import { isEmbeddingModel } from '@renderer/config/models' +import { isEmbeddingModel, isRerankModel } from '@renderer/config/models' import i18n from '@renderer/i18n' import { Provider } from '@renderer/types' import { Modal, Select } from 'antd' @@ -16,7 +16,7 @@ interface Props extends ShowParams { } const PopupContainer: React.FC = ({ provider, resolve, reject }) => { - const models = orderBy(provider.models, 'group').filter((i) => !isEmbeddingModel(i)) + const models = orderBy(provider.models, 'group').filter((i) => !isEmbeddingModel(i) && !isRerankModel(i)) const [open, setOpen] = useState(true) const [model, setModel] = useState(first(models))