diff --git a/web/src/interfaces/database/knowledge.ts b/web/src/interfaces/database/knowledge.ts index 5c460389a..502c63c1b 100644 --- a/web/src/interfaces/database/knowledge.ts +++ b/web/src/interfaces/database/knowledge.ts @@ -67,6 +67,7 @@ export interface ParserConfig { tag_kb_ids?: string[]; topn_tags?: number; graphrag?: { use_graphrag?: boolean }; + enable_metadata?: boolean; } export interface IKnowledgeFileParserConfig { diff --git a/web/src/pages/dataset/components/metedata/hooks/use-manage-modal.ts b/web/src/pages/dataset/components/metedata/hooks/use-manage-modal.ts index 5993e5562..c9d54b1a5 100644 --- a/web/src/pages/dataset/components/metedata/hooks/use-manage-modal.ts +++ b/web/src/pages/dataset/components/metedata/hooks/use-manage-modal.ts @@ -389,6 +389,7 @@ export const useManageMetaDataModal = ( const { data: res } = await kbService.kbUpdateMetaData({ kb_id: id, metadata: data, + enable_metadata: true, }); if (res.code === 0) { message.success(t('message.operated')); diff --git a/web/src/pages/dataset/contexts/knowledge-base-context.tsx b/web/src/pages/dataset/contexts/knowledge-base-context.tsx new file mode 100644 index 000000000..09fff048d --- /dev/null +++ b/web/src/pages/dataset/contexts/knowledge-base-context.tsx @@ -0,0 +1,34 @@ +import { IKnowledge } from '@/interfaces/database/knowledge'; +import React, { createContext, ReactNode, useContext } from 'react'; + +interface KnowledgeBaseContextType { + knowledgeBase: IKnowledge | null; + loading: boolean; +} + +const KnowledgeBaseContext = createContext< + KnowledgeBaseContextType | undefined +>(undefined); + +export const KnowledgeBaseProvider: React.FC<{ + children: ReactNode; + knowledgeBase: IKnowledge | null; + loading: boolean; +}> = ({ children, knowledgeBase, loading }) => { + return ( + + {children} + + ); +}; + +// eslint-disable-next-line react-refresh/only-export-components +export const useKnowledgeBaseContext = (): KnowledgeBaseContextType => { + const context = useContext(KnowledgeBaseContext); + if (context === undefined) { + throw new Error( + 'useKnowledgeBaseContext must be used within a KnowledgeBaseProvider', + ); + } + return context; +}; diff --git a/web/src/pages/dataset/dataset-setting/configuration/common-item.tsx b/web/src/pages/dataset/dataset-setting/configuration/common-item.tsx index 8a8d6e1a8..39fef6c45 100644 --- a/web/src/pages/dataset/dataset-setting/configuration/common-item.tsx +++ b/web/src/pages/dataset/dataset-setting/configuration/common-item.tsx @@ -431,6 +431,7 @@ export function AutoMetadata({ const handleSaveMetadata = (data?: IMetaDataReturnJSONSettings) => { form.setValue('parser_config.metadata', data || []); + form.setValue('parser_config.enable_metadata', true); }; return ( <> diff --git a/web/src/pages/dataset/dataset/index.tsx b/web/src/pages/dataset/dataset/index.tsx index 1bebdcdad..e023d1696 100644 --- a/web/src/pages/dataset/dataset/index.tsx +++ b/web/src/pages/dataset/dataset/index.tsx @@ -21,6 +21,7 @@ import { useManageMetadata, } from '../components/metedata/hooks/use-manage-modal'; import { ManageMetadataModal } from '../components/metedata/manage-modal'; +import { useKnowledgeBaseContext } from '../contexts/knowledge-base-context'; import { DatasetTable } from './dataset-table'; import Generate from './generate-button/generate'; import { ReparseDialog } from './reparse-dialog'; @@ -38,7 +39,7 @@ export default function Dataset() { onDocumentUploadOk, documentUploadLoading, } = useHandleUploadDocument(); - + const { knowledgeBase } = useKnowledgeBaseContext(); const { searchString, documents, @@ -221,8 +222,11 @@ export default function Dataset() { )} {reparseDialogVisible && (