> Discover all available pages from the documentation index: https://mastra.zisheng.pro/zh-TW/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 詳細資訊 Chunker 會建立為具備下列屬性的 Mastra Tool: - **Tool ID**:`Document Chunker {strategy} {size}` - **描述**:`Chunks document using {strategy} strategy with size {size} and {overlap} overlap` - **輸入 schema**:空物件(不需要額外輸入) - **輸出 schema**:包含 chunks 陣列的物件 ## 相關內容 - [MDocument](https://mastra.zisheng.pro/zh-TW/reference/rag/document) - [createVectorQueryTool](https://mastra.zisheng.pro/zh-TW/reference/tools/vector-query-tool)