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;