GraphRAG
GraphRAG クラスは、検索拡張生成にグラフベースのアプローチを実装します。ドキュメントチャンクから、ノードがドキュメント、エッジが意味的な関係を表すナレッジグラフを作成し、直接的な類似度マッチングとグラフ探索による関連コンテンツの発見の両方を実現します。
基本的な使い方基本的な使い方への直接リンク
import { GraphRAG } from '@mastra/rag'
const graphRag = new GraphRAG({
dimension: 1536,
threshold: 0.7,
})
// Create the graph from chunks and embeddings
graphRag.createGraph(documentChunks, embeddings)
// Query the graph with embedding
const results = await graphRag.query({
query: queryEmbedding,
topK: 10,
randomWalkSteps: 100,
restartProb: 0.15,
})
コンストラクターのパラメーターコンストラクターのパラメーターへの直接リンク
dimension?:
number
= 1536
埋め込みベクトルの次元数
threshold?:
number
= 0.7
ノード間にエッジを作成する際の類似度しきい値(0〜1)
メソッドメソッドへの直接リンク
createGraphcreategraphへの直接リンク
ドキュメントチャンクとその埋め込みからナレッジグラフを作成します。
createGraph(chunks: GraphChunk[], embeddings: GraphEmbedding[]): void
パラメーターパラメーターへの直接リンク
chunks:
GraphChunk[]
テキストとメタデータを含むドキュメントチャンクの配列
embeddings:
GraphEmbedding[]
チャンクに対応する埋め込みの配列
queryqueryへの直接リンク
ベクトル類似度とグラフ探索を組み合わせたグラフベースの検索を実行します。
query({
query,
topK = 10,
randomWalkSteps = 100,
restartProb = 0.15
}: {
query: number[];
topK?: number;
randomWalkSteps?: number;
restartProb?: number;
}): RankedNode[]
パラメーターパラメーターへの直接リンク
query:
number[]
クエリの埋め込みベクトル
topK?:
number
= 10
返す結果の数
randomWalkSteps?:
number
= 100
ランダムウォークのステップ数
restartProb?:
number
= 0.15
クエリノードからウォークを再開する確率
戻り値戻り値への直接リンク
RankedNode オブジェクトの配列を返します。各ノードには以下が含まれます。
id:
string
ノードの一意な識別子
content:
string
ドキュメントチャンクのテキストコンテンツ
metadata:
Record<string, any>
チャンクに関連付けられた追加のメタデータ
score:
number
グラフ探索による総合的な関連度スコア
高度な例高度な例への直接リンク
const graphRag = new GraphRAG({
dimension: 1536,
threshold: 0.8, // Stricter similarity threshold
})
// Create graph from chunks and embeddings
graphRag.createGraph(documentChunks, embeddings)
// Query with custom parameters
const results = await graphRag.query({
query: queryEmbedding,
topK: 5,
randomWalkSteps: 200,
restartProb: 0.2,
})