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

@@ -181,9 +181,13 @@ func buildMessages(messages []llm.Message) []openai.ChatCompletionMessageParamUn
case llm.TextPart:
parts = append(parts, openai.TextContentPart(p.Text))
case llm.ImagePart:
parts = append(parts, openai.ImageContentPart(openai.ChatCompletionContentPartImageImageURLParam{
URL: p.URL,
}))
parts = append(
parts,
openai.ImageContentPart(openai.ChatCompletionContentPartImageImageURLParam{
URL: p.URL,
},
),
)
}
}
out = append(out, openai.UserMessage(parts))
@@ -408,7 +412,9 @@ func (s *openaiStream) Close() error {
}
func mapChunkToEvent(chunk *openai.ChatCompletionChunk) llm.ChatCompletionStreamEvent {
event := llm.ChatCompletionStreamEvent{}
event := llm.ChatCompletionStreamEvent{
Model: chunk.Model,
}
if chunk.Usage.PromptTokens > 0 || chunk.Usage.CompletionTokens > 0 {
usage := llm.Usage{