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