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}