Skip to main content

Crate oxirs_graphrag

Crate oxirs_graphrag 

Source
Expand description

§OxiRS GraphRAG

Version

Status: Production Release (v0.1.0)

GraphRAG (Graph Retrieval-Augmented Generation) combines vector similarity search with graph topology traversal for enhanced knowledge retrieval.

§Architecture

Query → Embed → Vector KNN + Keyword Search → Fusion → Graph Expansion → LLM Answer

§Key Features

  • Hybrid Retrieval: Vector similarity + BM25 keyword search
  • Graph Expansion: SPARQL-based N-hop neighbor traversal
  • Community Detection: Louvain algorithm for hierarchical summarization
  • Context Building: Intelligent subgraph extraction for LLM context

§Example

use oxirs_graphrag::{GraphRAGEngine, GraphRAGConfig};

let engine = GraphRAGEngine::new(config).await?;
let result = engine.query("What safety issues affect battery cells?").await?;
println!("Answer: {}", result.answer);

Re-exports§

pub use cache::query_cache::CacheEntry;
pub use cache::query_cache::CacheStats;
pub use cache::query_cache::QueryCache;
pub use cache::query_cache::QueryCacheConfig;
pub use config::CacheConfiguration;
pub use config::GraphRAGConfig;
pub use embeddings::node2vec::Node2VecConfig;
pub use embeddings::node2vec::Node2VecEmbedder;
pub use embeddings::node2vec::Node2VecEmbeddings;
pub use embeddings::node2vec::Node2VecWalkConfig;
pub use graph::community::CommunityAlgorithm;
pub use graph::community::CommunityConfig;
pub use graph::community::CommunityDetector;
pub use graph::embeddings::CommunityAwareEmbeddings;
pub use graph::embeddings::CommunityStructure;
pub use graph::embeddings::EmbeddingConfig;
pub use graph::traversal::GraphTraversal;
pub use query::planner::QueryPlanner;
pub use retrieval::fusion::FusionStrategy;

Modules§

cache
Cache module for GraphRAG query results
community_detector
Graph community detection using a greedy label-propagation approach.
config
GraphRAG configuration
context_builder
Context building for graph-based RAG.
distributed
Distributed GraphRAG: federated subgraph expansion across multiple SPARQL endpoints.
embeddings
Graph embedding algorithms for GraphRAG.
entity_classifier
Entity type classification for knowledge graph nodes.
entity_linker
String-to-RDF entity linking: mention detection and candidate ranking.
entity_linking
Entity linking and disambiguation for knowledge graphs.
federation
Federation layer for distributed GraphRAG queries.
fusion
Fusion and reranking module for GraphRAG
generation
Answer generation module
graph
Graph processing module
graph_embedder
Graph Embedder
graph_partitioner
Graph partitioning using greedy and label-propagation methods.
graph_summarization
Graph Summarization for GraphRAG
knowledge_fusion
Multi-source knowledge fusion.
path_finder
Path Finder for Graph-RAG
path_ranker
Knowledge Graph Path Ranker
query
Query processing module
reasoning
Reasoning module for GraphRAG
retrieval
Retrieval module for GraphRAG
sparql
SPARQL extension functions for GraphRAG
streaming
Streaming subgraph extraction using SPARQL-like patterns.
summarizer
Knowledge Graph Subgraph Summarizer
temporal
Temporal reasoning and time-aware retrieval for GraphRAG
transe_model
TransE Knowledge Graph Embedding Model
triple_extractor
Triple Extractor

Structs§

CacheConfig
Cache configuration
CommunitySummary
Community summary for hierarchical retrieval
GraphRAGEngine
Main GraphRAG engine
GraphRAGResult2
GraphRAG query result
QueryProvenance
Query provenance for attribution
ScoredEntity
Entity with relevance score
Triple
Triple representation for RDF data

Enums§

GraphRAGError
GraphRAG error types
ScoreSource
Source of entity score

Traits§

EmbeddingModelTrait
Trait for embedding model operations
LlmClientTrait
Trait for LLM client operations
SparqlEngineTrait
Trait for SPARQL engine operations
VectorIndexTrait
Trait for vector index operations

Type Aliases§

GraphRAGResult