[bugfix] sometimes bedrock EventStream chunk is not complete (#3010)

This commit is contained in:
rinfx
2025-10-16 09:52:51 +08:00
committed by GitHub
parent 1f301be851
commit 6b2d06a330

View File

@@ -284,11 +284,10 @@ func extractAmazonEventStreamEvents(ctx wrapper.HttpContext, chunk []byte) []Con
r := bytes.NewReader(body)
var events []ConverseStreamEvent
var lastRead int64 = -1
var lastRead int64 = 0
messageBuffer := make([]byte, 1024)
defer func() {
log.Infof("extractAmazonEventStreamEvents: lastRead=%d, r.Size=%d", lastRead, r.Size())
ctx.SetContext(ctxKeyStreamingBody, nil)
}()
for {
@@ -306,6 +305,11 @@ func extractAmazonEventStreamEvents(ctx wrapper.HttpContext, chunk []byte) []Con
}
lastRead = r.Size() - int64(r.Len())
}
if lastRead < int64(len(body)) {
ctx.SetContext(ctxKeyStreamingBody, body[lastRead:])
} else {
ctx.SetContext(ctxKeyStreamingBody, nil)
}
return events
}
@@ -766,7 +770,7 @@ func (b *bedrockProvider) buildBedrockTextGenerationRequest(origRequest *chatCom
System: systemMessages,
Messages: messages,
InferenceConfig: bedrockInferenceConfig{
MaxTokens: origRequest.MaxTokens,
MaxTokens: origRequest.getMaxTokens(),
Temperature: origRequest.Temperature,
TopP: origRequest.TopP,
},