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 multi_query;
18pub mod multimodal;
19pub mod parent_document;
20pub mod pipeline;
21pub mod reranking;
22pub mod retriever;
23pub mod retriever_runnable;
24pub mod self_query;
25pub mod semantic_cache;
26pub mod semantic_splitter;
27pub mod splitter;
28mod structured;
29pub mod unified_hybrid;
30
31pub use adapter::RagRunnable;
32pub use contextual::{
33    ContextualConfig, ContextualEnhancer, ContextualError, CONTEXTUAL_METADATA_KEY,
34};
35pub use parent_document::ParentDocumentRetriever;
36pub use pipeline::{RAGPipeline, RAGPipelineBuilder, RAGQueryResult};
37pub use retriever_runnable::RetrieverRunnable;
38
39pub use loaders::{
40    CSVLoader, DocumentLoader, DocxLoader, HTMLLoader, JSONLoader, LoaderError, MarkdownLoader,
41    PDFLoader, SitemapLoader, TextLoader, WebScraperLoader,
42};
43pub use retriever::{Retriever, RetrieverError, RetrieverTrait, SimilarityRetriever};
44pub use self_query::{SelfQueryArgs, SelfQueryRetriever};
45pub use semantic_cache::{CacheHitKind, CachedRetriever, SemanticCacheConfig, SemanticCacheCore};
46pub use semantic_splitter::SemanticSplitter;
47pub use splitter::{RecursiveCharacterSplitter, TextSplitter};
48
49pub use bm25::{
50    AutoMergingConfig, BM25Params, BM25Retriever, ChunkedBM25Retriever, ChunkedSearchResult,
51    Tokenizer,
52};
53
54pub use hybrid::{filter_by_score, reciprocal_rank_fusion, RetrievalSource, RetrievedDocument};
55pub use unified_hybrid::{HybridIndexConfig, HybridSearchResult, UnifiedHybridIndex};
56
57pub use multi_query::{
58    MultiQueryConfig, MultiQueryError, MultiQueryRetriever, StaticQueryGenerator,
59};
60
61// B7 (v0.22.4): image+text chunking and cross-modal retrieval over one
62// shared vision embedding space.
63pub use multimodal::{
64    ImageAsset, MediaBlock, ModalityFilter, MultimodalChunkConfig, MultimodalChunker,
65    MultimodalRetriever, MM_CAPTION_KEY, MM_KIND_IMAGE, MM_KIND_KEY, MM_KIND_TEXT, MM_MIME_KEY,
66    MM_URL_KEY,
67};
68
69pub use hyde::{HyDEConfig, HyDEError, HyDERetriever};
70pub use late_chunking::{late_chunk, pool_tokens, LateChunk, LateChunkConfig};
71
72pub use reranking::{
73    BM25Reranker, KeywordReranker, Reranker, RerankingConfig, RerankingError, RerankingExecutor,
74};
75
76pub use graph_rag::{
77    Community as GraphCommunity, Entity as GraphEntity, GraphStore, Relation as GraphRelation,
78};
79pub use graph_rag::{
80    GlobalLevel, GraphRAG, GraphRAGConfig, GraphRAGError, GraphRAGResult, QueryMode,
81};
82
83// Re-export key types from dependency crates for convenience
84pub use lc_embeddings::{
85    cosine_similarity, EmbeddingError, Embeddings, MockEmbeddings, OpenAIEmbeddings,
86};
87pub use lc_embeddings::{ImageInput, VisionEmbeddings};
88pub use lc_vector_stores::{
89    ChunkDocument, ChunkedDocumentStore, ChunkedDocumentStoreTrait, ChunkedVectorStore,
90    DocumentStore, InMemoryDocumentStore,
91};
92pub use lc_vector_stores::{
93    Document, InMemoryVectorStore, SearchResult, VectorStore, VectorStoreError,
94};