language_models: Emit UsageUpdate events for token usage in DeepSeek and OpenAI (#33242)

Closes #ISSUE

Release Notes:

- N/A
This commit is contained in:
Umesh Yadav 2025-06-25 13:12:30 +05:30 committed by GitHub
parent 098896146e
commit 108162423d
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 31 additions and 12 deletions

View file

@ -14,7 +14,7 @@ use language_model::{
LanguageModelId, LanguageModelName, LanguageModelProvider, LanguageModelProviderId,
LanguageModelProviderName, LanguageModelProviderState, LanguageModelRequest,
LanguageModelToolChoice, LanguageModelToolResultContent, LanguageModelToolUse, MessageContent,
RateLimiter, Role, StopReason,
RateLimiter, Role, StopReason, TokenUsage,
};
use schemars::JsonSchema;
use serde::{Deserialize, Serialize};
@ -513,6 +513,15 @@ impl DeepSeekEventMapper {
}
}
if let Some(usage) = event.usage {
events.push(Ok(LanguageModelCompletionEvent::UsageUpdate(TokenUsage {
input_tokens: usage.prompt_tokens,
output_tokens: usage.completion_tokens,
cache_creation_input_tokens: 0,
cache_read_input_tokens: 0,
})));
}
match choice.finish_reason.as_deref() {
Some("stop") => {
events.push(Ok(LanguageModelCompletionEvent::Stop(StopReason::EndTurn)));