fix: custom backend version suffix

This commit is contained in:
jialin
2025-10-30 19:08:45 +08:00
parent b733b3615d
commit d7ef64746c
19 changed files with 98 additions and 89 deletions
+20 -2
View File
@@ -53,6 +53,20 @@ const AddModal: React.FC<AddModalProps> = (props) => {
const [yamlContent, setYamlContent] = useState<string>('');
const [formContent, setFormContent] = useState<FormData>({} as FormData);
const genertateCurrentData = (values: ListItem): ListItem => {
const data = { ...values };
data.version_configs = Object.entries(data.version_configs || {}).reduce(
(acc, [key, value]) => {
const version = key.replace(/-custom$/, '');
acc[version] = { ...value };
return acc;
},
{} as any
);
return data;
};
const onOk = () => {
if (activeKey === 'yaml') {
const content = editorRef.current?.getContent();
@@ -90,9 +104,12 @@ const AddModal: React.FC<AddModalProps> = (props) => {
};
useEffect(() => {
const iniFormContent = (values: any) => {
const iniFormContent = (data: ListItem) => {
const values: any = genertateCurrentData(data);
// custom versions
const versionConfigs = Object.keys(values.version_configs || {}).map(
(key) => ({
(key: string) => ({
version_no: key,
image_name: values.version_configs?.[key]?.image_name,
run_command: values.version_configs?.[key]?.run_command,
@@ -101,6 +118,7 @@ const AddModal: React.FC<AddModalProps> = (props) => {
})
);
// built-in versions
const builtInVersions = Object.keys(
values.built_in_version_configs || {}
).map((key) => ({
+10 -10
View File
@@ -101,17 +101,17 @@ const ImportYAML: React.FC<ImportYAMLProps> = forwardRef(
const getContent = () => {
try {
const content = editorRef.current?.getValue();
if (actionStatus.isBuiltIn) {
const jsonData = yaml2Json(content);
const exsistingVersions = Object.keys(jsonData.version_configs || {});
const invalidVersion = exsistingVersions.find(
(v) => !v.endsWith('-custom')
);
if (invalidVersion) {
setError(intl.formatMessage({ id: 'backend.version.no.tips' }));
return false;
}
const jsonData = yaml2Json(content);
const exsistingVersions = Object.keys(jsonData.version_configs || {});
const invalidVersion = exsistingVersions.find(
(v) => !v.endsWith('-custom')
);
if (invalidVersion) {
setError(intl.formatMessage({ id: 'backend.version.no.tips' }));
return false;
}
return content;
} catch (error) {
return false;
+4 -4
View File
@@ -150,13 +150,13 @@ default_version: v0.5.1
health_check_path: /v1/models
default_backend_param:
- --host
default_run_command: myBackend serve {{model}} --port {{port}}
default_run_command: myBackend serve {{model_path}} --port {{port}}
version_configs:
v0.0.1:
v0.0.1-custom:
image_name: lm/mybackend:latest
run_command: myBackend serve {{model}} --port {{port}}
run_command: myBackend serve {{model_path}} --port {{port}}
custom_framework: cuda
v0.0.2:
v0.0.2-custom:
image_name: lm/mybackend:test
run_command:
custom_framework:
+4 -1
View File
@@ -53,9 +53,12 @@ const BasicForm: React.FC<AddModalProps> = ({ action }) => {
<SealTextArea
scaleSize={true}
alwaysFocus={true}
description={intl.formatMessage({
id: 'backend.form.defaultExecuteCommand.tips'
})}
placeholder={intl.formatMessage(
{ id: 'common.help.eg' },
{ content: 'vllm serve {{model}} --port {{port}}' }
{ content: 'vllm serve {{model_path}} --port {{port}}' }
)}
autoSize={{ minRows: 2, maxRows: 4 }}
label={intl.formatMessage({
+16 -1
View File
@@ -33,6 +33,21 @@ const BackendForm: React.FC<AddModalProps> = forwardRef(
}
};
const handleOnFinish = (values: FormData) => {
const data = { ...values };
data.version_configs = data.version_configs?.map((item) => {
if (item.version_no) {
return {
...item,
version_no: `${item.version_no}-custom`
};
}
return item;
});
onFinish(data);
};
useEffect(() => {
if (currentData) {
form.setFieldsValue(currentData);
@@ -61,7 +76,7 @@ const BackendForm: React.FC<AddModalProps> = forwardRef(
<Form
name="basicForm"
form={form}
onFinish={onFinish}
onFinish={handleOnFinish}
preserve={false}
scrollToFirstError={true}
initialValues={_.omit(currentData, ['version_configs'])}
+3 -19
View File
@@ -14,11 +14,9 @@ import { ListItem } from '../config/types';
// version must be endwith '-custom'
const pattern = /-custom$/;
const Box = styled.div`
display: grid;
grid-template-columns: 180px 1fr;
grid-template-columns: 200px 1fr;
gap: 16px;
`;
@@ -280,26 +278,12 @@ const VersionsForm: React.FC<AddModalProps> = ({
{
required: true,
message: getRuleMessage(`input`, 'backend.version')
},
currentData?.is_built_in
? {
pattern: pattern,
message: intl.formatMessage({
id: 'backend.version.rules.builtin'
})
}
: {}
}
]}
>
<SealInput.Input
trim
description={
currentData?.is_built_in
? intl.formatMessage({
id: 'backend.version.no.tips'
})
: ''
}
addAfter="-custom"
onChange={handleVersionChange}
label={intl.formatMessage({ id: 'backend.version' })}
required