use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct TokenUsage {
pub input_tokens: u64,
pub output_tokens: u64,
pub total_tokens: u64,
}
impl TokenUsage {
pub fn new(input_tokens: u64, output_tokens: u64) -> Self {
Self {
input_tokens,
output_tokens,
total_tokens: input_tokens + output_tokens,
}
}
pub fn estimate_cost(&self, _model_name: &str) -> f64 {
let (input_cost_per_1k, output_cost_per_1k) = (0.00025, 0.002);
(self.input_tokens as f64 / 1000.0) * input_cost_per_1k
+ (self.output_tokens as f64 / 1000.0) * output_cost_per_1k
}
}