メタデータ抽出
この例では、Mastra のドキュメント処理機能を使用して、ドキュメントからメタデータを抽出し利用する方法を示します。 抽出されたメタデータは、ドキュメントの整理、フィルタリング、および RAG システムでの強化された検索に使用できます。
概要
このシステムは、2つの方法でメタデータ抽出を示します:
- ドキュメントからの直接メタデータ抽出
- メタデータ抽出を伴うチャンク化
セットアップ
依存関係
必要な依存関係をインポートします:
src/index.ts
import { MDocument } from '@mastra/rag';
ドキュメント作成
テキストコンテンツからドキュメントを作成します:
src/index.ts
const doc = MDocument.fromText(`Title: The Benefits of Regular Exercise
Regular exercise has numerous health benefits. It improves cardiovascular health,
strengthens muscles, and boosts mental wellbeing.
Key Benefits:
• Reduces stress and anxiety
• Improves sleep quality
• Helps maintain healthy weight
• Increases energy levels
For optimal results, experts recommend at least 150 minutes of moderate exercise
per week.`);
1. 直接メタデータ抽出
ドキュメントから直接メタデータを抽出します:
src/index.ts
// メタデータ抽出オプションを設定
await doc.extractMetadata({
keywords: true, // 重要なキーワードを抽出
summary: true, // 簡潔な要約を生成
});
// 抽出されたメタデータを取得
const meta = doc.getMetadata();
console.log('抽出されたメタデータ:', meta);
// 出力例:
// 抽出されたメタデータ: {
// keywords: [
// '運動',
// '健康の利点',
// '心血管の健康',
// '精神的健康',
// 'ストレス軽減',
// '睡眠の質'
// ],
// summary: '定期的な運動は、心血管の健康、筋力、精神的健康を含む複数の健康上の利点を提供します。主な利点には、ストレス軽減、睡眠の改善、体重管理、エネルギーの増加が含まれます。推奨される運動時間は週に150分です。'
// }
2. メタデータを用いたチャンク化
ドキュメントのチャンク化とメタデータ抽出を組み合わせる:
src/index.ts
// メタデータ抽出を伴うチャンク化を設定
await doc.chunk({
strategy: 'recursive', // 再帰的チャンク化戦略を使用
size: 200, // 最大チャンクサイズ
extract: {
keywords: true, // チャンクごとにキーワードを抽出
summary: true, // チャンクごとに要約を生成
},
});
// チャンクからメタデータを取得
const metaTwo = doc.getMetadata();
console.log('チャンクメタデータ:', metaTwo);
// 出力例:
// チャンクメタデータ: {
// keywords: [
// '運動',
// '健康の利点',
// '心血管の健康',
// '精神的健康',
// 'ストレス軽減',
// '睡眠の質'
// ],
// summary: '定期的な運動は、心血管の健康、筋力、精神的健康を含む複数の健康上の利点を提供します。主な利点には、ストレス軽減、睡眠の改善、体重管理、エネルギーの増加が含まれます。推奨される運動時間は週に150分です。'
// }
GitHubで例を見る