createGraphRAGTool()
createGraphRAGTool()
は、ドキュメント間のセマンティックな関係のグラフを構築することでRAGを強化するツールを作成します。これは、GraphRAG
システムを内部で使用して、グラフベースの検索を提供し、直接的な類似性と接続された関係の両方を通じて関連するコンテンツを見つけます。
使用例
import { openai } from "@ai-sdk/openai";
import { createGraphRAGTool } from "@mastra/rag";
const graphTool = createGraphRAGTool({
vectorStoreName: "pinecone",
indexName: "docs",
model: openai.embedding('text-embedding-3-small'),
graphOptions: {
dimension: 1536,
threshold: 0.7,
randomWalkSteps: 100,
restartProb: 0.15
}
});
パラメータ
vectorStoreName:
string
クエリを行うベクトルストアの名前
indexName:
string
ベクトルストア内のインデックスの名前
model:
EmbeddingModel
ベクトル検索に使用する埋め込みモデル
graphOptions?:
GraphOptions
= デフォルトのグラフオプション
グラフベースの検索のための設定
description?:
string
ツールのカスタム説明。デフォルトでは: '知識ベース内の情報間の関係をアクセスして分析し、接続やパターンに関する複雑な質問に答える'
GraphOptions
dimension?:
number
= 1536
埋め込みベクトルの次元
threshold?:
number
= 0.7
ノード間のエッジを作成するための類似性のしきい値 (0-1)
randomWalkSteps?:
number
= 100
グラフトラバーサルのためのランダムウォークのステップ数
restartProb?:
number
= 0.15
クエリノードからランダムウォークを再開する確率
戻り値
このツールは以下のオブジェクトを返します:
relevantContext:
string
グラフベースのランキングを使用して取得された、最も関連性の高いドキュメントチャンクからの結合テキスト
デフォルトツールの説明
デフォルトの説明は以下に焦点を当てています:
- ドキュメント間の関係を分析する
- パターンと接続を見つける
- 複雑なクエリに答える
高度な例
const graphTool = createGraphRAGTool({
vectorStoreName: "pinecone",
indexName: "docs",
model: openai.embedding('text-embedding-3-small'),
graphOptions: {
dimension: 1536,
threshold: 0.8, // より高い類似性のしきい値
randomWalkSteps: 200, // より多くの探索ステップ
restartProb: 0.2 // より高い再開確率
}
});
カスタム説明付きの例
const graphTool = createGraphRAGTool({
vectorStoreName: "pinecone",
indexName: "docs",
model: openai.embedding('text-embedding-3-small'),
description: "Analyze document relationships to find complex patterns and connections in our company's historical data"
});
この例は、関係分析の基本目的を維持しながら、特定の使用ケースに合わせてツールの説明をカスタマイズする方法を示しています。