llm_test_bench_core/
lib.rs

1// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
2// https://www.apache.org/licenses/LICENSE-2.0> or the MIT license
3// <LICENSE-MIT or https://opensource.org/licenses/MIT>, at your
4// option. This file may not be copied, modified, or distributed
5// except according to those terms.
6
7//! # LLM Test Bench Core
8//!
9//! This crate provides the core business logic and provider integrations
10//! for the LLM Test Bench framework.
11//!
12//! ## Modules
13//!
14//! - `config`: Configuration management and validation
15//! - `providers`: LLM provider implementations (OpenAI, Anthropic, etc.)
16//! - `evaluators`: Evaluation metrics (perplexity, faithfulness, relevance, coherence)
17//! - `benchmarks`: Benchmarking logic and reporting
18//! - `orchestration`: Multi-model comparison, ranking, and routing
19//! - `analytics`: Statistical analysis and cost optimization
20//! - `visualization`: HTML dashboard generation with interactive charts
21//! - `multimodal`: Multi-modal support for vision, audio, and video
22//! - `monitoring`: Real-time monitoring with Prometheus and WebSocket dashboards
23//! - `plugins`: WASM-based plugin system for extensibility
24//! - `api`: REST, GraphQL, and WebSocket API server
25//! - `distributed`: Coordinator-worker distributed architecture
26//! - `database`: PostgreSQL database backend
27
28#![warn(missing_docs)]
29#![warn(clippy::all)]
30#![deny(clippy::correctness)]
31
32pub mod config;
33pub mod providers;
34pub mod evaluators;
35pub mod benchmarks;
36pub mod orchestration;
37pub mod analytics;
38pub mod visualization;
39pub mod multimodal;
40pub mod monitoring;
41pub mod plugins;
42pub mod api;
43pub mod distributed;
44#[cfg(feature = "database")]
45pub mod database;
46
47/// Library version
48pub const VERSION: &str = env!("CARGO_PKG_VERSION");
49
50/// Re-export commonly used types
51pub mod prelude {
52    pub use crate::config::Config;
53    pub use crate::providers::Provider;
54    pub use crate::evaluators::Evaluator;
55    pub use crate::multimodal::{
56        MultiModalRequest, MultiModalResponse, ImageInput, AudioInput,
57    };
58    pub use crate::monitoring::{
59        MonitoringSystem, MonitoringConfig, MonitoringEvent, EventBus,
60    };
61    pub use crate::plugins::{
62        PluginSystem, PluginManager, PluginType, PluginInput, PluginOutput,
63    };
64    pub use crate::api::{
65        ApiServer, ApiConfig, AppState, ApiError, ApiResult,
66    };
67    pub use crate::distributed::{
68        Coordinator, CoordinatorConfig, Worker, WorkerConfig,
69        JobRequest, JobStatus, ClusterMetrics,
70    };
71    #[cfg(feature = "database")]
72    pub use crate::database::{
73        Database, DatabaseConfig, DatabaseError, DatabaseResult,
74    };
75}
76
77#[cfg(test)]
78mod tests {
79    use super::*;
80
81    #[test]
82    fn test_version() {
83        assert!(!VERSION.is_empty());
84    }
85}