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 { 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 BackendParametersList from './backend-parameters-list'; const AdvanceConfig = () => { const intl = useIntl(); const form = Form.useFormInstance(); const EnviromentVars = Form.useWatch('env', form); const backend = Form.useWatch('backend', form); const { onValuesChange, backendOptions, isGGUF, modelContextData } = useFormContext(); const currentBackendOptions = useMemo(() => { return backendOptions?.find((item) => item.value === backend); }, [backend, backendOptions]); const handleEnviromentVarsChange = (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()); }; const handleContextLengthChange = _.debounce((value: number) => { onValuesChange?.({}, form.getFieldsValue()); }, 300); return ( <> name="categories" data-field="categories" style={{ scrollMarginTop: 200 }} > name="env"> {(backend === backendOptionsMap.custom || !currentBackendOptions?.isBuiltIn) && ( name="cpu_offloading" valuePropName="checked" style={{ marginBottom: 8 }} > )} {backend !== backendOptionsMap.voxBox && ( name="distributed_inference_across_workers" valuePropName="checked" style={{ marginBottom: 8 }} > )} name="restart_on_error" valuePropName="checked" style={{ marginBottom: 8 }} > name="generic_proxy" valuePropName="checked" style={{ marginBottom: 8 }} > ); }; export default AdvanceConfig;