跳到主要内容

createDocumentChunkerTool()

createDocumentChunkerTool() 函数会创建一个 Tool,用于将文档拆分为更小的分块,以便高效处理和检索。它支持不同的分块策略和可配置参数。

基本用法
基本用法的直接链接

import { createDocumentChunkerTool, MDocument } from '@mastra/rag'

const document = new MDocument({
text: 'Your document content here...',
metadata: { source: 'user-manual' },
})

const chunker = createDocumentChunkerTool({
doc: document,
params: {
strategy: 'recursive',
size: 512,
overlap: 50,
separator: '\n',
},
})

const { chunks } = await chunker.execute()

参数
参数的直接链接

doc:

MDocument
要分块的文档

params?:

ChunkParams
= 默认分块参数
分块配置参数

ChunkParams
chunkparams的直接链接

strategy?:

'recursive'
= 'recursive'
要使用的分块策略

size?:

number
= 512
每个分块的目标大小,以 token/字符为单位

overlap?:

number
= 50
分块之间重叠的 token/字符数量

separator?:

string
= '\n'
用作分块分隔符的字符

返回值
返回值的直接链接

chunks:

DocumentChunk[]
包含内容和元数据的文档分块数组

使用自定义参数的示例
使用自定义参数的示例的直接链接

const technicalDoc = new MDocument({
text: longDocumentContent,
metadata: {
type: 'technical',
version: '1.0',
},
})

const chunker = createDocumentChunkerTool({
doc: technicalDoc,
params: {
strategy: 'recursive',
size: 1024, // Larger chunks
overlap: 100, // More overlap
separator: '\n\n', // Split on double newlines
},
})

const { chunks } = await chunker.execute()

// Process the chunks
chunks.forEach((chunk, index) => {
console.log(`Chunk ${index + 1} length: ${chunk.content.length}`)
})

Tool 详情
Tool 详情的直接链接

该分块器会创建为具有以下属性的 Mastra Tool:

  • Tool IDDocument Chunker {strategy} {size}
  • 描述Chunks document using {strategy} strategy with size {size} and {overlap} overlap
  • 输入 Schema:空对象(无需其他输入)
  • 输出 Schema:包含分块数组的对象