mirror of
https://github.com/infiniflow/ragflow.git
synced 2025-12-08 20:42:30 +08:00
73 lines
1.8 KiB
TypeScript
73 lines
1.8 KiB
TypeScript
import { BaseState } from '@/interfaces/common';
|
|
import {
|
|
ITestingChunk,
|
|
ITestingDocument,
|
|
} from '@/interfaces/database/knowledge';
|
|
import kbService from '@/services/kbService';
|
|
import { DvaModel } from 'umi';
|
|
|
|
export interface TestingModelState extends Pick<BaseState, 'pagination'> {
|
|
chunks: ITestingChunk[];
|
|
documents: ITestingDocument[];
|
|
total: number;
|
|
selectedDocumentIds: string[] | undefined;
|
|
}
|
|
|
|
const initialState = {
|
|
chunks: [],
|
|
documents: [],
|
|
total: 0,
|
|
pagination: {
|
|
current: 1,
|
|
pageSize: 10,
|
|
},
|
|
selectedDocumentIds: undefined,
|
|
};
|
|
|
|
const model: DvaModel<TestingModelState> = {
|
|
namespace: 'testingModel',
|
|
state: initialState,
|
|
reducers: {
|
|
setChunksAndDocuments(state, { payload }) {
|
|
return {
|
|
...state,
|
|
...payload,
|
|
};
|
|
},
|
|
setPagination(state, { payload }) {
|
|
return { ...state, pagination: { ...state.pagination, ...payload } };
|
|
},
|
|
setSelectedDocumentIds(state, { payload }) {
|
|
return { ...state, selectedDocumentIds: payload };
|
|
},
|
|
reset() {
|
|
return initialState;
|
|
},
|
|
},
|
|
effects: {
|
|
*testDocumentChunk({ payload = {} }, { call, put, select }) {
|
|
const { pagination, selectedDocumentIds }: TestingModelState =
|
|
yield select((state: any) => state.testingModel);
|
|
|
|
const { data } = yield call(kbService.retrieval_test, {
|
|
...payload,
|
|
doc_ids: selectedDocumentIds,
|
|
page: pagination.current,
|
|
size: pagination.pageSize,
|
|
});
|
|
const { retcode, data: res } = data;
|
|
if (retcode === 0) {
|
|
yield put({
|
|
type: 'setChunksAndDocuments',
|
|
payload: {
|
|
chunks: res.chunks,
|
|
documents: res.doc_aggs,
|
|
total: res.total,
|
|
},
|
|
});
|
|
}
|
|
},
|
|
},
|
|
};
|
|
export default model;
|