pub struct TokenUsage {
pub input: u64,
pub output: u64,
pub cache_write: u64,
pub cache_read: u64,
}Expand description
What a call actually consumed, split by how each token was billed.
The four counts are disjoint: a prompt token is billed exactly once, as uncached input, as a cache write, or as a cache read.
Fields§
§input: u64Prompt tokens charged at the full input rate.
output: u64Completion tokens.
cache_write: u64Prompt tokens written to the cache this call.
cache_read: u64Prompt tokens served from the cache this call.
Implementations§
Source§impl TokenUsage
impl TokenUsage
Sourcepub fn prompt_tokens(&self) -> u64
pub fn prompt_tokens(&self) -> u64
Every prompt token, however it was billed.
Sourcepub fn total_tokens(&self) -> u64
pub fn total_tokens(&self) -> u64
Prompt plus completion.
Sourcepub fn cache_hit_rate(&self) -> Option<Decimal>
pub fn cache_hit_rate(&self) -> Option<Decimal>
What fraction of the prompt was served from cache, as a percentage.
The number to watch when a cache is supposed to be working: a prefix that should be hitting and reads zero means something upstream is changing bytes that were meant to be stable.
Trait Implementations§
Source§impl Clone for TokenUsage
impl Clone for TokenUsage
impl Copy for TokenUsage
Source§impl Debug for TokenUsage
impl Debug for TokenUsage
Source§impl Default for TokenUsage
impl Default 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
impl Eq for TokenUsage
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 UnsafeUnpin 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
Source§impl<T> Canonical for T
impl<T> Canonical for T
Source§fn canonical_bytes(&self) -> Result<Vec<u8>, CanonicalError>
fn canonical_bytes(&self) -> Result<Vec<u8>, CanonicalError>
The canonical CBOR encoding of this value.