mirror of
https://github.com/infiniflow/ragflow.git
synced 2025-12-08 20:42:30 +08:00
feat: fetch knowledge detail on KnowledgeUploadFile mount and add category column to chunk table and set initial value for the model field of chat setting (#104)
* feat: set initial value for the model field of chat setting * feat: add category column to chunk table * feat: fetch knowledge detail on KnowledgeUploadFile mount
This commit is contained in:
@ -1,6 +1,6 @@
|
||||
import showDeleteConfirm from '@/components/deleting-confirm';
|
||||
import { KnowledgeSearchParams } from '@/constants/knowledge';
|
||||
import { IKnowledge, ITenantInfo } from '@/interfaces/database/knowledge';
|
||||
import { IKnowledge } from '@/interfaces/database/knowledge';
|
||||
import { useCallback, useEffect, useMemo } from 'react';
|
||||
import { useDispatch, useSearchParams, useSelector } from 'umi';
|
||||
|
||||
@ -11,6 +11,17 @@ export const useKnowledgeBaseId = (): string => {
|
||||
return knowledgeBaseId || '';
|
||||
};
|
||||
|
||||
export const useGetKnowledgeSearchParams = () => {
|
||||
const [currentQueryParameters] = useSearchParams();
|
||||
|
||||
return {
|
||||
documentId:
|
||||
currentQueryParameters.get(KnowledgeSearchParams.DocumentId) || '',
|
||||
knowledgeId:
|
||||
currentQueryParameters.get(KnowledgeSearchParams.KnowledgeId) || '',
|
||||
};
|
||||
};
|
||||
|
||||
export const useDeleteDocumentById = (): {
|
||||
removeDocument: (documentId: string) => Promise<number>;
|
||||
} => {
|
||||
@ -36,12 +47,37 @@ export const useDeleteDocumentById = (): {
|
||||
};
|
||||
};
|
||||
|
||||
export const useGetDocumentDefaultParser = (knowledgeBaseId: string) => {
|
||||
const data: IKnowledge[] = useSelector(
|
||||
(state: any) => state.knowledgeModel.data,
|
||||
export const useFetchKnowledgeDetail = () => {
|
||||
const dispatch = useDispatch();
|
||||
const { knowledgeId } = useGetKnowledgeSearchParams();
|
||||
|
||||
const fetchKnowledgeDetail = useCallback(
|
||||
(knowledgeId: string) => {
|
||||
dispatch({
|
||||
type: 'knowledgeModel/getKnowledgeDetail',
|
||||
payload: { kb_id: knowledgeId },
|
||||
});
|
||||
},
|
||||
[dispatch],
|
||||
);
|
||||
|
||||
const item = data.find((x) => x.id === knowledgeBaseId);
|
||||
useEffect(() => {
|
||||
fetchKnowledgeDetail(knowledgeId);
|
||||
}, [fetchKnowledgeDetail, knowledgeId]);
|
||||
|
||||
return fetchKnowledgeDetail;
|
||||
};
|
||||
|
||||
export const useSelectKnowledgeDetail = () => {
|
||||
const knowledge: IKnowledge = useSelector(
|
||||
(state: any) => state.knowledgeModel.knowledge,
|
||||
);
|
||||
|
||||
return knowledge;
|
||||
};
|
||||
|
||||
export const useGetDocumentDefaultParser = () => {
|
||||
const item = useSelectKnowledgeDetail();
|
||||
|
||||
return {
|
||||
defaultParserId: item?.parser_id ?? '',
|
||||
@ -79,35 +115,6 @@ export const useDeleteChunkByIds = (): {
|
||||
};
|
||||
};
|
||||
|
||||
export const useSelectParserList = (): Array<{
|
||||
value: string;
|
||||
label: string;
|
||||
}> => {
|
||||
const tenantIfo: Nullable<ITenantInfo> = useSelector(
|
||||
(state: any) => state.settingModel.tenantIfo,
|
||||
);
|
||||
|
||||
const parserList = useMemo(() => {
|
||||
const parserArray: Array<string> = tenantIfo?.parser_ids.split(',') ?? [];
|
||||
return parserArray.map((x) => {
|
||||
const arr = x.split(':');
|
||||
return { value: arr[0], label: arr[1] };
|
||||
});
|
||||
}, [tenantIfo]);
|
||||
|
||||
return parserList;
|
||||
};
|
||||
|
||||
export const useFetchParserList = () => {
|
||||
const dispatch = useDispatch();
|
||||
|
||||
useEffect(() => {
|
||||
dispatch({
|
||||
type: 'settingModel/getTenantInfo',
|
||||
});
|
||||
}, [dispatch]);
|
||||
};
|
||||
|
||||
export const useFetchKnowledgeBaseConfiguration = () => {
|
||||
const dispatch = useDispatch();
|
||||
const knowledgeBaseId = useKnowledgeBaseId();
|
||||
@ -182,14 +189,3 @@ export const useFetchFileThumbnails = (docIds?: Array<string>) => {
|
||||
|
||||
return { fileThumbnails, fetchFileThumbnails };
|
||||
};
|
||||
|
||||
export const useGetKnowledgeSearchParams = () => {
|
||||
const [currentQueryParameters] = useSearchParams();
|
||||
|
||||
return {
|
||||
documentId:
|
||||
currentQueryParameters.get(KnowledgeSearchParams.DocumentId) || '',
|
||||
knowledgeId:
|
||||
currentQueryParameters.get(KnowledgeSearchParams.KnowledgeId) || '',
|
||||
};
|
||||
};
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
import { ITenantInfo } from '@/interfaces/database/knowledge';
|
||||
import { IUserInfo } from '@/interfaces/database/userSetting';
|
||||
import { useCallback, useEffect } from 'react';
|
||||
import { useCallback, useEffect, useMemo } from 'react';
|
||||
import { useDispatch, useSelector } from 'umi';
|
||||
|
||||
export const useFetchUserInfo = () => {
|
||||
@ -20,3 +21,46 @@ export const useSelectUserInfo = () => {
|
||||
|
||||
return userInfo;
|
||||
};
|
||||
|
||||
export const useSelectTenantInfo = () => {
|
||||
const tenantInfo: ITenantInfo = useSelector(
|
||||
(state: any) => state.settingModel.tenantIfo,
|
||||
);
|
||||
|
||||
return tenantInfo;
|
||||
};
|
||||
|
||||
export const useFetchTenantInfo = (isOnMountFetching: boolean = true) => {
|
||||
const dispatch = useDispatch();
|
||||
|
||||
const fetchTenantInfo = useCallback(() => {
|
||||
dispatch({
|
||||
type: 'settingModel/getTenantInfo',
|
||||
});
|
||||
}, [dispatch]);
|
||||
|
||||
useEffect(() => {
|
||||
if (isOnMountFetching) {
|
||||
fetchTenantInfo();
|
||||
}
|
||||
}, [fetchTenantInfo, isOnMountFetching]);
|
||||
|
||||
return fetchTenantInfo;
|
||||
};
|
||||
|
||||
export const useSelectParserList = (): Array<{
|
||||
value: string;
|
||||
label: string;
|
||||
}> => {
|
||||
const tenantInfo: ITenantInfo = useSelectTenantInfo();
|
||||
|
||||
const parserList = useMemo(() => {
|
||||
const parserArray: Array<string> = tenantInfo?.parser_ids.split(',') ?? [];
|
||||
return parserArray.map((x) => {
|
||||
const arr = x.split(':');
|
||||
return { value: arr[0], label: arr[1] };
|
||||
});
|
||||
}, [tenantInfo]);
|
||||
|
||||
return parserList;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user