From c400003ce9cd05ce6e4bec5af0b3d1a201c608c0 Mon Sep 17 00:00:00 2001 From: jialin Date: Thu, 24 Apr 2025 21:08:31 +0800 Subject: [PATCH] fix: model and file evaluate over close loading --- .../llmodels/components/advance-config.tsx | 7 ++++ .../llmodels/components/deploy-modal.tsx | 33 ++++++++++++++----- .../llmodels/components/hf-model-file.tsx | 31 +++++++++++++++-- .../llmodels/components/search-model.tsx | 25 ++++++++++++-- 4 files changed, 82 insertions(+), 14 deletions(-) diff --git a/src/pages/llmodels/components/advance-config.tsx b/src/pages/llmodels/components/advance-config.tsx index a301ada8..b4f1a1c6 100644 --- a/src/pages/llmodels/components/advance-config.tsx +++ b/src/pages/llmodels/components/advance-config.tsx @@ -140,6 +140,13 @@ const AdvanceConfig: React.FC = (props) => { link: 'https://docs.vllm.ai/en/stable/serving/openai_compatible_server.html#cli-reference' }; } + if (backend === backendOptionsMap.ascendMindie) { + return { + backend: 'Ascend MindIE', + releases: '', + link: 'http://docs.gpustack.ai/latest/user-guide/inference-backends/#parameters-reference_2' + }; + } return null; }, [backend]); diff --git a/src/pages/llmodels/components/deploy-modal.tsx b/src/pages/llmodels/components/deploy-modal.tsx index 3cd8f521..f11c534d 100644 --- a/src/pages/llmodels/components/deploy-modal.tsx +++ b/src/pages/llmodels/components/deploy-modal.tsx @@ -102,10 +102,19 @@ const AddModal: FC = (props) => { const [collapsed, setCollapsed] = useState(false); const [isGGUF, setIsGGUF] = useState(false); const modelFileRef = useRef(null); - const isHolderRef = useRef(false); + const isHolderRef = useRef<{ + model: boolean; + file: boolean; + }>({ + model: false, + file: false + }); - const setIsHolderRef = (flag?: boolean) => { - isHolderRef.current = flag || false; + const setIsHolderRef = (flag: Record) => { + isHolderRef.current = { + ...isHolderRef.current, + ...flag + }; }; const getDefaultSpec = (item: any) => { @@ -133,7 +142,11 @@ const AddModal: FC = (props) => { categories: getCategory(item) }); - if (item.fakeName) { + if ( + item.fakeName && + !isHolderRef.current.model && + !isHolderRef.current.file + ) { handleShowCompatibleAlert(item.evaluateResult); } }; @@ -144,7 +157,8 @@ const AddModal: FC = (props) => { setIsGGUF(false); form.current?.form?.resetFields(resetFields); const modelInfo = onSelectModel(item, props.source); - if (!isHolderRef.current) { + console.log('isholderRef', isHolderRef.current); + if (!isHolderRef.current.model && !isHolderRef.current.file) { handleShowCompatibleAlert(item.evaluateResult); } form.current?.setFieldsValue?.({ @@ -246,10 +260,13 @@ const AddModal: FC = (props) => { return warningStatus.show && warningStatus.type !== 'success'; }, [warningStatus.show, warningStatus.type]); - const displayEvaluateStatus = (show?: boolean) => { - setIsHolderRef(show); + const displayEvaluateStatus = (data: { + show?: boolean; + flag: Record; + }) => { + setIsHolderRef(data.flag); setWarningStatus({ - show: show || false, + show: isHolderRef.current.model || isHolderRef.current.file, title: '', type: 'transition', message: intl.formatMessage({ id: 'models.form.evaluating' }) diff --git a/src/pages/llmodels/components/hf-model-file.tsx b/src/pages/llmodels/components/hf-model-file.tsx index 32138246..6492d638 100644 --- a/src/pages/llmodels/components/hf-model-file.tsx +++ b/src/pages/llmodels/components/hf-model-file.tsx @@ -41,7 +41,10 @@ interface HFModelFileProps { ref: any; gpuOptions?: any[]; onSelectFile?: (file: any, evaluate?: boolean) => void; - displayEvaluateStatus?: (show?: boolean) => void; + displayEvaluateStatus?: (data: { + show?: boolean; + flag: Record; + }) => void; } const pattern = /^(.*)-(\d+)-of-(\d+)\.(.*)$/; @@ -251,7 +254,6 @@ const HFModelFile: React.FC = forwardRef((props, ref) => { }); setIsEvaluating(true); - displayEvaluateStatus?.(true); const evaluationList = await getEvaluateResults(evaluateFileList); const resultList = _.map(list, (item: any, index: number) => { @@ -264,7 +266,12 @@ const HFModelFile: React.FC = forwardRef((props, ref) => { resultList, (item: any) => item.path === currentPathRef.current ); - displayEvaluateStatus?.(false); + displayEvaluateStatus?.({ + show: false, + flag: { + file: false + } + }); if (currentItem) { handleSelectModelFile(currentItem, true); } @@ -272,6 +279,12 @@ const HFModelFile: React.FC = forwardRef((props, ref) => { setIsEvaluating(false); } catch (error) { setIsEvaluating(false); + displayEvaluateStatus?.({ + show: false, + flag: { + file: false + } + }); } }; @@ -285,6 +298,12 @@ const HFModelFile: React.FC = forwardRef((props, ref) => { axiosTokenRef.current?.abort?.(); axiosTokenRef.current = new AbortController(); setDataSource({ ...dataSource, loading: true }); + displayEvaluateStatus?.({ + show: true, + flag: { + file: true + } + }); setCurrent(''); try { let list = []; @@ -306,6 +325,12 @@ const HFModelFile: React.FC = forwardRef((props, ref) => { } catch (error) { setDataSource({ fileList: [], loading: false }); handleSelectModelFile({}); + displayEvaluateStatus?.({ + show: false, + flag: { + file: false + } + }); } }; diff --git a/src/pages/llmodels/components/search-model.tsx b/src/pages/llmodels/components/search-model.tsx index 6e8f1ece..a9459457 100644 --- a/src/pages/llmodels/components/search-model.tsx +++ b/src/pages/llmodels/components/search-model.tsx @@ -43,7 +43,10 @@ interface SearchInputProps { setLoadingModel?: (flag: boolean) => void; onSourceChange?: (source: string) => void; onSelectModel: (model: any, evaluate?: boolean) => void; - displayEvaluateStatus?: (show?: boolean) => void; + displayEvaluateStatus?: (data: { + show?: boolean; + flag: Record; + }) => void; } const SearchModel: React.FC = (props) => { @@ -258,7 +261,12 @@ const SearchModel: React.FC = (props) => { const currentItem = resultList.find( (item) => item.id === currentRef.current ); - displayEvaluateStatus?.(false); + displayEvaluateStatus?.({ + show: false, + flag: { + model: false + } + }); if (currentItem) { handleOnSelectModel(currentItem, true); } @@ -284,7 +292,12 @@ const SearchModel: React.FC = (props) => { return { ...pre }; }); setLoadingModel?.(true); - displayEvaluateStatus?.(true); + displayEvaluateStatus?.({ + show: true, + flag: { + model: true + } + }); cacheRepoOptions.current = []; let list: any[] = []; if (modelSource === modelSourceMap.huggingface_value) { @@ -313,6 +326,12 @@ const SearchModel: React.FC = (props) => { networkError: error?.message === 'Failed to fetch' }); setLoadingModel?.(false); + displayEvaluateStatus?.({ + show: false, + flag: { + model: false + } + }); handleOnSelectModel({}); cacheRepoOptions.current = []; }