fix: handle empty and non-JSON SSE chunks safely

This commit is contained in:
hkfires
2025-11-22 13:49:23 +08:00
parent 46b4110ff3
commit 1061354b2f
3 changed files with 6 additions and 9 deletions

View File

@@ -172,7 +172,12 @@ func (e *AntigravityExecutor) ExecuteStream(ctx context.Context, auth *cliproxya
// Only retain usage statistics in the terminal chunk // Only retain usage statistics in the terminal chunk
line = FilterSSEUsageMetadata(line) line = FilterSSEUsageMetadata(line)
chunks := sdktranslator.TranslateStream(ctx, to, from, req.Model, bytes.Clone(opts.OriginalRequest), translated, bytes.Clone(line), &param) payload := jsonPayload(line)
if payload == nil {
continue
}
chunks := sdktranslator.TranslateStream(ctx, to, from, req.Model, bytes.Clone(opts.OriginalRequest), translated, bytes.Clone(payload), &param)
for i := range chunks { for i := range chunks {
out <- cliproxyexecutor.StreamChunk{Payload: []byte(chunks[i])} out <- cliproxyexecutor.StreamChunk{Payload: []byte(chunks[i])}
} }

View File

@@ -45,10 +45,6 @@ func ConvertAntigravityResponseToOpenAI(_ context.Context, _ string, originalReq
} }
} }
if len(bytes.TrimSpace(rawJSON)) == 0 {
return []string{}
}
if bytes.Equal(rawJSON, []byte("[DONE]")) { if bytes.Equal(rawJSON, []byte("[DONE]")) {
return []string{} return []string{}
} }

View File

@@ -45,10 +45,6 @@ func ConvertCliResponseToOpenAI(_ context.Context, _ string, originalRequestRawJ
} }
} }
if len(bytes.TrimSpace(rawJSON)) == 0 {
return []string{}
}
if bytes.Equal(rawJSON, []byte("[DONE]")) { if bytes.Equal(rawJSON, []byte("[DONE]")) {
return []string{} return []string{}
} }