Feat: Rendering recall test page #3221 (#7689)

### What problem does this PR solve?

Feat: Rendering recall test page #3221
### Type of change


- [x] New Feature (non-breaking change which adds functionality)
This commit is contained in:
balibabu
2025-05-16 18:56:48 +08:00
committed by GitHub
parent d73a08b9eb
commit bfaa469b9a
10 changed files with 199 additions and 134 deletions

View File

@ -10,13 +10,12 @@ import kbService, { listDataset } from '@/services/knowledge-service';
import { useMutation, useQuery, useQueryClient } from '@tanstack/react-query';
import { useDebounce } from 'ahooks';
import { message } from 'antd';
import { useCallback, useMemo, useState } from 'react';
import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
import { useParams } from 'umi';
import {
useGetPaginationWithRouter,
useHandleSearchChange,
} from './logic-hooks';
import { useSetPaginationParams } from './route-hook';
export const enum KnowledgeApiAction {
TestRetrieval = 'testRetrieval',
@ -35,8 +34,17 @@ export const useKnowledgeBaseId = () => {
export const useTestRetrieval = () => {
const knowledgeBaseId = useKnowledgeBaseId();
const { page, size: pageSize } = useSetPaginationParams();
const [values, setValues] = useState<ITestRetrievalRequestBody>();
const mountedRef = useRef(false);
const { filterValue, handleFilterSubmit } = useHandleFilterSubmit();
const [page, setPage] = useState(1);
const [pageSize, setPageSize] = useState(10);
const onPaginationChange = useCallback((page: number, pageSize: number) => {
setPage(page);
setPageSize(pageSize);
}, []);
const queryParams = useMemo(() => {
return {
@ -44,15 +52,16 @@ export const useTestRetrieval = () => {
kb_id: values?.kb_id || knowledgeBaseId,
page,
size: pageSize,
doc_ids: filterValue.doc_ids,
};
}, [knowledgeBaseId, page, pageSize, values]);
}, [filterValue, knowledgeBaseId, page, pageSize, values]);
const {
data,
isFetching: loading,
refetch,
} = useQuery<INextTestingResult>({
queryKey: [KnowledgeApiAction.TestRetrieval, queryParams],
queryKey: [KnowledgeApiAction.TestRetrieval, queryParams, page, pageSize],
initialData: {
chunks: [],
doc_aggs: [],
@ -62,12 +71,27 @@ export const useTestRetrieval = () => {
gcTime: 0,
queryFn: async () => {
const { data } = await kbService.retrieval_test(queryParams);
console.log('🚀 ~ queryFn: ~ data:', data);
return data?.data ?? {};
},
});
return { data, loading, setValues, refetch };
useEffect(() => {
if (mountedRef.current) {
refetch();
}
mountedRef.current = true;
}, [page, pageSize, refetch, filterValue]);
return {
data,
loading,
setValues,
refetch,
onPaginationChange,
page,
pageSize,
handleFilterSubmit,
};
};
export const useFetchNextKnowledgeListByPage = () => {