fix: summary index in parent child chunk

This commit is contained in:
zxhlyh
2026-01-16 10:49:38 +08:00
parent f02adc26e5
commit fde8efa4a2
7 changed files with 18 additions and 11 deletions

View File

@ -357,7 +357,9 @@ const Form = () => {
</div>
)}
{
indexMethod === IndexingType.QUALIFIED && (
indexMethod === IndexingType.QUALIFIED
&& [ChunkingMode.text, ChunkingMode.parentChild].includes(currentDataset?.doc_form as ChunkingMode)
&& (
<>
<Divider
type="horizontal"

View File

@ -63,7 +63,7 @@ const ChunkCard = (props: ChunkCardProps) => {
const summaryElement = useMemo(() => {
if (chunkType === ChunkingMode.parentChild) {
return (content as ParentChildChunk).parent_content.summary
return (content as ParentChildChunk).parent_summary
}
if (chunkType === ChunkingMode.text) {
return (content as GeneralChunk).summary

View File

@ -22,7 +22,7 @@ const createGeneralChunks = (overrides: GeneralChunks = []): GeneralChunks => {
const createParentChildChunk = (overrides: Partial<ParentChildChunk> = {}): ParentChildChunk => ({
child_contents: ['Child content 1', 'Child content 2'],
parent_content: { content: 'This is the parent content that contains the children.' },
parent_content: 'This is the parent content that contains the children.',
parent_mode: 'paragraph',
...overrides,
})
@ -32,7 +32,7 @@ const createParentChildChunks = (overrides: Partial<ParentChildChunks> = {}): Pa
createParentChildChunk(),
createParentChildChunk({
child_contents: ['Another child 1', 'Another child 2', 'Another child 3'],
parent_content: { content: 'Another parent content here.' },
parent_content: 'Another parent content here.',
}),
],
parent_mode: 'paragraph',
@ -706,7 +706,7 @@ describe('ChunkCardList', () => {
const chunks = createParentChildChunks({
parent_child_chunks: [
createParentChildChunk({
parent_content: { content: 'Parent' }, // 6 characters
parent_content: 'Parent', // 6 characters
child_contents: ['Child'],
}),
],
@ -1047,7 +1047,7 @@ describe('ChunkCardList Integration', () => {
const parentChildChunks = createParentChildChunks({
parent_child_chunks: [
{
parent_content: { content: 'Main section about React components and their lifecycle.' },
parent_content: 'Main section about React components and their lifecycle.',
child_contents: [
'React components are building blocks.',
'Lifecycle methods control component behavior.',

View File

@ -25,7 +25,7 @@ export const ChunkCardList = (props: ChunkCardListProps) => {
const getWordCount = (seg: GeneralChunk | ParentChildChunk | QAChunk) => {
if (chunkType === ChunkingMode.parentChild)
return (seg as ParentChildChunk).parent_content.content?.length
return (seg as ParentChildChunk).parent_content?.length
if (chunkType === ChunkingMode.text)
return (seg as GeneralChunk).content.length
return (seg as QAChunk).question.length + (seg as QAChunk).answer.length

View File

@ -5,7 +5,8 @@ export type GeneralChunk = {
export type GeneralChunks = GeneralChunk[]
export type ParentChildChunk = {
child_contents: string[]
parent_content: GeneralChunk
parent_content: string
parent_summary?: string
parent_mode: string
}

View File

@ -1,4 +1,4 @@
import type { ChunkInfo, GeneralChunk, GeneralChunks, ParentChildChunks, QAChunks } from '../../../../chunk-card-list/types'
import type { ChunkInfo, GeneralChunks, ParentChildChunks, QAChunks } from '../../../../chunk-card-list/types'
import type { ParentMode } from '@/models/datasets'
import { RAG_PIPELINE_PREVIEW_CHUNK_NUM } from '@/config'
import { ChunkingMode } from '@/models/datasets'
@ -22,8 +22,9 @@ const formatGeneralChunks = (outputs: any) => {
}
type ParentChildChunkPreview = {
content: GeneralChunk
content: string
child_chunks: string[]
summary?: string
}
const formatParentChildChunks = (outputs: any, parentMode: ParentMode) => {
@ -36,6 +37,7 @@ const formatParentChildChunks = (outputs: any, parentMode: ParentMode) => {
chunks.slice(0, RAG_PIPELINE_PREVIEW_CHUNK_NUM).forEach((chunk) => {
chunkInfo.parent_child_chunks?.push({
parent_content: chunk.content,
parent_summary: chunk.summary,
child_contents: chunk.child_chunks,
parent_mode: parentMode,
})

View File

@ -170,7 +170,9 @@ const Panel: FC<NodePanelProps<KnowledgeBaseNodeType>> = ({
<Split className="h-[1px]" />
</div>
{
data.indexing_technique === IndexMethodEnum.QUALIFIED && (
data.indexing_technique === IndexMethodEnum.QUALIFIED
&& [ChunkStructureEnum.general, ChunkStructureEnum.parent_child].includes(data.chunk_structure)
&& (
<>
<SummaryIndexSetting
summaryIndexSetting={data.summary_index_setting}