Skip to content

Commit 0d288bc

Browse files
fix: fixed error raporting + tests
1 parent 203a198 commit 0d288bc

2 files changed

Lines changed: 1015 additions & 6 deletions

File tree

internal/providers/groq/groq.go

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import (
77
"encoding/json"
88
"fmt"
99
"io"
10+
"log/slog"
1011
"net/http"
1112
"strings"
1213
"time"
@@ -280,7 +281,8 @@ func (sc *groqResponsesStreamConverter) Read(p []byte) (n int, err error) {
280281
}
281282
jsonData, err := json.Marshal(createdEvent)
282283
if err != nil {
283-
return 0, fmt.Errorf("failed to marshal response.created event: %w", err)
284+
slog.Error("failed to marshal response.created event", "error", err, "response_id", sc.responseID)
285+
return 0, nil
284286
}
285287
created := fmt.Sprintf("event: response.created\ndata: %s\n\n", jsonData)
286288
sc.buffer = append(sc.buffer, []byte(created)...)
@@ -328,7 +330,8 @@ func (sc *groqResponsesStreamConverter) Read(p []byte) (n int, err error) {
328330
}
329331
jsonData, err := json.Marshal(doneEvent)
330332
if err != nil {
331-
return 0, fmt.Errorf("failed to marshal response.done event: %w", err)
333+
slog.Error("failed to marshal response.done event", "error", err, "response_id", sc.responseID)
334+
continue
332335
}
333336
doneMsg := fmt.Sprintf("event: response.done\ndata: %s\n\ndata: [DONE]\n\n", jsonData)
334337
sc.buffer = append(sc.buffer, []byte(doneMsg)...)
@@ -353,7 +356,8 @@ func (sc *groqResponsesStreamConverter) Read(p []byte) (n int, err error) {
353356
}
354357
jsonData, err := json.Marshal(deltaEvent)
355358
if err != nil {
356-
return 0, fmt.Errorf("failed to marshal content delta event: %w", err)
359+
slog.Error("failed to marshal content delta event", "error", err, "response_id", sc.responseID)
360+
continue
357361
}
358362
sc.buffer = append(sc.buffer, []byte(fmt.Sprintf("event: response.output_text.delta\ndata: %s\n\n", jsonData))...)
359363
}
@@ -381,10 +385,11 @@ func (sc *groqResponsesStreamConverter) Read(p []byte) (n int, err error) {
381385
}
382386
jsonData, err := json.Marshal(doneEvent)
383387
if err != nil {
384-
return 0, fmt.Errorf("failed to marshal final response.done event: %w", err)
388+
slog.Error("failed to marshal final response.done event", "error", err, "response_id", sc.responseID)
389+
} else {
390+
doneMsg := fmt.Sprintf("event: response.done\ndata: %s\n\ndata: [DONE]\n\n", jsonData)
391+
sc.buffer = append(sc.buffer, []byte(doneMsg)...)
385392
}
386-
doneMsg := fmt.Sprintf("event: response.done\ndata: %s\n\ndata: [DONE]\n\n", jsonData)
387-
sc.buffer = append(sc.buffer, []byte(doneMsg)...)
388393
}
389394

390395
if len(sc.buffer) > 0 {

0 commit comments

Comments
 (0)