Propagate model through streamed responses

StreamAccumulator never set its model field, so
Response().Model was always empty for streamed
completions. Add a Model field to stream events
and populate it in all three providers (OpenAI,
Anthropic, Bedrock).

Signed-off-by: Bryan Frimin <bryan@getprobo.com>
This commit is contained in:
Bryan Frimin
2026-03-13 19:17:17 +01:00
parent 9e842b8ef3
commit 2df9a3fe59
5 changed files with 35 additions and 15 deletions

View File

@@ -431,15 +431,16 @@ func (s *anthropicStream) mapStreamEvent(event *anthropic.MessageStreamEventUnio
return evt, true
case "message_start":
if event.Message.Usage.InputTokens > 0 {
return llm.ChatCompletionStreamEvent{
Usage: &llm.Usage{
InputTokens: int(event.Message.Usage.InputTokens),
OutputTokens: int(event.Message.Usage.OutputTokens),
},
}, true
evt := llm.ChatCompletionStreamEvent{
Model: string(event.Message.Model),
}
return llm.ChatCompletionStreamEvent{}, false
if event.Message.Usage.InputTokens > 0 || event.Message.Usage.OutputTokens > 0 {
evt.Usage = &llm.Usage{
InputTokens: int(event.Message.Usage.InputTokens),
OutputTokens: int(event.Message.Usage.OutputTokens),
}
}
return evt, true
default:
return llm.ChatCompletionStreamEvent{}, false