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
= 預設分塊參數
分塊的設定參數
ChunkParamschunkparams 的直接連結
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 ID:
Document Chunker {strategy} {size} - 描述:
Chunks document using {strategy} strategy with size {size} and {overlap} overlap - 輸入結構:空白物件(毋須額外輸入)
- 輸出結構:包含區塊陣列的物件