import KnowledgeBaseItem from '@/components/knowledge-base-item'; import { TavilyItem } from '@/components/tavily-item'; import { useTranslate } from '@/hooks/common-hooks'; import { useFetchTenantInfo } from '@/hooks/user-setting-hooks'; import { PlusOutlined } from '@ant-design/icons'; import { Form, Input, message, Select, Switch, Upload } from 'antd'; import classNames from 'classnames'; import { useCallback } from 'react'; import { ISegmentedContentProps } from '../interface'; import styles from './index.less'; const emptyResponseField = ['prompt_config', 'empty_response']; const AssistantSetting = ({ show, form, setHasError, }: ISegmentedContentProps) => { const { t } = useTranslate('chat'); const { data } = useFetchTenantInfo(true); const handleChange = useCallback(() => { const kbIds = form.getFieldValue('kb_ids'); const emptyResponse = form.getFieldValue(emptyResponseField); const required = emptyResponse && ((Array.isArray(kbIds) && kbIds.length === 0) || !kbIds); setHasError(required); form.setFields([ { name: emptyResponseField, errors: required ? [t('emptyResponseMessage')] : [], }, ]); }, [form, setHasError, t]); const normFile = (e: any) => { if (Array.isArray(e)) { return e; } return e?.fileList; }; const handleTtsChange = useCallback( (checked: boolean) => { if (checked && !data.tts_id) { message.error(`Please set TTS model firstly. Setting >> Model providers >> System model settings`); form.setFieldValue(['prompt_config', 'tts'], false); } }, [data, form], ); const uploadButton = ( ); return (
false} showUploadList={{ showPreviewIcon: false, showRemoveIcon: false }} > {show ? uploadButton : null}
); }; export default AssistantSetting;