fix: pick backend_parameter, env, backend_version from spec in catalog
This commit is contained in:
@@ -28,6 +28,16 @@ const LineChart: React.FC<ChartProps> = (props) => {
|
||||
yAxis
|
||||
} = useChartConfig();
|
||||
|
||||
const axisLabelFormatter = (value: string, index: number) => {
|
||||
if (labelFormatter) {
|
||||
return labelFormatter(value, index);
|
||||
}
|
||||
if (index === xAxisData.length - 1) {
|
||||
return '';
|
||||
}
|
||||
return value;
|
||||
};
|
||||
|
||||
const options = {
|
||||
title: {
|
||||
text: ''
|
||||
@@ -45,7 +55,7 @@ const LineChart: React.FC<ChartProps> = (props) => {
|
||||
...xAxis,
|
||||
axisLabel: {
|
||||
...xAxis.axisLabel,
|
||||
formatter: labelFormatter
|
||||
formatter: axisLabelFormatter
|
||||
}
|
||||
},
|
||||
yAxis,
|
||||
|
||||
@@ -45,6 +45,7 @@ const MixLineBarChart: React.FC<
|
||||
},
|
||||
grid: {
|
||||
...grid,
|
||||
right: 0,
|
||||
top: 20,
|
||||
bottom: 10
|
||||
},
|
||||
|
||||
@@ -4,7 +4,7 @@ export interface ChartProps {
|
||||
showEmpty?: boolean;
|
||||
xAxisData: string[];
|
||||
legendData?: LegendComponentOption['data'];
|
||||
labelFormatter?: (val?: any) => string;
|
||||
labelFormatter?: (val?: any, index?: number) => string;
|
||||
tooltipValueFormatter?: (val: any) => string;
|
||||
height: string | number;
|
||||
width?: string | number;
|
||||
|
||||
@@ -41,6 +41,7 @@ const UtilizationOvertime: React.FC = () => {
|
||||
const tooltipValueFormatter = (value: any) => {
|
||||
return !value ? value : `${value}%`;
|
||||
};
|
||||
|
||||
const generateData = useMemo(() => {
|
||||
const legendData: string[] = [];
|
||||
const xAxisData: string[] = [];
|
||||
|
||||
@@ -21,7 +21,6 @@ import { FormData, SourceType } from '../config/types';
|
||||
import CatalogFrom from '../forms/catalog';
|
||||
import HuggingFaceForm from '../forms/hugging-face';
|
||||
import LocalPathForm from '../forms/local-path';
|
||||
import OllamaForm from '../forms/ollama_library';
|
||||
import AdvanceConfig from './advance-config';
|
||||
|
||||
interface DataFormProps {
|
||||
@@ -253,7 +252,6 @@ const DataForm: React.FC<DataFormProps> = forwardRef((props, ref) => {
|
||||
}}
|
||||
>
|
||||
<HuggingFaceForm></HuggingFaceForm>
|
||||
<OllamaForm></OllamaForm>
|
||||
<LocalPathForm></LocalPathForm>
|
||||
</FormInnerContext.Provider>
|
||||
<Form.Item name="backend" rules={[{ required: true }]}>
|
||||
|
||||
@@ -25,6 +25,8 @@ import ColumnWrapper from './column-wrapper';
|
||||
import CompatibilityAlert from './compatible-alert';
|
||||
import DataForm from './data-form';
|
||||
|
||||
const pickFieldsFromSpec = ['backend_version', 'backend_parameters', 'env'];
|
||||
|
||||
type AddModalProps = {
|
||||
title: string;
|
||||
action: PageActionType;
|
||||
@@ -202,7 +204,7 @@ const AddModal: React.FC<AddModalProps> = (props) => {
|
||||
});
|
||||
selectSpecRef.current = spec;
|
||||
return {
|
||||
..._.omit(spec, ['name']),
|
||||
..._.pick(spec, pickFieldsFromSpec),
|
||||
categories: _.get(current, 'categories.0', null)
|
||||
};
|
||||
};
|
||||
|
||||
@@ -33,13 +33,9 @@ import SearchModel from './search-model';
|
||||
import Separator from './separator';
|
||||
import TitleWrapper from './title-wrapper';
|
||||
|
||||
const resetFieldsByModel = [
|
||||
'cpu_offloading',
|
||||
'distributed_inference_across_workers',
|
||||
'backend_version',
|
||||
'backend_parameters',
|
||||
'env'
|
||||
];
|
||||
const resetFieldsByModel = ['backend_version', 'backend_parameters', 'env'];
|
||||
const pickFieldsFromSpec = ['backend_version', 'backend_parameters', 'env'];
|
||||
const dropFieldsFromForm = ['name', 'file_name', 'repo_id', 'backend'];
|
||||
|
||||
const resetFieldsByFile = [
|
||||
'cpu_offloading',
|
||||
@@ -187,11 +183,10 @@ const AddModal: FC<AddModalProps> = (props) => {
|
||||
};
|
||||
|
||||
const getDefaultSpec = (item: any) => {
|
||||
const defaultSpec = _.get(item.evaluateResult?.default_spec, [
|
||||
'backend_version',
|
||||
'backend_parameters',
|
||||
'env'
|
||||
]);
|
||||
const defaultSpec = _.pick(
|
||||
item.evaluateResult?.default_spec,
|
||||
pickFieldsFromSpec
|
||||
);
|
||||
|
||||
return defaultSpec;
|
||||
};
|
||||
@@ -205,7 +200,7 @@ const AddModal: FC<AddModalProps> = (props) => {
|
||||
};
|
||||
|
||||
const { run: onSelectFile } = useDeferredRequest(
|
||||
async (item: any, modelInfo: any) => {
|
||||
async (item: any, modelInfo: any, manual?: boolean) => {
|
||||
unlockWarningStatus();
|
||||
|
||||
const evaluateRes = await handleOnValuesChangeBefore?.({
|
||||
@@ -227,29 +222,34 @@ const AddModal: FC<AddModalProps> = (props) => {
|
||||
/**
|
||||
* do not reset backend_parameters when select a model file
|
||||
*/
|
||||
const formBackendParameters =
|
||||
form.current?.getFieldValue?.('backend_parameters') || [];
|
||||
const formValues = form.current?.getFieldsValue?.(pickFieldsFromSpec);
|
||||
|
||||
form.current?.setFieldsValue?.({
|
||||
...defaultSpec,
|
||||
..._.omit(modelInfo, ['name']),
|
||||
file_name: item.fakeName,
|
||||
backend_parameters:
|
||||
formBackendParameters.length > 0
|
||||
? formBackendParameters
|
||||
formValues.backend_parameters?.length > 0
|
||||
? formValues.backend_parameters
|
||||
: defaultSpec.backend_parameters || [],
|
||||
backend_version:
|
||||
formValues.backend_version || defaultSpec.backend_version,
|
||||
env: formValues.env || defaultSpec.env,
|
||||
categories: getCategory(item)
|
||||
});
|
||||
},
|
||||
100
|
||||
);
|
||||
|
||||
const handleSelectModelFile = async (item: any, requestModelId: number) => {
|
||||
const handleSelectModelFile = async (
|
||||
item: any,
|
||||
options: { requestModelId: number; manual?: boolean }
|
||||
) => {
|
||||
const { requestModelId, manual } = options || {};
|
||||
if (requestModelId !== getRequestId()) {
|
||||
return;
|
||||
}
|
||||
console.log('handleSelectModelFile:', item, selectedModel);
|
||||
form.current?.form?.resetFields(resetFieldsByFile);
|
||||
|
||||
const modelInfo = onSelectModel(selectedModel, props.source);
|
||||
|
||||
form.current?.setFieldsValue?.({
|
||||
@@ -260,7 +260,7 @@ const AddModal: FC<AddModalProps> = (props) => {
|
||||
|
||||
// evaluate the form data when select a model file
|
||||
if (item.fakeName) {
|
||||
onSelectFile(item, modelInfo);
|
||||
onSelectFile(item, modelInfo, manual);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -304,6 +304,10 @@ const AddModal: FC<AddModalProps> = (props) => {
|
||||
const modelInfo = onSelectModel(item, props.source);
|
||||
form.current?.setFieldsValue?.({
|
||||
...modelInfo,
|
||||
..._.omit(form.current?.form?.getFieldsValue?.(), [
|
||||
...dropFieldsFromForm,
|
||||
...pickFieldsFromSpec
|
||||
]),
|
||||
categories: getCategory(item)
|
||||
});
|
||||
|
||||
@@ -332,13 +336,6 @@ const AddModal: FC<AddModalProps> = (props) => {
|
||||
};
|
||||
|
||||
const handleOnSelectModelAfterEvaluate = (item: any, manual?: boolean) => {
|
||||
console.log(
|
||||
'handleOnSelectModelAfterEvaluate:',
|
||||
item.name,
|
||||
currentSelectedModel.current.name,
|
||||
warningStatus.type,
|
||||
currentModelDuringEvaluate(item)
|
||||
);
|
||||
if (currentModelDuringEvaluate(item)) {
|
||||
return;
|
||||
}
|
||||
@@ -357,11 +354,23 @@ const AddModal: FC<AddModalProps> = (props) => {
|
||||
item.evaluated
|
||||
) {
|
||||
handleShowCompatibleAlert(item.evaluateResult);
|
||||
form.current?.setFieldsValue?.({
|
||||
const newFormValues = {
|
||||
...getDefaultSpec(item),
|
||||
...modelInfo,
|
||||
..._.omit(form.current?.form?.getFieldsValue?.(), [
|
||||
...dropFieldsFromForm,
|
||||
...pickFieldsFromSpec
|
||||
]),
|
||||
name: generateNameValue(item, modelInfo.name, manual),
|
||||
categories: getCategory(item)
|
||||
};
|
||||
|
||||
form.current?.setFieldsValue?.(newFormValues);
|
||||
|
||||
handleOnValuesChangeBefore({
|
||||
changedValues: {},
|
||||
allValues: newFormValues,
|
||||
source: props.source
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
@@ -42,7 +42,10 @@ interface HFModelFileProps {
|
||||
modelSource: string;
|
||||
ref: any;
|
||||
gpuOptions?: any[];
|
||||
onSelectFile?: (file: any, flagId: number) => void;
|
||||
onSelectFile?: (
|
||||
file: any,
|
||||
options: { requestModelId: number; manual?: boolean }
|
||||
) => void;
|
||||
updateEvaluteState: (state: 'model' | 'form' | 'file') => number;
|
||||
onSelectFileAfterEvaluate?: (file: any) => void;
|
||||
}
|
||||
@@ -85,8 +88,11 @@ const HFModelFile: React.FC<HFModelFileProps> = forwardRef((props, ref) => {
|
||||
const timer = useRef<any>(null);
|
||||
const parentRequestModelId = useRef<number>(0);
|
||||
|
||||
const handleSelectModelFile = (item: any) => {
|
||||
props.onSelectFile?.(item, parentRequestModelId.current);
|
||||
const handleSelectModelFile = (item: any, manual?: boolean) => {
|
||||
props.onSelectFile?.(item, {
|
||||
requestModelId: parentRequestModelId.current,
|
||||
manual: manual
|
||||
});
|
||||
setCurrent(item.path);
|
||||
currentPathRef.current = item.path;
|
||||
};
|
||||
@@ -397,7 +403,9 @@ const HFModelFile: React.FC<HFModelFileProps> = forwardRef((props, ref) => {
|
||||
data={item}
|
||||
isEvaluating={isEvaluating}
|
||||
active={item.path === current}
|
||||
handleSelectModelFile={handleSelectModelFile}
|
||||
handleSelectModelFile={(data) =>
|
||||
handleSelectModelFile(data, true)
|
||||
}
|
||||
></ModelFileItem>
|
||||
);
|
||||
})}
|
||||
|
||||
@@ -142,10 +142,10 @@ const SearchModel: React.FC<SearchInputProps> = (props) => {
|
||||
|
||||
const handleOnSelectModel = (model: any, manual?: boolean) => {
|
||||
const item = model || {};
|
||||
if (item.evaluated && !item.isGGUF) {
|
||||
onSelectModelAfterEvaluate(item, manual);
|
||||
} else {
|
||||
if (!item.evaluated || item.isGGUF) {
|
||||
onSelectModel(item, manual);
|
||||
} else {
|
||||
onSelectModelAfterEvaluate(item, manual);
|
||||
}
|
||||
setCurrent(item.id);
|
||||
currentRef.current = item.id;
|
||||
|
||||
Reference in New Issue
Block a user