mirror of
https://github.com/alibaba/higress.git
synced 2026-06-26 02:35:02 +08:00
[bugfix] sometimes bedrock EventStream chunk is not complete (#3010)
This commit is contained in:
@@ -284,11 +284,10 @@ func extractAmazonEventStreamEvents(ctx wrapper.HttpContext, chunk []byte) []Con
|
|||||||
|
|
||||||
r := bytes.NewReader(body)
|
r := bytes.NewReader(body)
|
||||||
var events []ConverseStreamEvent
|
var events []ConverseStreamEvent
|
||||||
var lastRead int64 = -1
|
var lastRead int64 = 0
|
||||||
messageBuffer := make([]byte, 1024)
|
messageBuffer := make([]byte, 1024)
|
||||||
defer func() {
|
defer func() {
|
||||||
log.Infof("extractAmazonEventStreamEvents: lastRead=%d, r.Size=%d", lastRead, r.Size())
|
log.Infof("extractAmazonEventStreamEvents: lastRead=%d, r.Size=%d", lastRead, r.Size())
|
||||||
ctx.SetContext(ctxKeyStreamingBody, nil)
|
|
||||||
}()
|
}()
|
||||||
|
|
||||||
for {
|
for {
|
||||||
@@ -306,6 +305,11 @@ func extractAmazonEventStreamEvents(ctx wrapper.HttpContext, chunk []byte) []Con
|
|||||||
}
|
}
|
||||||
lastRead = r.Size() - int64(r.Len())
|
lastRead = r.Size() - int64(r.Len())
|
||||||
}
|
}
|
||||||
|
if lastRead < int64(len(body)) {
|
||||||
|
ctx.SetContext(ctxKeyStreamingBody, body[lastRead:])
|
||||||
|
} else {
|
||||||
|
ctx.SetContext(ctxKeyStreamingBody, nil)
|
||||||
|
}
|
||||||
return events
|
return events
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -766,7 +770,7 @@ func (b *bedrockProvider) buildBedrockTextGenerationRequest(origRequest *chatCom
|
|||||||
System: systemMessages,
|
System: systemMessages,
|
||||||
Messages: messages,
|
Messages: messages,
|
||||||
InferenceConfig: bedrockInferenceConfig{
|
InferenceConfig: bedrockInferenceConfig{
|
||||||
MaxTokens: origRequest.MaxTokens,
|
MaxTokens: origRequest.getMaxTokens(),
|
||||||
Temperature: origRequest.Temperature,
|
Temperature: origRequest.Temperature,
|
||||||
TopP: origRequest.TopP,
|
TopP: origRequest.TopP,
|
||||||
},
|
},
|
||||||
|
|||||||
Reference in New Issue
Block a user