refactor: deployments dir tree

This commit is contained in:
jialin
2026-03-19 12:28:18 +08:00
committed by jialin
parent 9840a48301
commit fd1a079271
44 changed files with 118 additions and 306 deletions
+1 -1
View File
@@ -3,7 +3,7 @@ import SGLangLogo from '@/assets/logo/sglang.png';
import vLLMLogo from '@/assets/logo/vllm.png';
import VoxBoxLogo from '@/assets/logo/voxbox.png';
import icons from '@/components/icon-font/icons';
import { backendOptionsMap } from '@/pages/llmodels/config/backend-parameters';
import { backendOptionsMap } from '@/pages/llmodels/constants/backend-parameters';
import {
GPUDriverMap,
ManufacturerMap
+2 -2
View File
@@ -15,8 +15,8 @@ import React, { useCallback, useEffect, useState } from 'react';
import NoResult from '../_components/no-result';
import PageBox from '../_components/page-box';
import { createModel, queryCatalogItemSpec, queryCatalogList } from './apis';
import CatalogList from './components/catalog-list';
import DelopyBuiltInModal from './components/deploy-builtin-modal';
import CatalogList from './components/catalog/catalog-list';
import DelopyBuiltInModal from './components/deployment/deploy-builtin-modal';
import { modelCategories, modelSourceMap } from './config';
import { CatalogItem as CatalogItemType, FormData } from './config/types';
@@ -2,15 +2,15 @@ import fallbackImg from '@/assets/images/img.png';
import AutoTooltip from '@/components/auto-tooltip';
import IconFont from '@/components/icon-font';
import ThemeTag from '@/components/tags-wrapper/theme-tag';
import { categoryConfig } from '@/pages/_components/model-tag';
import { useIntl } from '@umijs/max';
import { Typography } from 'antd';
import classNames from 'classnames';
import _ from 'lodash';
import React, { useCallback, useMemo } from 'react';
import { categoryConfig } from '../../_components/model-tag';
import { modelCategories } from '../config';
import { CatalogItem as CatalogItemType } from '../config/types';
import '../style/catalog-item.less';
import { modelCategories } from '../../config';
import { CatalogItem as CatalogItemType } from '../../config/types';
import '../../style/catalog-item.less';
interface CatalogItemProps {
activeId: number;
@@ -2,23 +2,28 @@ import ModalFooter from '@/components/modal-footer';
import GSDrawer from '@/components/scroller-modal/gs-drawer';
import { PageActionType } from '@/config/types';
import { createAxiosToken } from '@/hooks/use-chunk-request';
import ColumnWrapper from '@/pages/_components/column-wrapper';
import { ClusterStatusValueMap } from '@/pages/cluster-management/config';
import { useIntl } from '@umijs/max';
import { Button, message } from 'antd';
import _ from 'lodash';
import React, { useEffect, useMemo, useRef, useState } from 'react';
import styled from 'styled-components';
import ColumnWrapper from '../../_components/column-wrapper';
import { queryCatalogItemSpec } from '../apis';
import { DeployFormKeyMap, sourceOptions } from '../config';
import { backendOptionsMap } from '../config/backend-parameters';
import { CatalogFormContext } from '../config/form-context';
import { CatalogSpec, FormData, ListItem, SourceType } from '../config/types';
import { generateGPUIds } from '../config/utils';
import DataForm from '../forms';
import { useCheckCompatibility } from '../hooks';
import useFormInitialValues from '../hooks/use-form-initial-values';
import CompatibilityAlert from './compatible-alert';
import { queryCatalogItemSpec } from '../../apis';
import { DeployFormKeyMap, sourceOptions } from '../../config';
import { CatalogFormContext } from '../../config/form-context';
import {
CatalogSpec,
FormData,
ListItem,
SourceType
} from '../../config/types';
import { backendOptionsMap } from '../../constants/backend-parameters';
import DataForm from '../../forms';
import { useCheckCompatibility } from '../../hooks';
import useFormInitialValues from '../../hooks/use-form-initial-values';
import { generateGPUIds } from '../../utils';
import CompatibilityAlert from '../compatible-alert';
const ModesMap: Record<string, string> = {
latency: 'models.form.mode.latency',
@@ -10,24 +10,28 @@ import { Button } from 'antd';
import _ from 'lodash';
import { FC, useEffect, useMemo, useRef, useState } from 'react';
import styled from 'styled-components';
import ColumnWrapper from '../../_components/column-wrapper';
import { defaultFormValues, DeployFormKeyMap, modelSourceMap } from '../config';
import { backendOptionsMap } from '../config/backend-parameters';
import { FormData, SourceType } from '../config/types';
import DataForm from '../forms';
import ColumnWrapper from '../../../_components/column-wrapper';
import {
defaultFormValues,
DeployFormKeyMap,
modelSourceMap
} from '../../config';
import { FormData, SourceType } from '../../config/types';
import { backendOptionsMap } from '../../constants/backend-parameters';
import DataForm from '../../forms';
import {
MessageStatus,
useCheckCompatibility,
useSelectModel,
WarningStausOptions
} from '../hooks';
import useCheckBackend from '../hooks/use-check-backend';
import CompatibilityAlert from './compatible-alert';
import HFModelFile from './hf-model-file';
import ModelCard from './model-card';
import SearchModel from './search-model';
import Separator from './separator';
import TitleWrapper from './title-wrapper';
} from '../../hooks';
import useCheckBackend from '../../hooks/use-check-backend';
import CompatibilityAlert from '../compatible-alert';
import HFModelFile from '../model-source/hf-model-file';
import ModelCard from '../model-source/model-card';
import SearchModel from '../model-source/search-model';
import Separator from '../separator';
import TitleWrapper from '../title-wrapper';
const pickFieldsFromSpec = ['backend_version', 'backend_parameters', 'env'];
const dropFieldsFromForm = [
@@ -2,21 +2,21 @@ import ModalFooter from '@/components/modal-footer';
import GSDrawer from '@/components/scroller-modal/gs-drawer';
import { PageAction } from '@/config';
import { PageActionType } from '@/config/types';
import ColumnWrapper from '@/pages/_components/column-wrapper';
import { useIntl } from '@umijs/max';
import _ from 'lodash';
import React, { useEffect, useRef } from 'react';
import ColumnWrapper from '../../_components/column-wrapper';
import {
DeployFormKeyMap,
DO_NOT_NOTIFY_RECREATE,
ScheduleValueMap
} from '../config';
import { backendOptionsMap } from '../config/backend-parameters';
import { FormData } from '../config/types';
import { generateGPUSelector } from '../config/utils';
import DataForm from '../forms';
import { useCheckCompatibility } from '../hooks';
import CompatibilityAlert from './compatible-alert';
} from '../../config';
import { FormData } from '../../config/types';
import { backendOptionsMap } from '../../constants/backend-parameters';
import DataForm from '../../forms';
import { useCheckCompatibility } from '../../hooks';
import { generateGPUSelector } from '../../utils';
import CompatibilityAlert from '../compatible-alert';
type AddModalProps = {
title: string;
@@ -28,21 +28,21 @@ import { useAtomValue } from 'jotai';
import _ from 'lodash';
import React, { useCallback, useEffect, useMemo } from 'react';
import styled from 'styled-components';
import { MODEL_INSTANCE_API } from '../apis';
import { MODEL_INSTANCE_API } from '../../apis';
import {
InstanceStatusMap,
InstanceStatusMapValue,
modelCategoriesMap,
status
} from '../config';
import { backendOptionsMap } from '../config/backend-parameters';
import { generateSource } from '../config/button-actions';
} from '../../config';
import { generateSource } from '../../config/button-actions';
import {
DistributedServerItem,
DistributedServers,
ModelInstanceListItem
} from '../config/types';
import '../style/instance-item.less';
} from '../../config/types';
import { backendOptionsMap } from '../../constants/backend-parameters';
import '../../style/instance-item.less';
interface InstanceItemProps {
instanceData: ModelInstanceListItem;
@@ -2,8 +2,8 @@ import { ListItem as WorkerListItem } from '@/pages/resources/config/types';
import _ from 'lodash';
import React, { useEffect, useMemo } from 'react';
import styled from 'styled-components';
import { ModelInstanceListItem } from '../config/types';
import '../style/instance-item.less';
import { ModelInstanceListItem } from '../../config/types';
import '../../style/instance-item.less';
import InstanceItem from './instance-item';
const Wrapper = styled.div`
@@ -13,12 +13,15 @@ import React, {
} from 'react';
import 'simplebar-react/dist/simplebar.min.css';
import styled from 'styled-components';
import { queryHuggingfaceModelFiles, queryModelScopeModelFiles } from '../apis';
import { modelSourceMap } from '../config';
import '../style/hf-model-file.less';
import {
queryHuggingfaceModelFiles,
queryModelScopeModelFiles
} from '../../apis';
import { modelSourceMap } from '../../config';
import '../../style/hf-model-file.less';
import TitleWrapper from '../title-wrapper';
import FileSkeleton from './file-skeleton';
import ModelFileItem from './model-file-item';
import TitleWrapper from './title-wrapper';
const ItemFileWrapper = styled.div`
display: flex;
@@ -4,10 +4,10 @@ import { DownloadOutlined, HeartOutlined } from '@ant-design/icons';
import classNames from 'classnames';
import dayjs from 'dayjs';
import React from 'react';
import { modelSourceMap } from '../config';
import { EvaluateResult } from '../config/types';
import '../style/hf-model-item.less';
import IncompatiableInfo from './incompatiable-info';
import { modelSourceMap } from '../../config';
import { EvaluateResult } from '../../config/types';
import '../../style/hf-model-item.less';
import IncompatiableInfo from '../incompatiable-info';
interface HFModelItemProps {
title: string;
@@ -26,10 +26,10 @@ import {
downloadModelFile,
queryHuggingfaceModelDetail,
queryModelScopeModelDetail
} from '../apis';
import { modelSourceMap } from '../config';
import '../style/model-card.less';
import TitleWrapper from './title-wrapper';
} from '../../apis';
import { modelSourceMap } from '../../config';
import '../../style/model-card.less';
import TitleWrapper from '../title-wrapper';
const MkdTitle = styled.span`
cursor: pointer;
@@ -354,7 +354,7 @@ const ModelCard: React.FC<{
collapsed={collapsed}
loading={loading}
></MarkDownTitle>
<Spin spinning={loading && collapsed}>
<Spin spinning={loading && collapsed} size="middle">
<SimpleOverlay
style={{
paddingTop: collapsed ? 12 : 0,
@@ -383,7 +383,7 @@ const ModelCard: React.FC<{
)}
</div>
{!isGGUF && (
<Spin spinning={loading}>
<Spin spinning={loading} size="middle">
<div style={{ minHeight: 200 }}>
{readmeText && (
<>
@@ -7,10 +7,10 @@ import classNames from 'classnames';
import _ from 'lodash';
import React from 'react';
import 'simplebar-react/dist/simplebar.min.css';
import { getFileType } from '../config/file-type';
import '../style/hf-model-file.less';
import { getFileType } from '../../constants/file-type';
import '../../style/hf-model-file.less';
import IncompatiableInfo from '../incompatiable-info';
import FileParts from './file-parts';
import IncompatiableInfo from './incompatiable-info';
interface ModelFileItemProps {
data: Record<string, any>;
@@ -6,7 +6,7 @@ import { Input } from 'antd';
import React, { useRef } from 'react';
import { useHotkeys } from 'react-hotkeys-hook';
import styled from 'styled-components';
import { modelSourceMap, modelSourceValueMap } from '../config';
import { modelSourceMap, modelSourceValueMap } from '../../config';
const SearchInputWrapper = styled.div`
position: relative;
@@ -11,12 +11,16 @@ import {
evaluationsModelSpec,
queryHuggingfaceModels,
queryModelScopeModels
} from '../apis';
import { ModelScopeSortType, ModelSortType, modelSourceMap } from '../config';
import { MessageStatus, WarningStausOptions } from '../hooks';
import useCheckBackend from '../hooks/use-check-backend';
import useRecognizeAudio from '../hooks/use-recognize-audio';
import SearchStyle from '../style/search-result.less';
} from '../../apis';
import {
ModelScopeSortType,
ModelSortType,
modelSourceMap
} from '../../config';
import { MessageStatus, WarningStausOptions } from '../../hooks';
import useCheckBackend from '../../hooks/use-check-backend';
import useRecognizeAudio from '../../hooks/use-recognize-audio';
import SearchStyle from '../../style/search-result.less';
import SearchInput from './search-input';
import SearchResult from './search-result';
@@ -6,8 +6,8 @@ import _ from 'lodash';
import React, { useMemo } from 'react';
import 'simplebar-react/dist/simplebar.min.css';
import styled from 'styled-components';
import { modelSourceMap } from '../config';
import '../style/search-result.less';
import { modelSourceMap } from '../../config';
import '../../style/search-result.less';
import FileSkeleton from './file-skeleton';
import HFModelItem from './hf-model-item';
@@ -122,7 +122,7 @@ const SearchResult: React.FC<SearchResultProps> = (props) => {
return (
<>
<div style={{ ...props.style }} className="search-result-wrap">
<Spin spinning={props.loading}>
<Spin spinning={props.loading} size={'middle'}>
<div style={{ minHeight: 200 }}>
{resultList.length ? (
<ItemFileWrapper>
+3 -3
View File
@@ -63,9 +63,9 @@ import useEditDeployment from '../hooks/use-edit-deployment';
import useFilterStatus from '../hooks/use-filter-status';
import useFormInitialValues from '../hooks/use-form-initial-values';
import useModelsColumns from '../hooks/use-models-columns';
import DeployModal from './deploy-modal';
import Instances from './instances';
import UpdateModelModal from './update-modal';
import DeployModal from './deployment/deploy-modal';
import UpdateModelModal from './deployment/update-modal';
import Instances from './instance/instances';
import ViewLogsModal from './view-logs-modal';
interface ModelsProps {
handleSearch: (params?: any) => void;
+1 -1
View File
@@ -1,6 +1,6 @@
import { StatusMaps } from '@/config';
import { EditOutlined } from '@ant-design/icons';
import { backendOptionsMap } from './backend-parameters';
import { backendOptionsMap } from '../constants/backend-parameters';
export const backendTipsList = [
{
-204
View File
@@ -1,204 +0,0 @@
export default {
items: [
{
backend_name: 'vLLM',
is_built_in: true,
backend_source: 'built-in',
default_version: '0.13.0',
default_backend_param: [],
versions: [
{
version: '0.13.0',
is_deprecated: false
},
{
version: '0.12.0',
is_deprecated: false
},
{
version: '0.11.2',
is_deprecated: false
},
{
version: '0.11.0',
is_deprecated: true
},
{
version: '0.10.2',
is_deprecated: false
},
{
version: '0.10.1.1',
is_deprecated: true
},
{
version: '0.10.0',
is_deprecated: true
}
]
},
{
backend_name: 'SGLang',
backend_source: 'built-in',
is_built_in: true,
default_version: '0.5.7',
default_backend_param: [],
versions: [
{
version: '0.5.7',
is_deprecated: false
},
{
version: '0.5.6.post2',
is_deprecated: false
},
{
version: '0.5.5.post3',
is_deprecated: false
},
{
version: '0.5.5',
is_deprecated: true
},
{
version: '0.5.4.post3',
is_deprecated: false
}
]
},
{
backend_name: 'MindIE',
backend_source: 'built-in',
is_built_in: true,
default_version: null,
default_backend_param: [],
versions: []
},
{
backend_name: 'VoxBox',
backend_source: 'built-in',
is_built_in: true,
default_version: '0.0.21',
default_backend_param: [],
versions: [
{
version: '0.0.21',
is_deprecated: false
},
{
version: '0.0.20',
is_deprecated: true
}
]
},
{
backend_name: 'kokoro',
backend_source: 'community',
is_built_in: false,
default_version: '',
default_backend_param: [],
versions: [
{
version: 'latest',
is_deprecated: false
}
]
},
{
backend_name: 'llama.cpp',
backend_source: 'community',
is_built_in: false,
default_version: 'cpu',
default_backend_param: [],
versions: [
{
version: 'cuda',
is_deprecated: false
},
{
version: 'cpu',
is_deprecated: false
},
{
version: 'vulkan',
is_deprecated: false
},
{
version: 'musa',
is_deprecated: false
},
{
version: 'rocm',
is_deprecated: false
}
]
},
{
backend_name: 'MinerU',
backend_source: 'community',
is_built_in: false,
default_version: 'v2.7.0',
default_backend_param: [],
versions: [
{
version: 'v2.7.0',
is_deprecated: false
}
]
},
{
backend_name: 'paddlex-genai',
backend_source: 'community',
is_built_in: false,
default_version: 'latest',
default_backend_param: [],
versions: [
{
version: 'latest',
is_deprecated: false
},
{
version: 'latest-dcu',
is_deprecated: false
},
{
version: 'latest-metax-gpu',
is_deprecated: false
}
]
},
{
backend_name: 'text-embeddings-inference',
is_built_in: false,
backend_source: 'community',
default_version: 'cpu-1.8',
default_backend_param: [],
versions: [
{
version: 'cpu-1.8',
is_deprecated: false
},
{
version: 'cuda-sm89-1.8',
is_deprecated: false
},
{
version: 'cuda-sm86-1.8',
is_deprecated: false
},
{
version: 'cuda-sm80-1.8',
is_deprecated: false
}
]
},
{
backend_name: 'Custom',
backend_source: 'custom',
is_built_in: false,
default_version: null,
default_backend_param: null,
versions: []
}
]
};
+3 -3
View File
@@ -6,9 +6,9 @@ import { debounce } from 'lodash';
import React, { useCallback, useEffect, useRef, useState } from 'react';
import styled from 'styled-components';
import ColumnWrapper from '../../_components/column-wrapper';
import HFModelFile from '../components/hf-model-file';
import ModelCard from '../components/model-card';
import SearchModel from '../components/search-model';
import HFModelFile from '../components/model-source/hf-model-file';
import ModelCard from '../components/model-source/model-card';
import SearchModel from '../components/model-source/search-model';
import Separator from '../components/separator';
import TitleWrapper from '../components/title-wrapper';
import { modelSourceMap } from '../config';
+1 -1
View File
@@ -9,9 +9,9 @@ import { Form } from 'antd';
import _ from 'lodash';
import { useMemo } from 'react';
import { modelCategories } from '../config';
import { backendOptionsMap } from '../config/backend-parameters';
import { useFormContext } from '../config/form-context';
import { FormData } from '../config/types';
import { backendOptionsMap } from '../constants/backend-parameters';
import BackendParametersList from './backend-parameters-list';
const AdvanceConfig = () => {
@@ -4,11 +4,11 @@ import { Form } from 'antd';
import _ from 'lodash';
import { useMemo } from 'react';
import { backendParamsHolderTips, getBackendParamsTips } from '../config';
import BackendParameters, {
backendOptionsMap
} from '../config/backend-parameters';
import { useFormContext } from '../config/form-context';
import { FormData } from '../config/types';
import BackendParameters, {
backendOptionsMap
} from '../constants/backend-parameters';
const BackendParametersList: React.FC = () => {
const intl = useIntl();
+1 -1
View File
@@ -7,8 +7,8 @@ import { Form, Select } from 'antd';
import React, { useMemo } from 'react';
import styled from 'styled-components';
import { backendTipsList } from '../config';
import { backendOptionsMap } from '../config/backend-parameters';
import { useFormContext } from '../config/form-context';
import { backendOptionsMap } from '../constants/backend-parameters';
import useCompareEnvs from '../hooks/use-compare-envs';
import EnvsOverridePopover from './envs-override-popover';
+1 -1
View File
@@ -4,9 +4,9 @@ import useAppUtils from '@/hooks/use-app-utils';
import { useIntl } from '@umijs/max';
import { Form } from 'antd';
import React from 'react';
import { backendOptionsMap } from '../config/backend-parameters';
import { useFormContext } from '../config/form-context';
import { FormData } from '../config/types';
import { backendOptionsMap } from '../constants/backend-parameters';
const CustomBackend: React.FC = () => {
const intl = useIntl();
+2 -2
View File
@@ -20,7 +20,6 @@ import {
modelSourceMap,
ScheduleValueMap
} from '../config';
import { backendOptionsMap } from '../config/backend-parameters';
import { FormContext } from '../config/form-context';
import {
BackendOption,
@@ -28,10 +27,11 @@ import {
FormData,
SourceType
} from '../config/types';
import { generateGPUIds } from '../config/utils';
import { backendOptionsMap } from '../constants/backend-parameters';
import { useGenerateGPUOptions } from '../hooks/use-form-initial-values';
import useQueryBackends from '../hooks/use-query-backends';
import { useQueryContextLength } from '../services/use-query-context-length';
import { generateGPUIds } from '../utils';
import AdvanceConfig from './advance-config';
import BasicForm from './basic';
import Performance from './performance';
+1 -1
View File
@@ -4,9 +4,9 @@ import { useIntl } from '@umijs/max';
import { Form } from 'antd';
import _ from 'lodash';
import { useMemo, useRef } from 'react';
import { backendOptionsMap } from '../config/backend-parameters';
import { useFormContext } from '../config/form-context';
import { FormData } from '../config/types';
import { backendOptionsMap } from '../constants/backend-parameters';
const KVCacheForm = () => {
const intl = useIntl();
@@ -6,9 +6,9 @@ import { Form } from 'antd';
import _ from 'lodash';
import React, { useRef } from 'react';
import { DeployFormKeyMap, localPathTipsList, modelSourceMap } from '../config';
import { backendOptionsMap } from '../config/backend-parameters';
import { useFormContext } from '../config/form-context';
import { FormData } from '../config/types';
import { backendOptionsMap } from '../constants/backend-parameters';
import useCheckBackend from '../hooks/use-check-backend';
const LocalPathForm: React.FC = () => {
+1 -1
View File
@@ -15,9 +15,9 @@ import {
scheduleList,
ScheduleValueMap
} from '../config';
import { backendOptionsMap } from '../config/backend-parameters';
import { useFormContext } from '../config/form-context';
import { FormData } from '../config/types';
import { backendOptionsMap } from '../constants/backend-parameters';
const InputWrapper = styled.div`
padding: 8px 4px;
@@ -8,9 +8,9 @@ import { useIntl } from '@umijs/max';
import { Form } from 'antd';
import _ from 'lodash';
import { useMemo, useRef } from 'react';
import { backendOptionsMap } from '../config/backend-parameters';
import { useFormContext } from '../config/form-context';
import { FormData } from '../config/types';
import { backendOptionsMap } from '../constants/backend-parameters';
import useQueryDraftModels from '../hooks/use-query-draftModels';
const AlgorithmMap = {
+3 -3
View File
@@ -9,12 +9,12 @@ import _ from 'lodash';
import { useEffect, useRef, useState } from 'react';
import { evaluationsModelSpec } from '../apis';
import { modelSourceMap, modelTaskMap } from '../config';
import { EvaluateResult, FormData } from '../config/types';
import {
backendOptionsMap,
BuiltInBackendOptions
} from '../config/backend-parameters';
import { EvaluateResult, FormData } from '../config/types';
import { generateGPUIds } from '../config/utils';
} from '../constants/backend-parameters';
import { generateGPUIds } from '../utils';
import useCheckBackend from './use-check-backend';
import useRecognizeAudio from './use-recognize-audio';
@@ -1,5 +1,5 @@
import _ from 'lodash';
import { backendOptionsMap } from '../config/backend-parameters';
import { backendOptionsMap } from '../constants/backend-parameters';
export default function useCheckBackend() {
// handle for ascend npu only
@@ -8,8 +8,8 @@ import { useAtom } from 'jotai';
import _ from 'lodash';
import { useState } from 'react';
import { queryBackendList } from '../apis';
import { backendOptionsMap } from '../config/backend-parameters';
import { BackendOption } from '../config/types';
import { backendOptionsMap } from '../constants/backend-parameters';
interface BackendGroup {
label: string;
@@ -1,6 +1,6 @@
import _ from 'lodash';
import { backendOptionsMap } from '../config/backend-parameters';
import { FormData } from './types';
import { FormData } from '../config/types';
import { backendOptionsMap } from '../constants/backend-parameters';
// generate the gpu_selector field for form initial values, when eidting a model
export const generateGPUSelector = (data: any, gpuOptions: any[]) => {
@@ -10,14 +10,14 @@ import useTableFetch from '@/hooks/use-table-fetch';
import NoResult from '@/pages/_components/no-result';
import PageBox from '@/pages/_components/page-box';
import { createModel } from '@/pages/llmodels/apis';
import DeployModal from '@/pages/llmodels/components/deploy-modal';
import DeployModal from '@/pages/llmodels/components/deployment/deploy-modal';
import { modelSourceMap } from '@/pages/llmodels/config';
import { backendOptionsMap } from '@/pages/llmodels/config/backend-parameters';
import {
modalConfig,
onLineSourceOptions
} from '@/pages/llmodels/config/button-actions';
import { SourceType } from '@/pages/llmodels/config/types';
import { backendOptionsMap } from '@/pages/llmodels/constants/backend-parameters';
import DownloadModal from '@/pages/llmodels/download';
import useCheckBackend from '@/pages/llmodels/hooks/use-check-backend';
import { useGenerateWorkerOptions } from '@/pages/llmodels/hooks/use-form-initial-values';