Skip to main content

lc_rag/
lib.rs

1#![warn(missing_docs)]
2// lc-rag/src/lib.rs
3//! RAG (Retrieval-Augmented Generation) module for LangChainRust.
4//!
5//! Provides document loaders, text splitters, retrievers, BM25 search,
6//! hybrid retrieval, GraphRAG, HyDE, multi-query, reranking,
7//! multimodal (image+text) retrieval, and a full RAG pipeline builder.
8
9pub mod adapter;
10pub mod bm25;
11pub mod contextual;
12pub mod graph_rag;
13pub mod hybrid;
14pub mod hyde;
15pub mod late_chunking;
16pub mod loaders;
17pub mod mmr;
18pub mod multi_query;
19pub mod multimodal;
20pub mod parent_document;
21pub mod pipeline;
22pub mod reranking;
23pub mod retriever;
24pub mod retriever_runnable;
25pub mod self_query;
26pub mod semantic_cache;
27pub mod semantic_splitter;
28pub mod splitter;
29mod structured;
30pub mod unified_hybrid;
31
32pub use adapter::RagRunnable;
33pub use contextual::{
34    ContextualConfig, ContextualEnhancer, ContextualError, CONTEXTUAL_METADATA_KEY,
35};
36pub use parent_document::ParentDocumentRetriever;
37pub use pipeline::{RAGPipeline, RAGPipelineBuilder, RAGQueryResult};
38pub use retriever_runnable::RetrieverRunnable;
39
40pub use loaders::{
41    CSVLoader, DocumentLoader, DocxLoader, HTMLLoader, JSONLoader, LoaderError, MarkdownLoader,
42    PDFLoader, SitemapLoader, TextLoader, WebScraperLoader,
43};
44pub use retriever::{Retriever, RetrieverError, RetrieverTrait, SimilarityRetriever};
45pub use self_query::{SelfQueryArgs, SelfQueryRetriever};
46pub use semantic_cache::{CacheHitKind, CachedRetriever, SemanticCacheConfig, SemanticCacheCore};
47pub use semantic_splitter::SemanticSplitter;
48pub use splitter::{RecursiveCharacterSplitter, TextSplitter};
49
50pub use bm25::{
51    AutoMergingConfig, BM25Params, BM25Retriever, ChunkedBM25Retriever, ChunkedSearchResult,
52    Tokenizer,
53};
54
55pub use hybrid::{filter_by_score, reciprocal_rank_fusion, RetrievalSource, RetrievedDocument};
56// T11 (0.23): pure MMR selection (id, relevance, embedding) used as the vector-side
57// diversity post-processor behind `UnifiedHybridIndex::retrieve_mmr`.
58pub use mmr::mmr;
59pub use unified_hybrid::{FusionMode, HybridIndexConfig, HybridSearchResult, UnifiedHybridIndex};
60
61pub use multi_query::{
62    MultiQueryConfig, MultiQueryError, MultiQueryRetriever, StaticQueryGenerator,
63};
64
65// B7 (v0.22.4): image+text chunking and cross-modal retrieval over one
66// shared vision embedding space.
67pub use multimodal::{
68    ImageAsset, MediaBlock, ModalityFilter, MultimodalChunkConfig, MultimodalChunker,
69    MultimodalRetriever, MM_CAPTION_KEY, MM_KIND_IMAGE, MM_KIND_KEY, MM_KIND_TEXT, MM_MIME_KEY,
70    MM_URL_KEY,
71};
72
73pub use hyde::{HyDEConfig, HyDEError, HyDERetriever};
74pub use late_chunking::{late_chunk, late_index_in, pool_tokens, LateChunk, LateChunkConfig};
75
76pub use reranking::{
77    BM25Reranker, KeywordReranker, Reranker, RerankingConfig, RerankingError, RerankingExecutor,
78};
79
80pub use graph_rag::{
81    Community as GraphCommunity, Entity as GraphEntity, GraphStore, Relation as GraphRelation,
82};
83pub use graph_rag::{
84    GlobalLevel, GraphRAG, GraphRAGConfig, GraphRAGError, GraphRAGResult, QueryMode,
85};
86
87// Re-export key types from dependency crates for convenience
88pub use lc_embeddings::{
89    cosine_similarity, EmbeddingError, Embeddings, MockEmbeddings, OpenAIEmbeddings,
90};
91pub use lc_embeddings::{ImageInput, VisionEmbeddings};
92pub use lc_vector_stores::{
93    ChunkDocument, ChunkedDocumentStore, ChunkedDocumentStoreTrait, ChunkedVectorStore,
94    DocumentStore, InMemoryDocumentStore,
95};
96pub use lc_vector_stores::{
97    Document, InMemoryVectorStore, SearchResult, VectorStore, VectorStoreError,
98};