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
@@ -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;