import LabelSelector from '@/components/label-selector'; import CheckboxField from '@/components/seal-form/checkbox-field'; import SealSelect from '@/components/seal-form/seal-select'; import { useIntl } from '@umijs/max'; import { Form } from 'antd'; import _ from 'lodash'; import { useCallback } from 'react'; import { DeployFormKeyMap, modelCategories, ScheduleValueMap } from '../config'; import { backendOptionsMap } from '../config/backend-parameters'; import { useFormContext } from '../config/form-context'; import { FormData } from '../config/types'; import BackendForm from './backend'; import BackendParametersList from './backend-parameters-list'; import CustomBackend from './custom-backend'; const AdvanceConfig = () => { const intl = useIntl(); const form = Form.useFormInstance(); const EnviromentVars = Form.useWatch('env', form); const scheduleType = Form.useWatch('scheduleType', form); const backend = Form.useWatch('backend', form); const { onValuesChange, formKey } = useFormContext(); const handleEnviromentVarsChange = useCallback( (labels: Record) => { form.setFieldValue('env', labels); }, [] ); const onSelectorChange = (field: string, allowEmpty?: boolean) => { const workerSelector = form.getFieldValue(field); // check if all keys have values const hasEmptyValue = _.some(_.keys(workerSelector), (k: string) => { return !workerSelector[k]; }); if (!hasEmptyValue || allowEmpty) { onValuesChange?.({}, form.getFieldsValue()); } }; const handleEnvSelectorOnBlur = () => { onSelectorChange('env', true); }; const handleDeleteEnvSelector = (index: number) => { onValuesChange?.({}, form.getFieldsValue()); }; return ( <> name="categories" data-field="categories" style={{ scrollMarginTop: 200 }} > {formKey === DeployFormKeyMap.CATALOG && ( <> )} name="env"> {scheduleType === ScheduleValueMap.Auto && [backendOptionsMap.vllm, backendOptionsMap.ascendMindie].includes( backend ) && ( name="distributed_inference_across_workers" valuePropName="checked" style={{ marginBottom: 8 }} > )} name="restart_on_error" valuePropName="checked" style={{ marginBottom: 8 }} > ); }; export default AdvanceConfig;