跳到主要内容

MDocument

MDocument 类为 RAG 应用处理文档。主要方法是 .chunk().extractMetadata()

构造函数
构造函数的直接链接

docs:

Array<{ text: string, metadata?: Record<string, any> }>
包含文本内容及可选元数据的文档块数组

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的直接链接

将文档拆分为块,并可选地提取元数据。

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

详细选项请参阅 chunk() 参考

getDocs()
getdocs的直接链接

返回已处理文档块的数组。

getDocs(): Chunk[]

getText()
gettext的直接链接

返回块中的文本字符串数组。

getText(): string[]

getMetadata()
getmetadata的直接链接

返回元数据对象数组。

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

extractMetadata()
extractmetadata的直接链接

使用指定的提取器提取元数据。详情请参阅 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()