#![cfg_attr(docsrs, feature(doc_cfg))]
#![doc = include_str!("../README.md")]
#![deny(missing_docs)]
#![deny(rustdoc::broken_intra_doc_links)]
#![warn(clippy::all)]
#![warn(clippy::pedantic)]
#![allow(clippy::module_name_repetitions)]
#![allow(clippy::too_many_arguments)]
#![allow(clippy::must_use_candidate)]
pub mod error;
pub mod document;
pub mod embeddings;
pub mod retrieval_core;
pub mod storage;
pub mod memory;
pub mod tools;
pub mod streaming;
pub mod agent;
pub mod pipeline;
pub mod system;
#[path = "retrieval/mod.rs"]
pub mod retrieval_enhanced;
pub use error::{RragError, RragResult, ErrorSeverity};
pub use document::{Document, DocumentChunk, DocumentChunker, ChunkingStrategy, Metadata};
pub use embeddings::{
Embedding, EmbeddingService, EmbeddingProvider,
OpenAIEmbeddingProvider, LocalEmbeddingProvider,
EmbeddingRequest, EmbeddingBatch, MockEmbeddingService
};
pub use retrieval_core::{
Retriever, RetrievalService, InMemoryRetriever,
SearchResult, SearchQuery, SearchConfig, SearchAlgorithm
};
pub use retrieval_enhanced::{
HybridRetriever, HybridConfig, FusionStrategy,
BM25Retriever, BM25Config, TokenizerType,
SemanticRetriever, SemanticConfig,
RankFusion, ReciprocalRankFusion, WeightedFusion
};
pub use storage::{
Storage, StorageService, InMemoryStorage, FileStorage,
StorageKey, StorageEntry, StorageQuery
};
pub use memory::{
Memory, MemoryService, ConversationMessage, MessageRole,
ConversationBufferMemory, ConversationTokenBufferMemory, ConversationSummaryMemory
};
pub use tools::{
Tool, ToolRegistry, ToolResult, Calculator, EchoTool
};
#[cfg(feature = "http")]
pub use tools::HttpTool;
pub use streaming::{
StreamingResponse, StreamToken, TokenType, TokenStreamBuilder
};
pub use agent::{
RragAgent, AgentBuilder, AgentConfig, ModelConfig, AgentResponse, ToolCall
};
pub use pipeline::{
Pipeline, PipelineStep, PipelineContext, PipelineData, PipelineConfig,
RagPipelineBuilder, TextPreprocessingStep, DocumentChunkingStep, EmbeddingStep, RetrievalStep,
TextOperation
};
pub use system::{
RragSystem, RragSystemBuilder, RragSystemConfig,
ProcessingResult, SearchResponse, ChatResponse, HealthCheckResult, SystemMetrics
};
#[cfg(feature = "rsllm-client")]
pub use rsllm;
pub mod prelude {
pub use crate::{
RragSystem, RragSystemBuilder, RragSystemConfig,
ProcessingResult, SearchResponse, ChatResponse,
HealthCheckResult, SystemMetrics,
};
pub use crate::{
RragError, RragResult, ErrorSeverity,
Document, DocumentChunk, DocumentChunker, ChunkingStrategy, Metadata,
Embedding, EmbeddingService, EmbeddingProvider,
};
pub use crate::{
RetrievalService, StorageService, MemoryService,
InMemoryRetriever, SearchResult, SearchQuery, SearchConfig,
};
pub use crate::{
RragAgent, AgentBuilder, AgentConfig, AgentResponse,
Tool, ToolRegistry, ToolResult, Calculator,
};
#[cfg(feature = "http")]
pub use crate::HttpTool;
pub use crate::{
Memory, ConversationMessage, MessageRole,
ConversationBufferMemory, ConversationTokenBufferMemory,
ConversationSummaryMemory,
};
pub use crate::{
StreamingResponse, StreamToken, TokenType, TokenStreamBuilder,
};
pub use crate::{
Pipeline, PipelineStep, PipelineContext, PipelineData,
RagPipelineBuilder, TextPreprocessingStep, DocumentChunkingStep,
EmbeddingStep, RetrievalStep, TextOperation,
};
pub use crate::{
HybridRetriever, HybridConfig, FusionStrategy,
BM25Retriever, SemanticRetriever,
RankFusion, ReciprocalRankFusion,
};
pub use async_trait::async_trait;
pub use futures::{Stream, StreamExt};
pub use serde::{Deserialize, Serialize};
pub use tokio;
#[cfg(feature = "rsllm-client")]
pub use rsllm;
}
pub const VERSION: &str = env!("CARGO_PKG_VERSION");
pub const NAME: &str = "RRAG";
pub const DESCRIPTION: &str = "Rust RAG Framework - High-performance Retrieval-Augmented Generation";
pub const REPOSITORY: &str = "https://github.com/leval-ai/rrag";
pub const LICENSE: &str = "MIT";
pub const MSRV: &str = "1.70.0";