streamResp, err := client.ConverseStream(ctx, &audacityruntime.ConverseStreamInput{
ModelId: audacity.String("gpt-5.4-mini"),
Messages: []types.Message{{
Role: types.ConversationRoleUser,
Content: []types.ContentBlock{&types.ContentBlockMemberText{Value: "Tell me a story"}},
}},
})
if err != nil {
log.Fatal(err)
}
stream := streamResp.GetStream()
defer stream.Close()
for event := range stream.Events() {
switch e := event.(type) {
case *types.ConverseStreamOutputMemberContentBlockDelta:
if td, ok := e.Value.Delta.(*types.ContentBlockDeltaMemberText); ok {
fmt.Print(td.Value)
}
case *types.ConverseStreamOutputMemberMetadata:
fmt.Printf("\n[tokens in=%d out=%d latency=%dms]\n",
e.Value.Usage.InputTokens, e.Value.Usage.OutputTokens, e.Value.Metrics.LatencyMs)
}
}
if err := stream.Err(); err != nil {
log.Fatal(err)
}