aimo-client 0.4.0

AiMo Network REST API types and client
Documentation
use serde::{Deserialize, Serialize};

/// Pricing information for models
#[derive(Serialize, Deserialize, Debug, Clone)]
pub struct ModelPricing {
    /// USDC per million prompt tokens
    pub prompt: f32,
    /// USDC per million completion tokens
    pub completion: f32,
    /// USDC per image input (optional)
    pub image: Option<f32>,
}

/// Metadata for a model provided by a provider,
/// used in new `connection` endpoints.
#[derive(Serialize, Deserialize, Debug, Clone)]
pub struct ProviderModelMetadata {
    /// Pricing information for the model
    pub pricing: ModelPricing,
    /// Slug / id name for the model
    pub name: String,
    /// Display name for the model
    pub display_name: String,
    /// Provider name (optional)
    pub provider_name: Option<String>,
    /// List of capabilities for the model
    #[serde(default)]
    pub capabilities: Vec<String>,
    /// List of input modalities for the model
    #[serde(default)]
    pub input_modalities: Vec<String>,
    /// List of output modalities for the model
    #[serde(default)]
    pub output_modalities: Vec<String>,
    /// Maximum context length (optional)
    pub context_length: Option<u32>,
}