use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct ModelStat {
#[serde(rename = "completionTokens", skip_serializing_if = "Option::is_none")]
pub completion_tokens: Option<i32>,
#[serde(rename = "costCents", skip_serializing_if = "Option::is_none")]
pub cost_cents: Option<i32>,
#[serde(rename = "costPct", skip_serializing_if = "Option::is_none")]
pub cost_pct: Option<f64>,
#[serde(rename = "errorRate", skip_serializing_if = "Option::is_none")]
pub error_rate: Option<f64>,
#[serde(rename = "errors", skip_serializing_if = "Option::is_none")]
pub errors: Option<i32>,
#[serde(rename = "model", skip_serializing_if = "Option::is_none")]
pub model: Option<String>,
#[serde(rename = "modelCount", skip_serializing_if = "Option::is_none")]
pub model_count: Option<i32>,
#[serde(rename = "p50Ms", skip_serializing_if = "Option::is_none")]
pub p50_ms: Option<f64>,
#[serde(rename = "p95Ms", skip_serializing_if = "Option::is_none")]
pub p95_ms: Option<f64>,
#[serde(rename = "p99Ms", skip_serializing_if = "Option::is_none")]
pub p99_ms: Option<f64>,
#[serde(rename = "promptTokens", skip_serializing_if = "Option::is_none")]
pub prompt_tokens: Option<i32>,
#[serde(rename = "provider", skip_serializing_if = "Option::is_none")]
pub provider: Option<String>,
#[serde(rename = "requests", skip_serializing_if = "Option::is_none")]
pub requests: Option<i32>,
#[serde(rename = "totalTokens", skip_serializing_if = "Option::is_none")]
pub total_tokens: Option<i32>,
}
impl ModelStat {
pub fn new() -> ModelStat {
ModelStat {
completion_tokens: None,
cost_cents: None,
cost_pct: None,
error_rate: None,
errors: None,
model: None,
model_count: None,
p50_ms: None,
p95_ms: None,
p99_ms: None,
prompt_tokens: None,
provider: None,
requests: None,
total_tokens: None,
}
}
}