### What problem does this PR solve? Feat: remove useSetLlmSetting from GenerateForm #3591 ### Type of change - [x] Bug Fix (non-breaking change which fixes an issue)tags/v0.14.0
| updateDate: 'Update Date', | updateDate: 'Update Date', | ||||
| role: 'Role', | role: 'Role', | ||||
| invite: 'Invite', | invite: 'Invite', | ||||
| agree: 'Agree', | |||||
| refuse: 'Refuse', | |||||
| agree: 'Accept', | |||||
| refuse: 'Decline', | |||||
| teamMembers: 'Team Members', | teamMembers: 'Team Members', | ||||
| joinedTeams: 'Joined Teams', | joinedTeams: 'Joined Teams', | ||||
| }, | }, |
| import MessageHistoryWindowSizeItem from '@/components/message-history-window-size-item'; | import MessageHistoryWindowSizeItem from '@/components/message-history-window-size-item'; | ||||
| import { useTranslate } from '@/hooks/common-hooks'; | import { useTranslate } from '@/hooks/common-hooks'; | ||||
| import { Form } from 'antd'; | import { Form } from 'antd'; | ||||
| import { useSetLlmSetting } from '../../hooks'; | |||||
| import { IOperatorForm } from '../../interface'; | import { IOperatorForm } from '../../interface'; | ||||
| import DynamicInputVariable from '../components/dynamic-input-variable'; | import DynamicInputVariable from '../components/dynamic-input-variable'; | ||||
| import DynamicCategorize from './dynamic-categorize'; | import DynamicCategorize from './dynamic-categorize'; | ||||
| nodeId: node?.id, | nodeId: node?.id, | ||||
| onValuesChange, | onValuesChange, | ||||
| }); | }); | ||||
| useSetLlmSetting(form); | |||||
| return ( | return ( | ||||
| <Form | <Form |
| import MessageHistoryWindowSizeItem from '@/components/message-history-window-size-item'; | import MessageHistoryWindowSizeItem from '@/components/message-history-window-size-item'; | ||||
| import { useTranslate } from '@/hooks/common-hooks'; | import { useTranslate } from '@/hooks/common-hooks'; | ||||
| import { Form, Input, Switch } from 'antd'; | import { Form, Input, Switch } from 'antd'; | ||||
| import { useSetLlmSetting } from '../../hooks'; | |||||
| import { IOperatorForm } from '../../interface'; | import { IOperatorForm } from '../../interface'; | ||||
| import DynamicParameters from './dynamic-parameters'; | import DynamicParameters from './dynamic-parameters'; | ||||
| const GenerateForm = ({ onValuesChange, form, node }: IOperatorForm) => { | const GenerateForm = ({ onValuesChange, form, node }: IOperatorForm) => { | ||||
| const { t } = useTranslate('flow'); | const { t } = useTranslate('flow'); | ||||
| useSetLlmSetting(form); | |||||
| return ( | return ( | ||||
| <Form | <Form | ||||
| name="basic" | name="basic" |
| import Editor from '@monaco-editor/react'; | import Editor from '@monaco-editor/react'; | ||||
| import { Form, Input, InputNumber, Select, Space, Switch } from 'antd'; | import { Form, Input, InputNumber, Select, Space, Switch } from 'antd'; | ||||
| import { useTranslation } from 'react-i18next'; | import { useTranslation } from 'react-i18next'; | ||||
| import { useSetLlmSetting } from '../../hooks'; | |||||
| import { IOperatorForm } from '../../interface'; | import { IOperatorForm } from '../../interface'; | ||||
| import DynamicVariablesForm from './dynamic-variables'; | import DynamicVariablesForm from './dynamic-variables'; | ||||
| const InvokeForm = ({ onValuesChange, form, node }: IOperatorForm) => { | const InvokeForm = ({ onValuesChange, form, node }: IOperatorForm) => { | ||||
| const { t } = useTranslation(); | const { t } = useTranslation(); | ||||
| useSetLlmSetting(form); | |||||
| return ( | return ( | ||||
| <> | <> | ||||
| <Form | <Form |
| import TopNItem from '@/components/top-n-item'; | import TopNItem from '@/components/top-n-item'; | ||||
| import { useTranslate } from '@/hooks/common-hooks'; | import { useTranslate } from '@/hooks/common-hooks'; | ||||
| import { Form } from 'antd'; | import { Form } from 'antd'; | ||||
| import { useSetLlmSetting } from '../../hooks'; | |||||
| import { IOperatorForm } from '../../interface'; | import { IOperatorForm } from '../../interface'; | ||||
| import DynamicInputVariable from '../components/dynamic-input-variable'; | import DynamicInputVariable from '../components/dynamic-input-variable'; | ||||
| const KeywordExtractForm = ({ onValuesChange, form, node }: IOperatorForm) => { | const KeywordExtractForm = ({ onValuesChange, form, node }: IOperatorForm) => { | ||||
| const { t } = useTranslate('flow'); | const { t } = useTranslate('flow'); | ||||
| useSetLlmSetting(form); | |||||
| return ( | return ( | ||||
| <Form | <Form | ||||
| name="basic" | name="basic" |
| import { Form, Select } from 'antd'; | import { Form, Select } from 'antd'; | ||||
| import { Operator } from '../../constant'; | import { Operator } from '../../constant'; | ||||
| import { useBuildFormSelectOptions } from '../../form-hooks'; | import { useBuildFormSelectOptions } from '../../form-hooks'; | ||||
| import { useSetLlmSetting } from '../../hooks'; | |||||
| import { IOperatorForm } from '../../interface'; | import { IOperatorForm } from '../../interface'; | ||||
| import { useWatchConnectionChanges } from './hooks'; | import { useWatchConnectionChanges } from './hooks'; | ||||
| const RelevantForm = ({ onValuesChange, form, node }: IOperatorForm) => { | const RelevantForm = ({ onValuesChange, form, node }: IOperatorForm) => { | ||||
| const { t } = useTranslate('flow'); | const { t } = useTranslate('flow'); | ||||
| useSetLlmSetting(form); | |||||
| const buildRelevantOptions = useBuildFormSelectOptions( | const buildRelevantOptions = useBuildFormSelectOptions( | ||||
| Operator.Relevant, | Operator.Relevant, | ||||
| node?.id, | node?.id, |
| import LLMSelect from '@/components/llm-select'; | import LLMSelect from '@/components/llm-select'; | ||||
| import { useTranslate } from '@/hooks/common-hooks'; | import { useTranslate } from '@/hooks/common-hooks'; | ||||
| import { Form, InputNumber } from 'antd'; | import { Form, InputNumber } from 'antd'; | ||||
| import { useSetLlmSetting } from '../../hooks'; | |||||
| import { IOperatorForm } from '../../interface'; | import { IOperatorForm } from '../../interface'; | ||||
| const RewriteQuestionForm = ({ onValuesChange, form }: IOperatorForm) => { | const RewriteQuestionForm = ({ onValuesChange, form }: IOperatorForm) => { | ||||
| const { t } = useTranslate('chat'); | const { t } = useTranslate('chat'); | ||||
| useSetLlmSetting(form); | |||||
| return ( | return ( | ||||
| <Form | <Form |
| import { DefaultOptionType } from 'antd/es/select'; | import { DefaultOptionType } from 'antd/es/select'; | ||||
| import dayjs from 'dayjs'; | import dayjs from 'dayjs'; | ||||
| import { humanId } from 'human-id'; | import { humanId } from 'human-id'; | ||||
| import { get, lowerFirst } from 'lodash'; | |||||
| import { get, isEmpty, lowerFirst, pick } from 'lodash'; | |||||
| import trim from 'lodash/trim'; | import trim from 'lodash/trim'; | ||||
| import { useTranslation } from 'react-i18next'; | import { useTranslation } from 'react-i18next'; | ||||
| import { useParams } from 'umi'; | import { useParams } from 'umi'; | ||||
| return useIsFetching({ queryKey: ['flowDetail'] }) > 0; | return useIsFetching({ queryKey: ['flowDetail'] }) > 0; | ||||
| }; | }; | ||||
| export const useSetLlmSetting = (form?: FormInstance) => { | |||||
| const initialLlmSetting = undefined; | |||||
| export const useSetLlmSetting = ( | |||||
| form?: FormInstance, | |||||
| formData?: Record<string, any>, | |||||
| ) => { | |||||
| const initialLlmSetting = pick( | |||||
| formData, | |||||
| Object.values(variableEnabledFieldMap), | |||||
| ); | |||||
| useEffect(() => { | useEffect(() => { | ||||
| const switchBoxValues = Object.keys(variableEnabledFieldMap).reduce< | const switchBoxValues = Object.keys(variableEnabledFieldMap).reduce< | ||||
| Record<string, boolean> | Record<string, boolean> | ||||
| >((pre, field) => { | >((pre, field) => { | ||||
| pre[field] = | |||||
| initialLlmSetting === undefined | |||||
| ? true | |||||
| : !!initialLlmSetting[ | |||||
| variableEnabledFieldMap[ | |||||
| field as keyof typeof variableEnabledFieldMap | |||||
| ] as keyof Variable | |||||
| ]; | |||||
| pre[field] = isEmpty(initialLlmSetting) | |||||
| ? true | |||||
| : !!initialLlmSetting[ | |||||
| variableEnabledFieldMap[ | |||||
| field as keyof typeof variableEnabledFieldMap | |||||
| ] as keyof Variable | |||||
| ]; | |||||
| return pre; | return pre; | ||||
| }, {}); | }, {}); | ||||
| const otherValues = settledModelVariableMap[ModelVariableType.Precise]; | |||||
| let otherValues = settledModelVariableMap[ModelVariableType.Precise]; | |||||
| if (!isEmpty(initialLlmSetting)) { | |||||
| otherValues = initialLlmSetting; | |||||
| } | |||||
| form?.setFieldsValue({ | form?.setFieldsValue({ | ||||
| ...switchBoxValues, | ...switchBoxValues, | ||||
| ...otherValues, | ...otherValues, |