- import { PlusOutlined } from '@ant-design/icons';
- import { Form, Input, message, Select, Switch, Upload } from 'antd';
- import classNames from 'classnames';
- import { ISegmentedContentProps } from '../interface';
-
- import KnowledgeBaseItem from '@/components/knowledge-base-item';
- import { useTranslate } from '@/hooks/common-hooks';
- import { useFetchTenantInfo } from '@/hooks/user-setting-hooks';
- import { useCallback } from 'react';
- import styles from './index.less';
-
- const AssistantSetting = ({ show, form }: ISegmentedContentProps) => {
- const { t } = useTranslate('chat');
- const { data } = useFetchTenantInfo();
-
- 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 uploadButtion = (
- <button style={{ border: 0, background: 'none' }} type="button">
- <PlusOutlined />
- <div style={{ marginTop: 8 }}>{t('upload', { keyPrefix: 'common' })}</div>
- </button>
- );
-
- return (
- <section
- className={classNames({
- [styles.segmentedHidden]: !show,
- })}
- >
- <Form.Item
- name={'name'}
- label={t('assistantName')}
- rules={[{ required: true, message: t('assistantNameMessage') }]}
- >
- <Input placeholder={t('namePlaceholder')} />
- </Form.Item>
- <Form.Item name={'description'} label={t('description')}>
- <Input placeholder={t('descriptionPlaceholder')} />
- </Form.Item>
- <Form.Item
- name="icon"
- label={t('assistantAvatar')}
- valuePropName="fileList"
- getValueFromEvent={normFile}
- >
- <Upload
- listType="picture-card"
- maxCount={1}
- beforeUpload={() => false}
- showUploadList={{ showPreviewIcon: false, showRemoveIcon: false }}
- >
- {show ? uploadButtion : null}
- </Upload>
- </Form.Item>
- <Form.Item
- name={'language'}
- label={t('language')}
- initialValue={'English'}
- tooltip="coming soon"
- style={{ display: 'none' }}
- >
- <Select
- options={[
- { value: 'Chinese', label: t('chinese', { keyPrefix: 'common' }) },
- { value: 'English', label: t('english', { keyPrefix: 'common' }) },
- ]}
- />
- </Form.Item>
- <Form.Item
- name={['prompt_config', 'empty_response']}
- label={t('emptyResponse')}
- tooltip={t('emptyResponseTip')}
- >
- <Input placeholder="" />
- </Form.Item>
- <Form.Item
- name={['prompt_config', 'prologue']}
- label={t('setAnOpener')}
- tooltip={t('setAnOpenerTip')}
- initialValue={t('setAnOpenerInitial')}
- >
- <Input.TextArea autoSize={{ minRows: 5 }} />
- </Form.Item>
- <Form.Item
- label={t('quote')}
- valuePropName="checked"
- name={['prompt_config', 'quote']}
- tooltip={t('quoteTip')}
- initialValue={true}
- >
- <Switch />
- </Form.Item>
- <Form.Item
- label={t('keyword')}
- valuePropName="checked"
- name={['prompt_config', 'keyword']}
- tooltip={t('keywordTip')}
- initialValue={false}
- >
- <Switch />
- </Form.Item>
- {/* <Form.Item
- label={t('selfRag')}
- valuePropName="checked"
- name={['prompt_config', 'self_rag']}
- tooltip={t('selfRagTip')}
- initialValue={false}
- >
- <Switch />
- </Form.Item> */}
- <Form.Item
- label={t('tts')}
- valuePropName="checked"
- name={['prompt_config', 'tts']}
- tooltip={t('ttsTip')}
- initialValue={false}
- >
- <Switch onChange={handleTtsChange} />
- </Form.Item>
- <KnowledgeBaseItem></KnowledgeBaseItem>
- </section>
- );
- };
-
- export default AssistantSetting;
|