From 64dd1874985e015e8d5c7ad88f0d7c8858dc755b Mon Sep 17 00:00:00 2001 From: balibabu Date: Tue, 22 Apr 2025 16:00:55 +0800 Subject: [PATCH] Fix: Knowledge Graph Extraction Conflict Between Dataset-Level and File-Specific Configurations #7198 (#7199) ### What problem does this PR solve? Fix: Knowledge Graph Extraction Conflict Between Dataset-Level and File-Specific Configurations #7198 ### Type of change - [x] Bug Fix (non-breaking change which fixes an issue) --- .../components/chunk-method-modal/index.tsx | 30 +++++++++++++++++-- web/src/interfaces/database/knowledge.ts | 1 + 2 files changed, 28 insertions(+), 3 deletions(-) diff --git a/web/src/components/chunk-method-modal/index.tsx b/web/src/components/chunk-method-modal/index.tsx index 586703da8..904aded76 100644 --- a/web/src/components/chunk-method-modal/index.tsx +++ b/web/src/components/chunk-method-modal/index.tsx @@ -21,8 +21,10 @@ import { useFetchParserListOnMount, useShowAutoKeywords } from './hooks'; import { DocumentParserType } from '@/constants/knowledge'; import { useTranslate } from '@/hooks/common-hooks'; +import { useFetchKnowledgeBaseConfiguration } from '@/hooks/knowledge-hooks'; import { IParserConfig } from '@/interfaces/database/document'; import { IChangeParserConfigRequestBody } from '@/interfaces/request/document'; +import { get } from 'lodash'; import { AutoKeywordsItem, AutoQuestionsItem } from '../auto-keywords-item'; import { DatasetConfigurationContainer } from '../dataset-configuration-container'; import Delimiter from '../delimiter'; @@ -78,6 +80,11 @@ const ChunkMethodModal: React.FC = ({ form, ); const { t } = useTranslate('knowledgeDetails'); + const { data: knowledgeDetails } = useFetchKnowledgeBaseConfiguration(); + + const useGraphRag = useMemo(() => { + return knowledgeDetails.parser_config?.graphrag?.use_graphrag; + }, [knowledgeDetails.parser_config?.graphrag?.use_graphrag]); const handleOk = async () => { const values = await form.validateFields(); @@ -124,10 +131,25 @@ const ChunkMethodModal: React.FC = ({ parserConfig?.pages?.map((x) => ({ from: x[0], to: x[1] })) ?? []; form.setFieldsValue({ pages: pages.length > 0 ? pages : [{ from: 1, to: 1024 }], - parser_config: omit(parserConfig, 'pages'), + parser_config: { + ...omit(parserConfig, 'pages'), + graphrag: { + use_graphrag: get( + parserConfig, + 'graphrag.use_graphrag', + useGraphRag, + ), + }, + }, }); } - }, [form, parserConfig, visible]); + }, [ + form, + knowledgeDetails.parser_config, + parserConfig, + useGraphRag, + visible, + ]); return ( = ({ )} - {showGraphRagItems(selectedTag) && } + {showGraphRagItems(selectedTag) && useGraphRag && ( + + )} {showEntityTypes && } diff --git a/web/src/interfaces/database/knowledge.ts b/web/src/interfaces/database/knowledge.ts index 91c736ec5..e0f0b5a58 100644 --- a/web/src/interfaces/database/knowledge.ts +++ b/web/src/interfaces/database/knowledge.ts @@ -48,6 +48,7 @@ export interface ParserConfig { raptor?: Raptor; tag_kb_ids?: string[]; topn_tags?: number; + graphrag?: { use_graphrag?: boolean }; } export interface IKnowledgeFileParserConfig {