#[derive(Debug, Clone, Copy, Default, PartialEq, Eq)]
pub struct PromptUsage {
pub prompt_tokens: usize,
pub prompt_cache_hit_tokens: usize,
}
#[derive(Debug, Clone, Copy, Default, PartialEq, Eq)]
pub struct CompletionUsage {
pub completion_tokens: usize,
}
#[derive(Debug)]
pub enum InferenceChunk {
Ready {
system_fingerprint: Option<String>,
prompt_usage: PromptUsage,
},
Text {
content: String,
content_tokens: usize,
},
Token { token_id: u32 },
Finish {
finish_reason: InferenceFinishReason,
},
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum InferenceFinishReason {
Stop,
Length,
ContentFilter,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum FinishReason {
Stop,
Length,
ToolCalls,
StopSequence,
ContentFilter,
EndOfStream,
}