import { ReactComponent as SelectedFilesCollapseIcon } from '@/assets/svg/selected-files-collapse.svg'; import Image from '@/components/image'; import { useTranslate } from '@/hooks/commonHooks'; import { ITestingChunk } from '@/interfaces/database/knowledge'; import { Card, Collapse, Flex, Pagination, PaginationProps, Popover, Space, } from 'antd'; import camelCase from 'lodash/camelCase'; import { useDispatch, useSelector } from 'umi'; import { TestingModelState } from '../model'; import SelectFiles from './select-files'; import styles from './index.less'; const similarityList: Array<{ field: keyof ITestingChunk; label: string }> = [ { field: 'similarity', label: 'Hybrid Similarity' }, { field: 'term_similarity', label: 'Term Similarity' }, { field: 'vector_similarity', label: 'Vector Similarity' }, ]; const ChunkTitle = ({ item }: { item: ITestingChunk }) => { const { t } = useTranslate('knowledgeDetails'); return ( {similarityList.map((x) => ( {((item[x.field] as number) * 100).toFixed(2)} {t(camelCase(x.field))} ))} ); }; interface IProps { handleTesting: () => Promise; } const TestingResult = ({ handleTesting }: IProps) => { const { documents, chunks, total, pagination, selectedDocumentIds, }: TestingModelState = useSelector((state: any) => state.testingModel); const dispatch = useDispatch(); const { t } = useTranslate('knowledgeDetails'); const onChange: PaginationProps['onChange'] = (pageNumber, pageSize) => { console.log('Page: ', pageNumber, pageSize); dispatch({ type: 'testingModel/setPagination', payload: { current: pageNumber, pageSize }, }); handleTesting(); }; return (
( )} className={styles.selectFilesCollapse} items={[ { key: '1', label: ( {selectedDocumentIds?.length ?? 0}/{documents.length} {t('filesSelected')} {t('hits')} {t('view')} ), children: (
), }, ]} /> {chunks.map((x) => ( }> {x.img_id && ( } > )}
{x.content_with_weight}
))}
); }; export default TestingResult;