Skip to main content

lc_rag/
lib.rs

1// lc-rag/src/lib.rs
2//! RAG (Retrieval-Augmented Generation) module for LangChainRust.
3//!
4//! Provides document loaders, text splitters, retrievers, BM25 search,
5//! hybrid retrieval, GraphRAG, HyDE, multi-query, reranking, and
6//! a full RAG pipeline builder.
7
8pub mod bm25;
9pub mod chunked_hybrid;
10pub mod graph_rag;
11pub mod hybrid;
12pub mod hyde;
13pub mod loaders;
14pub mod multi_query;
15pub mod pipeline;
16pub mod reranking;
17pub mod retriever;
18pub mod semantic_splitter;
19pub mod splitter;
20pub mod unified_hybrid;
21
22pub use pipeline::{RAGPipeline, RAGPipelineBuilder, RAGQueryResult};
23
24pub use loaders::{
25    CSVLoader, DocumentLoader, DocxLoader, HTMLLoader, JSONLoader, LoaderError, MarkdownLoader,
26    PDFLoader, SitemapLoader, TextLoader, WebScraperLoader,
27};
28pub use retriever::{Retriever, RetrieverError, RetrieverTrait, SimilarityRetriever};
29pub use semantic_splitter::SemanticSplitter;
30pub use splitter::{RecursiveCharacterSplitter, TextSplitter};
31
32pub use bm25::{
33    AutoMergingConfig, BM25Index, BM25Params, BM25Retriever, ChunkedBM25Retriever,
34    ChunkedSearchResult, Tokenizer,
35};
36
37pub use chunked_hybrid::ChunkedHybridRetriever;
38pub use hybrid::{reciprocal_rank_fusion, HybridRetriever, RetrievalSource, RetrievedDocument};
39pub use unified_hybrid::{HybridIndexConfig, HybridSearchResult, UnifiedHybridIndex};
40
41pub use multi_query::{
42    MultiQueryConfig, MultiQueryError, MultiQueryRetriever, StaticQueryGenerator,
43};
44
45pub use hyde::{HyDEConfig, HyDEError, HyDERetriever};
46
47pub use reranking::{
48    BM25Reranker, KeywordReranker, Reranker, RerankingConfig, RerankingError, RerankingExecutor,
49};
50
51pub use graph_rag::{
52    Community as GraphCommunity, Entity as GraphEntity, GraphStore, Relation as GraphRelation,
53};
54pub use graph_rag::{GraphRAG, GraphRAGConfig, GraphRAGError, GraphRAGResult, QueryMode};
55
56// Re-export key types from dependency crates for convenience
57pub use lc_embeddings::{
58    cosine_similarity, EmbeddingError, Embeddings, MockEmbeddings, OpenAIEmbeddings,
59};
60pub use lc_vector_stores::{
61    ChunkDocument, ChunkedDocumentStore, ChunkedDocumentStoreTrait, ChunkedVectorStore,
62    DocumentStore, InMemoryDocumentStore,
63};
64pub use lc_vector_stores::{
65    Document, InMemoryVectorStore, SearchResult, VectorStore, VectorStoreError,
66};