> Discover all available pages from the documentation index: https://mastra.zisheng.pro/fr/llms.txt # GraphRAG La classe `GraphRAG` met en œuvre une approche de la génération augmentée par récupération fondée sur un graphe. Elle crée un graphe de connaissances à partir de segments de documents, dans lequel les nœuds représentent les documents et les arêtes leurs relations sémantiques. Elle permet ainsi à la fois la recherche directe de similarités et la découverte de contenus associés par parcours du graphe. ## Utilisation de base ```typescript 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, }) ``` ## Paramètres du constructeur **dimension** (`number`): Dimension des vecteurs d'embedding (Default: `1536`) **threshold** (`number`): Seuil de similarité pour la création des arêtes entre les nœuds (0-1) (Default: `0.7`) ## Méthodes ### `createGraph` Crée un graphe de connaissances à partir de segments de documents et de leurs embeddings. ```typescript createGraph(chunks: GraphChunk[], embeddings: GraphEmbedding[]): void ``` #### Paramètres **chunks** (`GraphChunk[]`): Tableau de segments de documents contenant du texte et des métadonnées **embeddings** (`GraphEmbedding[]`): Tableau des embeddings correspondant aux segments ### query Effectue une recherche fondée sur un graphe en combinant la similarité vectorielle et le parcours du graphe. ```typescript query({ query, topK = 10, randomWalkSteps = 100, restartProb = 0.15 }: { query: number[]; topK?: number; randomWalkSteps?: number; restartProb?: number; }): RankedNode[] ``` #### Paramètres **query** (`number[]`): Vecteur d'embedding de la requête **topK** (`number`): Nombre de résultats à renvoyer (Default: `10`) **randomWalkSteps** (`number`): Nombre d'étapes de la marche aléatoire (Default: `100`) **restartProb** (`number`): Probabilité de reprendre la marche à partir du nœud de la requête (Default: `0.15`) #### Valeur renvoyée Renvoie un tableau d'objets `RankedNode`, dans lequel chaque nœud contient : **id** (`string`): Identifiant unique du nœud **content** (`string`): Contenu textuel du segment de document **metadata** (`Record`): Métadonnées supplémentaires associées au segment **score** (`number`): Score de pertinence combiné issu du parcours du graphe ## Exemple avancé ```typescript 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, }) ``` ## Voir aussi - [createGraphRAGTool](https://mastra.zisheng.pro/fr/reference/tools/graph-rag-tool)