diff --git a/src/app/[variants]/(main)/settings/provider/(detail)/azure/page.tsx b/src/app/[variants]/(main)/settings/provider/(detail)/azure/page.tsx index 88e0e791d51bc..a8eb53df5f391 100644 --- a/src/app/[variants]/(main)/settings/provider/(detail)/azure/page.tsx +++ b/src/app/[variants]/(main)/settings/provider/(detail)/azure/page.tsx @@ -77,15 +77,11 @@ const useProviderCard = (): ProviderItem => { ) : ( ({ label: i, value: i }))} placeholder={'20XX-XX-XX'} /> diff --git a/src/app/[variants]/(main)/settings/provider/features/ProviderConfig/Checker.tsx b/src/app/[variants]/(main)/settings/provider/features/ProviderConfig/Checker.tsx index af93819c382c0..06b63a31c9ef7 100644 --- a/src/app/[variants]/(main)/settings/provider/features/ProviderConfig/Checker.tsx +++ b/src/app/[variants]/(main)/settings/provider/features/ProviderConfig/Checker.tsx @@ -1,18 +1,19 @@ 'use client'; import { CheckCircleFilled } from '@ant-design/icons'; -import { Alert, Highlighter } from '@lobehub/ui'; -import { Button } from 'antd'; +import { ModelIcon } from '@lobehub/icons'; +import { Alert, Highlighter, Icon } from '@lobehub/ui'; +import { Button, Select, Space } from 'antd'; import { useTheme } from 'antd-style'; +import { Loader2Icon } from 'lucide-react'; import { ReactNode, memo, useState } from 'react'; import { useTranslation } from 'react-i18next'; import { Flexbox } from 'react-layout-kit'; import { TraceNameMap } from '@/const/trace'; -import { useIsMobile } from '@/hooks/useIsMobile'; import { useProviderName } from '@/hooks/useProviderName'; import { chatService } from '@/services/chat'; -import { aiProviderSelectors, useAiInfraStore } from '@/store/aiInfra'; +import { aiModelSelectors, aiProviderSelectors, useAiInfraStore } from '@/store/aiInfra'; import { ChatMessageError } from '@/types/message'; const Error = memo<{ error: ChatMessageError }>(({ error }) => { @@ -20,9 +21,8 @@ const Error = memo<{ error: ChatMessageError }>(({ error }) => { const providerName = useProviderName(error.body?.provider); return ( - + @@ -54,10 +54,15 @@ const Checker = memo( ({ model, provider, checkErrorRender: CheckErrorRender }) => { const { t } = useTranslation('setting'); - const disabled = useAiInfraStore(aiProviderSelectors.isProviderConfigUpdating(provider)); + const isProviderConfigUpdating = useAiInfraStore( + aiProviderSelectors.isProviderConfigUpdating(provider), + ); + const totalModels = useAiInfraStore(aiModelSelectors.aiProviderChatModelListIds); + const updateAiProviderConfig = useAiInfraStore((s) => s.updateAiProviderConfig); const [loading, setLoading] = useState(false); const [pass, setPass] = useState(false); + const [checkModel, setCheckModel] = useState(model); const theme = useTheme(); const [error, setError] = useState(); @@ -71,6 +76,7 @@ const Checker = memo( setPass(false); isError = true; }, + onFinish: async (value) => { if (!isError && value) { setError(undefined); @@ -104,7 +110,6 @@ const Checker = memo( }, }); }; - const isMobile = useIsMobile(); const defaultError = error ? : null; @@ -115,26 +120,42 @@ const Checker = memo( ); return ( - - - {pass && ( - - - {t('llm.checker.pass')} - - )} -