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