From e3f1fd9b6346e3148634f01563829f856fe87f9a Mon Sep 17 00:00:00 2001
From: Ethan0x0000 <3352979663@qq.com>
Date: Sat, 14 Mar 2026 13:12:17 +0800
Subject: [PATCH] fix: handle strings.Builder write errors in assistant parsing
---
.../apicompat/chatcompletions_to_responses.go | 32 +++++++++++++++----
1 file changed, 25 insertions(+), 7 deletions(-)
diff --git a/backend/internal/pkg/apicompat/chatcompletions_to_responses.go b/backend/internal/pkg/apicompat/chatcompletions_to_responses.go
index e0b1f986..c4a9e773 100644
--- a/backend/internal/pkg/apicompat/chatcompletions_to_responses.go
+++ b/backend/internal/pkg/apicompat/chatcompletions_to_responses.go
@@ -232,6 +232,10 @@ func parseAssistantContent(raw json.RawMessage) (string, error) {
}
var b strings.Builder
+ write := func(v string) error {
+ _, err := b.WriteString(v)
+ return err
+ }
for _, p := range parts {
typ, _ := p["type"].(string)
text, _ := p["text"].(string)
@@ -240,17 +244,31 @@ func parseAssistantContent(raw json.RawMessage) (string, error) {
switch typ {
case "thinking", "reasoning":
if thinking != "" {
- b.WriteString("")
- b.WriteString(thinking)
- b.WriteString("")
+ if err := write(""); err != nil {
+ return "", err
+ }
+ if err := write(thinking); err != nil {
+ return "", err
+ }
+ if err := write(""); err != nil {
+ return "", err
+ }
} else if text != "" {
- b.WriteString("")
- b.WriteString(text)
- b.WriteString("")
+ if err := write(""); err != nil {
+ return "", err
+ }
+ if err := write(text); err != nil {
+ return "", err
+ }
+ if err := write(""); err != nil {
+ return "", err
+ }
}
default:
if text != "" {
- b.WriteString(text)
+ if err := write(text); err != nil {
+ return "", err
+ }
}
}
}