infernum_server/
lib.rs

1//! # Infernum Server
2//!
3//! HTTP API server with OpenAI-compatible endpoints.
4//!
5//! ## Features
6//!
7//! - **OpenAI API Compatibility**: Drop-in replacement for OpenAI's API
8//! - **Chat Completions**: `/v1/chat/completions` with streaming support
9//! - **Text Completions**: `/v1/completions` for raw text generation
10//! - **Embeddings**: `/v1/embeddings` for vector generation
11//! - **Model Management**: Load/unload models at runtime
12//! - **Health Checks**: `/health` and `/ready` endpoints
13//!
14//! ## Example
15//!
16//! ```ignore
17//! use infernum_server::{Server, ServerConfig};
18//!
19//! #[tokio::main]
20//! async fn main() -> Result<(), Box<dyn std::error::Error>> {
21//!     let config = ServerConfig::builder()
22//!         .addr("0.0.0.0:8080".parse()?)
23//!         .model("meta-llama/Llama-3.2-3B-Instruct")
24//!         .build();
25//!
26//!     let server = Server::new(config);
27//!     server.run().await?;
28//!
29//!     Ok(())
30//! }
31//! ```
32
33#![warn(missing_docs)]
34#![warn(clippy::all)]
35
36pub mod handlers;
37pub mod openai;
38pub mod server;
39
40pub use openai::{
41    ChatChoice, ChatCompletionRequest, ChatCompletionResponse, ChatMessage, CompletionChoice,
42    CompletionRequest, CompletionResponse, EmbeddingData, EmbeddingInput, EmbeddingRequest,
43    EmbeddingResponse, ModelObject, ModelsResponse, Usage,
44};
45pub use server::{AppState, Server, ServerConfig, ServerConfigBuilder};