package openai import ( "fmt" "net/http" "github.com/QuantumNous/new-api/dto" "github.com/QuantumNous/new-api/service" "github.com/QuantumNous/new-api/types" ) // handleResponsesStreamError extracts error from a Responses API SSE event and attaches the raw data as UpstreamBody. func handleResponsesStreamError(streamResp dto.ResponsesStreamResponse, data string) *types.NewAPIError { if streamResp.Response != nil { if oaiErr := streamResp.Response.GetOpenAIError(); oaiErr != nil && oaiErr.Type != "" { err := types.WithOpenAIError(*oaiErr, http.StatusInternalServerError) err.UpstreamBody = service.TruncateBody(data) return err } } if oaiErr := dto.GetOpenAIError(streamResp.Error); oaiErr != nil && oaiErr.Type != "" { err := types.WithOpenAIError(*oaiErr, http.StatusInternalServerError) err.UpstreamBody = service.TruncateBody(data) return err } err := types.NewOpenAIError(fmt.Errorf("responses stream error: %s", streamResp.Type), types.ErrorCodeBadResponse, http.StatusInternalServerError) err.UpstreamBody = service.TruncateBody(data) return err }