1use crate::{LlmCallPurpose, LlmModel, ModelIdentity, SessionUsageEvent, SessionUsageTotals, TokenUsage, UsageSource};
2
3pub fn session_usage_event(sequence: u64, tokens: TokenUsage) -> SessionUsageEvent {
4 let mut totals = SessionUsageTotals::default();
5 totals.add(tokens, None);
6 SessionUsageEvent {
7 sequence,
8 source: UsageSource::new("root"),
9 purpose: LlmCallPurpose::Chat,
10 model: ModelIdentity::default(),
11 tokens,
12 estimated_cost: None,
13 totals,
14 }
15}
16
17pub fn priced_model() -> LlmModel {
18 LlmModel::all().iter().find(|model| model.pricing().is_some()).cloned().expect("catalog has a priced model")
19}