1#![allow(clippy::result_large_err)]
3pub mod chunking;
28pub mod config;
29pub mod document;
30pub mod embedding;
31pub mod error;
32pub mod inmemory;
33pub mod pipeline;
34pub mod reranker;
35pub mod tool;
36pub mod vectorstore;
37
38#[cfg(feature = "gemini")]
39pub mod gemini;
40#[cfg(feature = "lancedb")]
41pub mod lancedb;
42#[cfg(feature = "openai")]
43pub mod openai;
44#[cfg(feature = "pgvector")]
45pub mod pgvector;
46#[cfg(feature = "qdrant")]
47pub mod qdrant;
48#[cfg(feature = "surrealdb")]
49pub mod surrealdb;
50
51pub use chunking::{Chunker, FixedSizeChunker, MarkdownChunker, RecursiveChunker};
52pub use config::{RagConfig, RagConfigBuilder};
53pub use document::{Chunk, Document, SearchResult};
54pub use embedding::EmbeddingProvider;
55pub use error::{RagError, Result};
56pub use inmemory::InMemoryVectorStore;
57pub use pipeline::{RagPipeline, RagPipelineBuilder};
58pub use reranker::{NoOpReranker, Reranker};
59pub use tool::RagTool;
60pub use vectorstore::VectorStore;
61
62#[cfg(feature = "gemini")]
63pub use gemini::GeminiEmbeddingProvider;
64#[cfg(feature = "lancedb")]
65pub use lancedb::LanceDBVectorStore;
66#[cfg(feature = "openai")]
67pub use openai::OpenAIEmbeddingProvider;
68#[cfg(feature = "pgvector")]
69pub use pgvector::PgVectorStore;
70#[cfg(feature = "qdrant")]
71pub use qdrant::QdrantVectorStore;
72#[cfg(feature = "surrealdb")]
73pub use surrealdb::SurrealVectorStore;