> Discover all available pages from the documentation index: https://mastra.zisheng.pro/zh-HK/llms.txt # MDocument MDocument 類別會為 RAG 應用程式處理文件。主要方法是 `.chunk()` 及 `.extractMetadata()`。 ## 建構函式 **docs** (`Array<{ text: string, metadata?: Record }>`): 包含文字內容及可選 metadata 的文件分塊陣列 **type** (`'text' | 'html' | 'markdown' | 'json' | 'latex'`): 文件內容的類型 ## 靜態方法 ### `fromText()` 從純文字內容建立文件。 ```typescript static fromText(text: string, metadata?: Record): MDocument ``` ### `fromHTML()` 從 HTML 內容建立文件。 ```typescript static fromHTML(html: string, metadata?: Record): MDocument ``` ### `fromMarkdown()` 從 Markdown 內容建立文件。 ```typescript static fromMarkdown(markdown: string, metadata?: Record): MDocument ``` ### `fromJSON()` 從 JSON 內容建立文件。 ```typescript static fromJSON(json: string, metadata?: Record): MDocument ``` ## 實例方法 ### `chunk()` 將文件分割成多個分塊,並可選擇擷取 metadata。 ```typescript async chunk(params?: ChunkParams): Promise ``` 詳細選項請參閱 [chunk() 參考](https://mastra.zisheng.pro/zh-HK/reference/rag/chunk)。 ### `getDocs()` 傳回已處理的文件分塊陣列。 ```typescript getDocs(): Chunk[] ``` ### `getText()` 傳回分塊中的文字字串陣列。 ```typescript getText(): string[] ``` ### `getMetadata()` 傳回分塊中的 metadata 物件陣列。 ```typescript getMetadata(): Record[] ``` ### `extractMetadata()` 使用指定的擷取器擷取 metadata。詳情請參閱 [ExtractParams 參考](https://mastra.zisheng.pro/zh-HK/reference/rag/extract-params)。 ```typescript async extractMetadata(params: ExtractParams): Promise ``` ## 範例 ```typescript 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() ```