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