pub struct TokenUsage {
pub prompt_tokens: u32,
pub completion_tokens: u32,
pub total_tokens: u32,
}Expand description
Token usage statistics for an LLM request.
Tracks how many tokens were consumed by the prompt and completion, useful for cost estimation and monitoring context window usage.
§Cost Estimation
Most providers charge per token. Multiply token counts by the provider’s per-token rate to estimate costs:
use multi_llm::TokenUsage;
let usage = TokenUsage {
prompt_tokens: 1000,
completion_tokens: 500,
total_tokens: 1500,
};
// Example: OpenAI GPT-4 pricing (illustrative)
let prompt_cost = usage.prompt_tokens as f64 * 0.00003;
let completion_cost = usage.completion_tokens as f64 * 0.00006;
let total_cost = prompt_cost + completion_cost;Fields§
§prompt_tokens: u32Number of tokens in the prompt/input.
Includes system messages, conversation history, and the current query.
completion_tokens: u32Number of tokens in the completion/output.
The generated response from the model.
total_tokens: u32Total tokens used (prompt + completion).
Should equal prompt_tokens + completion_tokens.
Trait Implementations§
Source§impl Clone for TokenUsage
impl Clone for TokenUsage
Source§fn clone(&self) -> TokenUsage
fn clone(&self) -> TokenUsage
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for TokenUsage
impl Debug for TokenUsage
Source§impl<'de> Deserialize<'de> for TokenUsage
impl<'de> Deserialize<'de> for TokenUsage
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl From<OpenAIUsage> for TokenUsage
impl From<OpenAIUsage> for TokenUsage
Source§fn from(usage: OpenAIUsage) -> Self
fn from(usage: OpenAIUsage) -> Self
Converts to this type from the input type.
Source§impl PartialEq for TokenUsage
impl PartialEq for TokenUsage
Source§impl Serialize for TokenUsage
impl Serialize for TokenUsage
impl StructuralPartialEq for TokenUsage
Auto Trait Implementations§
impl Freeze for TokenUsage
impl RefUnwindSafe for TokenUsage
impl Send for TokenUsage
impl Sync for TokenUsage
impl Unpin for TokenUsage
impl UnwindSafe for TokenUsage
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more