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 + } } } }