import IconFont from '@/components/icon-font'; import SealInput from '@/components/seal-form/seal-input'; import SealSelect from '@/components/seal-form/seal-select'; import SealTextArea from '@/components/seal-form/seal-textarea'; import TooltipList from '@/components/tooltip-list'; import useAppUtils from '@/hooks/use-app-utils'; import { useIntl } from '@umijs/max'; import { Form, Typography } from 'antd'; import React, { useMemo } from 'react'; import { backendLabelMap, backendTipsList, getBackendParamsTips } from '../config'; import { backendOptionsMap } from '../config/backend-parameters'; import { useFormContext } from '../config/form-context'; import { FormData } from '../config/types'; const BackendFields: React.FC = () => { const intl = useIntl(); const { getRuleMessage } = useAppUtils(); const form = Form.useFormInstance(); const { isGGUF, formKey, pageAction: action, source, gpuOptions, onValuesChange, backendOptions, onBackendChange } = useFormContext(); const backend = Form.useWatch('backend', form); const handleBackendVersionOnBlur = () => { onValuesChange?.({}, form.getFieldsValue()); }; const backendParamsTips = useMemo(() => { return getBackendParamsTips(backend); }, [backend]); const backendVersions = useMemo(() => { if (!backend || backend === backendOptionsMap.custom) { return []; } return ( backendOptions.find((item) => item.value === backend)?.versions || [] ); }, [backend, backendOptions]); return ( <> } options={backendOptions} > {backendOptionsMap.custom !== backend && ( {intl.formatMessage({ id: 'models.form.releases' })} ) } )} > )} {backend === backendOptionsMap.custom && ( <> name="image_name" rules={[ { required: true, message: getRuleMessage('input', 'backend.imageName') } ]} > name="run_command" rules={[ { required: true, message: getRuleMessage('input', 'backend.runCommand') } ]} > )} ); }; export default BackendFields;