| 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; | |