| import classNames from 'classnames'; | |
| import { useEffect } from 'react'; | |
| import { ISegmentedContentProps } from '../interface'; | |
| import LlmSettingItems from '@/components/llm-setting-items'; | |
| import { variableEnabledFieldMap } from '@/constants/chat'; | |
| import { Variable } from '@/interfaces/database/chat'; | |
| import styles from './index.less'; | |
| const ModelSetting = ({ | |
| show, | |
| form, | |
| initialLlmSetting, | |
| visible, | |
| }: ISegmentedContentProps & { | |
| initialLlmSetting?: Variable; | |
| visible?: boolean; | |
| }) => { | |
| useEffect(() => { | |
| if (visible) { | |
| const values = 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; | |
| }, {}); | |
| form.setFieldsValue(values); | |
| } | |
| }, [form, initialLlmSetting, visible]); | |
| return ( | |
| <section | |
| className={classNames({ | |
| [styles.segmentedHidden]: !show, | |
| })} | |
| > | |
| {visible && <LlmSettingItems prefix="llm_setting"></LlmSettingItems>} | |
| </section> | |
| ); | |
| }; | |
| export default ModelSetting; | |