openai-api-rs 10.0.1

OpenAI API client library for Rust (unofficial)
Documentation
use serde::{Deserialize, Serialize};

#[derive(Debug, Deserialize, Serialize)]
pub struct ModelsResponse {
    pub object: Option<String>,
    pub data: Vec<ModelResponse>,
}

#[derive(Debug, Deserialize, Serialize)]
pub struct ModelResponse {
    pub id: Option<String>,
    pub name: Option<String>,
    pub created: Option<i64>,
    pub description: Option<String>,
    pub architecture: Option<Architecture>,
    pub top_provider: Option<TopProvider>,
    pub pricing: Option<Pricing>,
    pub canonical_slug: Option<String>,
    pub context_length: Option<i64>,
    pub hugging_face_id: Option<String>,
    pub per_request_limits: Option<serde_json::Value>,
    pub supported_parameters: Option<Vec<String>>,
    pub object: Option<String>,
    pub owned_by: Option<String>,
}

#[derive(Debug, Deserialize, Serialize)]
pub struct Architecture {
    pub input_modalities: Option<Vec<String>>,
    pub output_modalities: Option<Vec<String>>,
    pub tokenizer: Option<String>,
    pub instruct_type: Option<String>,
}

#[derive(Debug, Deserialize, Serialize)]
pub struct TopProvider {
    pub is_moderated: Option<bool>,
    pub context_length: Option<i64>,
    pub max_completion_tokens: Option<i64>,
}

#[derive(Debug, Deserialize, Serialize)]
pub struct Pricing {
    pub prompt: Option<String>,
    pub completion: Option<String>,
    pub image: Option<String>,
    pub request: Option<String>,
    pub web_search: Option<String>,
    pub internal_reasoning: Option<String>,
    pub input_cache_read: Option<String>,
    pub input_cache_write: Option<String>,
}