Commit e3f1fd9b authored by Ethan0x0000's avatar Ethan0x0000
Browse files

fix: handle strings.Builder write errors in assistant parsing

parent ece0606f
...@@ -232,6 +232,10 @@ func parseAssistantContent(raw json.RawMessage) (string, error) { ...@@ -232,6 +232,10 @@ func parseAssistantContent(raw json.RawMessage) (string, error) {
} }
var b strings.Builder var b strings.Builder
write := func(v string) error {
_, err := b.WriteString(v)
return err
}
for _, p := range parts { for _, p := range parts {
typ, _ := p["type"].(string) typ, _ := p["type"].(string)
text, _ := p["text"].(string) text, _ := p["text"].(string)
...@@ -240,17 +244,31 @@ func parseAssistantContent(raw json.RawMessage) (string, error) { ...@@ -240,17 +244,31 @@ func parseAssistantContent(raw json.RawMessage) (string, error) {
switch typ { switch typ {
case "thinking", "reasoning": case "thinking", "reasoning":
if thinking != "" { if thinking != "" {
b.WriteString("<thinking>") if err := write("<thinking>"); err != nil {
b.WriteString(thinking) return "", err
b.WriteString("</thinking>") }
if err := write(thinking); err != nil {
return "", err
}
if err := write("</thinking>"); err != nil {
return "", err
}
} else if text != "" { } else if text != "" {
b.WriteString("<thinking>") if err := write("<thinking>"); err != nil {
b.WriteString(text) return "", err
b.WriteString("</thinking>") }
if err := write(text); err != nil {
return "", err
}
if err := write("</thinking>"); err != nil {
return "", err
}
} }
default: default:
if text != "" { if text != "" {
b.WriteString(text) if err := write(text); err != nil {
return "", err
}
} }
} }
} }
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment