mirror of
https://github.com/infiniflow/ragflow.git
synced 2025-12-08 12:32:30 +08:00
### What problem does this PR solve? https://github.com/infiniflow/ragflow/issues/7753 The internal is due to when the selected row keys change will trigger a testing, but I do not know why. ### Type of change - [x] Bug Fix (non-breaking change which fixes an issue)
110 lines
3.4 KiB
TypeScript
110 lines
3.4 KiB
TypeScript
import Rerank from '@/components/rerank';
|
|
import SimilaritySlider from '@/components/similarity-slider';
|
|
import { useTranslate } from '@/hooks/common-hooks';
|
|
import { useChunkIsTesting } from '@/hooks/knowledge-hooks';
|
|
import { Button, Card, Divider, Flex, Form, Input } from 'antd';
|
|
import { FormInstance } from 'antd/lib';
|
|
import { LabelWordCloud } from './label-word-cloud';
|
|
|
|
import { CrossLanguageItem } from '@/components/cross-language-item';
|
|
import { UseKnowledgeGraphItem } from '@/components/use-knowledge-graph-item';
|
|
import styles from './index.less';
|
|
|
|
type FieldType = {
|
|
similarity_threshold?: number;
|
|
vector_similarity_weight?: number;
|
|
question: string;
|
|
};
|
|
|
|
interface IProps {
|
|
form: FormInstance;
|
|
handleTesting: (documentIds?: string[]) => Promise<any>;
|
|
selectedDocumentIds: string[];
|
|
}
|
|
|
|
const TestingControl = ({
|
|
form,
|
|
handleTesting,
|
|
selectedDocumentIds,
|
|
}: IProps) => {
|
|
const question = Form.useWatch('question', { form, preserve: true });
|
|
const loading = useChunkIsTesting();
|
|
const { t } = useTranslate('knowledgeDetails');
|
|
|
|
const buttonDisabled =
|
|
!question || (typeof question === 'string' && question.trim() === '');
|
|
|
|
const onClick = () => {
|
|
handleTesting(selectedDocumentIds);
|
|
};
|
|
|
|
return (
|
|
<section className={styles.testingControlWrapper}>
|
|
<div>
|
|
<b>{t('testing')}</b>
|
|
</div>
|
|
<p>{t('testingDescription')}</p>
|
|
<Divider></Divider>
|
|
<section>
|
|
<Form name="testing" layout="vertical" form={form}>
|
|
<SimilaritySlider isTooltipShown></SimilaritySlider>
|
|
<Rerank></Rerank>
|
|
<UseKnowledgeGraphItem filedName={['use_kg']}></UseKnowledgeGraphItem>
|
|
<CrossLanguageItem name={'cross_languages'}></CrossLanguageItem>
|
|
<Card size="small" title={t('testText')}>
|
|
<Form.Item<FieldType>
|
|
name={'question'}
|
|
rules={[{ required: true, message: t('testTextPlaceholder') }]}
|
|
>
|
|
<Input.TextArea autoSize={{ minRows: 8 }}></Input.TextArea>
|
|
</Form.Item>
|
|
<Flex justify={'end'}>
|
|
<Button
|
|
type="primary"
|
|
size="small"
|
|
onClick={onClick}
|
|
disabled={buttonDisabled}
|
|
loading={loading}
|
|
>
|
|
{t('testingLabel')}
|
|
</Button>
|
|
</Flex>
|
|
</Card>
|
|
</Form>
|
|
</section>
|
|
<LabelWordCloud></LabelWordCloud>
|
|
{/* <section>
|
|
<div className={styles.historyTitle}>
|
|
<Space size={'middle'}>
|
|
<HistoryOutlined className={styles.historyIcon} />
|
|
<b>Test history</b>
|
|
</Space>
|
|
</div>
|
|
<Space
|
|
direction="vertical"
|
|
size={'middle'}
|
|
className={styles.historyCardWrapper}
|
|
>
|
|
{list.map((x) => (
|
|
<Card className={styles.historyCard} key={x}>
|
|
<Flex justify={'space-between'} gap={'small'}>
|
|
<span>{x}</span>
|
|
<div className={styles.historyText}>
|
|
content dcjsjl snldsh svnodvn svnodrfn svjdoghdtbnhdo
|
|
sdvhodhbuid sldghdrlh
|
|
</div>
|
|
<Flex gap={'small'}>
|
|
<span>time</span>
|
|
<DeleteOutlined></DeleteOutlined>
|
|
</Flex>
|
|
</Flex>
|
|
</Card>
|
|
))}
|
|
</Space>
|
|
</section> */}
|
|
</section>
|
|
);
|
|
};
|
|
|
|
export default TestingControl;
|