|
import LlmSettingItems from '@/components/llm-setting-items'; |
|
import { variableEnabledFieldMap } from '@/constants/chat'; |
|
import { |
|
ModelVariableType, |
|
settledModelVariableMap, |
|
} from '@/constants/knowledge'; |
|
import { useTranslate } from '@/hooks/commonHooks'; |
|
import { Variable } from '@/interfaces/database/chat'; |
|
import { Form, Input, Switch } from 'antd'; |
|
import { useCallback, useEffect } from 'react'; |
|
import { IOperatorForm } from '../interface'; |
|
|
|
const GenerateForm = ({ onValuesChange, form }: IOperatorForm) => { |
|
const { t } = useTranslate('flow'); |
|
const initialLlmSetting = undefined; |
|
|
|
const handleParametersChange = useCallback( |
|
(value: ModelVariableType) => { |
|
const variable = settledModelVariableMap[value]; |
|
form?.setFieldsValue(variable); |
|
}, |
|
[form], |
|
); |
|
|
|
useEffect(() => { |
|
const switchBoxValues = Object.keys(variableEnabledFieldMap).reduce< |
|
Record<string, boolean> |
|
>((pre, field) => { |
|
pre[field] = |
|
initialLlmSetting === undefined |
|
? true |
|
: !!initialLlmSetting[ |
|
variableEnabledFieldMap[ |
|
field as keyof typeof variableEnabledFieldMap |
|
] as keyof Variable |
|
]; |
|
return pre; |
|
}, {}); |
|
const otherValues = settledModelVariableMap[ModelVariableType.Precise]; |
|
form?.setFieldsValue({ ...switchBoxValues, ...otherValues }); |
|
}, [form, initialLlmSetting]); |
|
|
|
return ( |
|
<Form |
|
name="basic" |
|
labelCol={{ span: 9 }} |
|
wrapperCol={{ span: 15 }} |
|
autoComplete="off" |
|
form={form} |
|
onValuesChange={onValuesChange} |
|
> |
|
<LlmSettingItems |
|
handleParametersChange={handleParametersChange} |
|
></LlmSettingItems> |
|
<Form.Item |
|
name={['prompt']} |
|
label={t('prompt', { keyPrefix: 'knowledgeConfiguration' })} |
|
initialValue={t('promptText', { keyPrefix: 'knowledgeConfiguration' })} |
|
tooltip={t('promptTip', { keyPrefix: 'knowledgeConfiguration' })} |
|
rules={[ |
|
{ |
|
required: true, |
|
message: t('promptMessage'), |
|
}, |
|
]} |
|
> |
|
<Input.TextArea rows={8} /> |
|
</Form.Item> |
|
<Form.Item |
|
name={['cite']} |
|
label={t('cite')} |
|
initialValue={true} |
|
valuePropName="checked" |
|
tooltip={t('citeTip')} |
|
> |
|
<Switch /> |
|
</Form.Item> |
|
</Form> |
|
); |
|
}; |
|
|
|
export default GenerateForm; |
|
|