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 adapter;
9pub mod bm25;
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;
20mod structured;
21pub mod unified_hybrid;
22
23pub use adapter::RagRunnable;
24pub use pipeline::{RAGPipeline, RAGPipelineBuilder, RAGQueryResult};
25
26pub use loaders::{
27    CSVLoader, DocumentLoader, DocxLoader, HTMLLoader, JSONLoader, LoaderError, MarkdownLoader,
28    PDFLoader, SitemapLoader, TextLoader, WebScraperLoader,
29};
30pub use retriever::{Retriever, RetrieverError, RetrieverTrait, SimilarityRetriever};
31pub use semantic_splitter::SemanticSplitter;
32pub use splitter::{RecursiveCharacterSplitter, TextSplitter};
33
34pub use bm25::{
35    AutoMergingConfig, BM25Params, BM25Retriever, ChunkedBM25Retriever, ChunkedSearchResult,
36    Tokenizer,
37};
38
39pub use hybrid::{filter_by_score, reciprocal_rank_fusion, RetrievalSource, RetrievedDocument};
40pub use unified_hybrid::{HybridIndexConfig, HybridSearchResult, UnifiedHybridIndex};
41
42pub use multi_query::{
43    MultiQueryConfig, MultiQueryError, MultiQueryRetriever, StaticQueryGenerator,
44};
45
46pub use hyde::{HyDEConfig, HyDEError, HyDERetriever};
47
48pub use reranking::{
49    BM25Reranker, KeywordReranker, Reranker, RerankingConfig, RerankingError, RerankingExecutor,
50};
51
52pub use graph_rag::{
53    Community as GraphCommunity, Entity as GraphEntity, GraphStore, Relation as GraphRelation,
54};
55pub use graph_rag::{GraphRAG, GraphRAGConfig, GraphRAGError, GraphRAGResult, QueryMode};
56
57// Re-export key types from dependency crates for convenience
58pub use lc_embeddings::{
59    cosine_similarity, EmbeddingError, Embeddings, MockEmbeddings, OpenAIEmbeddings,
60};
61pub use lc_vector_stores::{
62    ChunkDocument, ChunkedDocumentStore, ChunkedDocumentStoreTrait, ChunkedVectorStore,
63    DocumentStore, InMemoryDocumentStore,
64};
65pub use lc_vector_stores::{
66    Document, InMemoryVectorStore, SearchResult, VectorStore, VectorStoreError,
67};