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