jevapi 0.1.0

An asynchronous, typed Rust client for the TypeSafe AI evaluation API
Documentation
//! An asynchronous Rust client for [TypeSafe AI](https://docs.typesafe.ai/api).
//!
//! Uses a Tokio runtime. Cloned clients share their HTTP connection pool.
//!
//! ```no_run
//! use jevapi::{Client, EvaluationRequest, Question, Answer};
//!
//! # #[tokio::main]
//! # async fn main() -> Result<(), Box<dyn std::error::Error>> {
//! let client = Client::from_env()?;
//! let request = EvaluationRequest::new("The deployment failed; please help.")
//!     .question("urgent", Question::noul("Does the message express urgency?"));
//! let response = client.evaluate(&request).await?;
//! if let Some(Answer::Noul { noul }) = response.answers.get("urgent") {
//!     println!("Urgency probability: {noul}");
//! }
//! # Ok(())
//! # }
//! ```

#![forbid(unsafe_code)]
#![warn(missing_docs)]

mod client;
pub mod error;
pub mod types;

pub use client::{Client, ClientBuilder, RetryPolicy};
pub use error::{ApiError, Error, ValidationError};
pub use types::{
    Answer, Content, EvaluationRequest, EvaluationResponse, NoulCriteria, Question, Usage,
};

/// The API base URL, including the version prefix.
pub const DEFAULT_BASE_URL: &str = "https://api.typesafe.ai/v1";
/// The default model alias. Explicit version strings are also accepted.
pub const DEFAULT_MODEL: &str = "jev-latest";