traitclaw_openai/lib.rs
1//! OpenAI provider for the `TraitClaw` AI agent framework.
2//!
3//! Provides ergonomic constructor functions that read API keys from environment
4//! variables, plus native OpenAI features like structured output.
5//!
6//! # Quick Start
7//!
8//! ```rust,no_run
9//! use traitclaw_openai::openai;
10//!
11//! // Reads OPENAI_API_KEY from the environment automatically
12//! let provider = openai("gpt-4o-mini");
13//! ```
14//!
15//! # Structured Output
16//!
17//! ```rust,no_run
18//! use traitclaw_openai::{openai, structured::StructuredOutputProvider};
19//! use schemars::JsonSchema;
20//! use serde::Deserialize;
21//!
22//! #[derive(Deserialize, JsonSchema)]
23//! struct Report { summary: String, confidence: f32 }
24//!
25//! let provider = StructuredOutputProvider::<Report>::new(openai("gpt-4o-mini"), "report");
26//! ```
27
28#![deny(missing_docs)]
29#![allow(clippy::redundant_closure)]
30#![allow(clippy::doc_markdown)] // proper nouns: OpenAI, Groq, etc.
31
32mod models;
33pub mod structured;
34
35pub use models::{azure_openai, custom, deepseek, groq, mistral, ollama, openai, together, xai};
36pub use traitclaw_openai_compat::{OpenAiCompatConfig, OpenAiCompatProvider};