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\n data: %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\n data: %s\n \n data: [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\n data: %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\n data: %s\n \n data: [DONE]\n \n " , jsonData )
391+ sc .buffer = append (sc .buffer , []byte (doneMsg )... )
385392 }
386- doneMsg := fmt .Sprintf ("event: response.done\n data: %s\n \n data: [DONE]\n \n " , jsonData )
387- sc .buffer = append (sc .buffer , []byte (doneMsg )... )
388393 }
389394
390395 if len (sc .buffer ) > 0 {
0 commit comments