@mastra/rag
Version:
The Retrieval-Augmented Generation (RAG) module contains document processing and embedding utilities.
68 lines • 2.14 kB
TypeScript
/**
* TODO: GraphRAG Enhancements
* - Add support for more edge types (sequential, hierarchical, citation, etc)
* - Allow for custom edge types
* - Utilize metadata for richer connections
* - Improve graph traversal and querying using types
*/
type SupportedEdgeType = 'semantic';
type GraphMetadata = Record<string, any>;
export interface GraphNode {
id: string;
content: string;
embedding?: number[];
metadata?: GraphMetadata;
}
export interface RankedNode extends GraphNode {
score: number;
}
export interface GraphEdge {
source: string;
target: string;
weight: number;
type: SupportedEdgeType;
}
export interface GraphChunk {
text: string;
metadata: Record<string, any>;
}
export interface GraphEmbedding {
vector: number[];
}
export declare class GraphRAG {
private nodes;
private edges;
private dimension;
private threshold;
constructor(dimension?: number, threshold?: number);
addNode(node: GraphNode): void;
addEdge(edge: GraphEdge): void;
getNodes(): GraphNode[];
getEdges(): GraphEdge[];
getEdgesByType(type: string): GraphEdge[];
clear(): void;
updateNodeContent(id: string, newContent: string): void;
private getNeighbors;
private cosineSimilarity;
createGraph(chunks: GraphChunk[], embeddings: GraphEmbedding[]): void;
private selectWeightedNeighbor;
private randomWalkWithRestart;
/**
* Query the graph with a dense embedding and optional metadata filter.
*
* @param query - The embedding vector to query.
* @param topK - Number of top results to return.
* @param randomWalkSteps - Steps for random walk reranking.
* @param restartProb - Restart probability for random walk.
* @param filter - Optional strict metadata filter. All key-value pairs must match exactly.
*/
query({ query, topK, randomWalkSteps, restartProb, filter, }: {
query: number[];
topK?: number;
randomWalkSteps?: number;
restartProb?: number;
filter?: Partial<GraphMetadata>;
}): RankedNode[];
}
export {};
//# sourceMappingURL=index.d.ts.map