import { FormContainer } from '@/components/form-container'; import { FilterButton } from '@/components/list-filter-bar'; import { FilterPopover } from '@/components/list-filter-bar/filter-popover'; import { FilterCollection } from '@/components/list-filter-bar/interface'; import { RAGFlowPagination } from '@/components/ui/ragflow-pagination'; import { useTranslate } from '@/hooks/common-hooks'; import { useTestRetrieval } from '@/hooks/use-knowledge-request'; import { ITestingChunk } from '@/interfaces/database/knowledge'; import { t } from 'i18next'; import camelCase from 'lodash/camelCase'; import { useMemo } from 'react'; 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))}
))}
); }; type TestingResultProps = Pick< ReturnType, | 'data' | 'filterValue' | 'handleFilterSubmit' | 'page' | 'pageSize' | 'onPaginationChange' >; export function TestingResult({ filterValue, handleFilterSubmit, page, pageSize, onPaginationChange, data, }: TestingResultProps) { const filters: FilterCollection[] = useMemo(() => { return [ { field: 'doc_ids', label: 'File', list: data.doc_aggs?.map((x) => ({ id: x.doc_id, label: x.doc_name, count: x.count, })) ?? [], }, ]; }, [data.doc_aggs]); return (
{t('knowledgeDetails.testResults')}
{data.chunks?.map((x) => (

{x.content_with_weight}

))}
); }