본문으로 건너뛰기

그래프RAG

그만큼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).

행동 양식
행동 양식에 대한 직접 링크

createGraph
creategraph에 대한 직접 링크

문서 청크와 해당 임베딩으로부터 지식 그래프를 생성합니다.

createGraph(chunks: GraphChunk[], embeddings: GraphEmbedding[]): void

매개변수
매개변수에 대한 직접 링크

chunks:

GraphChunk[]
텍스트와 메타데이터가 포함된 문서 청크 배열입니다.

embeddings:

GraphEmbedding[]
청크에 대응하는 임베딩 배열입니다.

질문
질문에 대한 직접 링크

벡터 유사성과 그래프 순회를 결합한 그래프 기반 검색을 수행합니다.

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,
})