pub struct LlmUsage {
pub input_tokens: i32,
pub output_tokens: i32,
pub total_tokens: i32,
pub cache_read_tokens: Option<i32>,
pub cache_creation_tokens: Option<i32>,
pub thinking_tokens: Option<i32>,
pub audio_input_tokens: Option<i32>,
pub audio_output_tokens: Option<i32>,
}Available on crate feature
telemetry only.Expand description
Token usage data for recording on tracing spans.
Mirrors the token count fields from adk_core::UsageMetadata without
depending on adk-core. Callers in adk-model convert from UsageMetadata
to this struct before recording.
§Example
use adk_telemetry::LlmUsage;
let usage = LlmUsage {
input_tokens: 100,
output_tokens: 50,
total_tokens: 150,
..Default::default()
};Fields§
§input_tokens: i32Prompt / input token count.
output_tokens: i32Completion / output token count.
total_tokens: i32Total token count.
cache_read_tokens: Option<i32>Tokens read from cache.
cache_creation_tokens: Option<i32>Tokens used to create cache.
thinking_tokens: Option<i32>Tokens used for chain-of-thought reasoning.
audio_input_tokens: Option<i32>Audio input token count.
audio_output_tokens: Option<i32>Audio output token count.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for LlmUsage
impl RefUnwindSafe for LlmUsage
impl Send for LlmUsage
impl Sync for LlmUsage
impl Unpin for LlmUsage
impl UnsafeUnpin for LlmUsage
impl UnwindSafe for LlmUsage
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
Source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::RequestCreates a shared type from an unshared type.