跳至主要內容

MDocument

MDocument 類別會為 RAG 應用程式處理文件。主要方法是 .chunk().extractMetadata()

建構函式
建構函式 的直接連結

docs:

Array<{ text: string, metadata?: Record<string, any> }>
包含文字內容及可選 metadata 的文件分塊陣列

type:

'text' | 'html' | 'markdown' | 'json' | 'latex'
文件內容的類型

靜態方法
靜態方法 的直接連結

fromText()
fromtext 的直接連結

從純文字內容建立文件。

static fromText(text: string, metadata?: Record<string, any>): MDocument

fromHTML()
fromhtml 的直接連結

從 HTML 內容建立文件。

static fromHTML(html: string, metadata?: Record<string, any>): MDocument

fromMarkdown()
frommarkdown 的直接連結

從 Markdown 內容建立文件。

static fromMarkdown(markdown: string, metadata?: Record<string, any>): MDocument

fromJSON()
fromjson 的直接連結

從 JSON 內容建立文件。

static fromJSON(json: string, metadata?: Record<string, any>): MDocument

實例方法
實例方法 的直接連結

chunk()
chunk 的直接連結

將文件分割成多個分塊,並可選擇擷取 metadata。

async chunk(params?: ChunkParams): Promise<Chunk[]>

詳細選項請參閱 chunk() 參考

getDocs()
getdocs 的直接連結

傳回已處理的文件分塊陣列。

getDocs(): Chunk[]

getText()
gettext 的直接連結

傳回分塊中的文字字串陣列。

getText(): string[]

getMetadata()
getmetadata 的直接連結

傳回分塊中的 metadata 物件陣列。

getMetadata(): Record<string, any>[]

extractMetadata()
extractmetadata 的直接連結

使用指定的擷取器擷取 metadata。詳情請參閱 ExtractParams 參考

async extractMetadata(params: ExtractParams): Promise<MDocument>

範例
範例 的直接連結

import { MDocument } from '@mastra/rag'

// Create document from text
const doc = MDocument.fromText('Your content here')

// Split into chunks with metadata extraction
const chunks = await doc.chunk({
strategy: 'markdown',
headers: [
['#', 'title'],
['##', 'section'],
],
extract: {
summary: true, // Extract summaries with default settings
keywords: true, // Extract keywords with default settings
},
})

// Get processed chunks
const docs = doc.getDocs()
const texts = doc.getText()
const metadata = doc.getMetadata()