> Discover all available pages from the documentation index: https://mastra.zisheng.pro/llms.txt # createDocumentChunkerTool() `createDocumentChunkerTool()` 函数会创建一个 Tool,用于将文档拆分为更小的分块,以便高效处理和检索。它支持不同的分块策略和可配置参数。 ## 基本用法 ```typescript 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`): 分块配置参数 (Default: `默认分块参数`) ### `ChunkParams` **strategy** (`'recursive'`): 要使用的分块策略 (Default: `'recursive'`) **size** (`number`): 每个分块的目标大小,以 token/字符为单位 (Default: `512`) **overlap** (`number`): 分块之间重叠的 token/字符数量 (Default: `50`) **separator** (`string`): 用作分块分隔符的字符 (Default: `'\n'`) ## 返回值 **chunks** (`DocumentChunk[]`): 包含内容和元数据的文档分块数组 ## 使用自定义参数的示例 ```typescript 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 详情 该分块器会创建为具有以下属性的 Mastra Tool: - **Tool ID**:`Document Chunker {strategy} {size}` - **描述**:`Chunks document using {strategy} strategy with size {size} and {overlap} overlap` - **输入 Schema**:空对象(无需其他输入) - **输出 Schema**:包含分块数组的对象 ## 相关内容 - [MDocument](https://mastra.zisheng.pro/reference/rag/document) - [createVectorQueryTool](https://mastra.zisheng.pro/reference/tools/vector-query-tool)