Skip to content

GraphRAG.jsPure TypeScript Graph RAG

Enhance vector search with graph structures. One API, multiple strategies.

Quick Example

typescript
import { createGraph } from "@graphrag-js/core";
import { similarityGraph } from "@graphrag-js/similarity";
import { memoryStorage } from "@graphrag-js/memory";
import { openai } from "@ai-sdk/openai";

const graph = createGraph({
  model: openai("gpt-4o-mini"),
  embedding: openai.embedding("text-embedding-3-small"),
  provider: similarityGraph(),
  storage: memoryStorage(),
});

await graph.insert("Your documents...");
const { text } = await graph.query("Your question?");

How It Works

1. Vector Search (Baseline)

All algorithms start with vector similarity search to find relevant chunks:

Query → Embedding → Vector Search → Top K chunks

2. Graph Enhancement (Different Strategies)

Each algorithm builds and uses graph structures differently to enhance these results:

AlgorithmGraph StructureEnhancement Strategy
SimilarityChunks with similarity edgesBFS expansion from seed chunks
LightRAGEntities + relations, dual vectorsSearch entity/relation vectors separately
MicrosoftEntities + communitiesAdd community summaries and reports
FastEntities + relationsPageRank from seed entities
AWSFacts + statementsBeam search through fact chains

3. Context Generation

Graph-enhanced context is richer than pure vector search:

  • Connected chunks: Include neighbors in the graph
  • Relationship context: Add descriptions of how entities relate
  • Community insights: Include higher-level summaries
  • Multi-hop paths: Follow chains of related information

Why Graph-Enhanced RAG?

Pure vector search retrieves similar chunks. Graph structures add:

  • Better context: Include connected information, not just similar text
  • Relationship awareness: Understand how entities and concepts connect
  • Global reasoning: Access community-level summaries and patterns
  • Multi-hop queries: Follow relationship chains to find indirect connections

GraphRAG.js brings multiple graph enhancement strategies to TypeScript with a unified API.

Algorithm Comparison

Choose based on your use case:

typescript
// Simple: BFS expansion from similar chunks
provider: similarityGraph({ similarityThreshold: 0.7 })

// Balanced: Dual-level entity + relation vectors
provider: lightrag({ entityTypes: ["person", "org", "location"] })

// Deep analysis: Community detection and reports
provider: microsoftGraph({ graphClusterAlgorithm: "leiden" })

// Fast & cheap: PageRank-based expansion
provider: fastGraph({ pagerank: { damping: 0.85 } })

// Multi-hop: Fact-centric graph traversal
provider: awsGraph({ semantic: { beamWidth: 5 } })

Released under the Elastic License 2.0.