Não pode escolher mais do que 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.
 
 
 

30 linhas
1.1 KiB

  1. package openai
  2. import (
  3. "fmt"
  4. "net/http"
  5. "github.com/QuantumNous/new-api/dto"
  6. "github.com/QuantumNous/new-api/service"
  7. "github.com/QuantumNous/new-api/types"
  8. )
  9. // handleResponsesStreamError extracts error from a Responses API SSE event and attaches the raw data as UpstreamBody.
  10. func handleResponsesStreamError(streamResp dto.ResponsesStreamResponse, data string) *types.NewAPIError {
  11. if streamResp.Response != nil {
  12. if oaiErr := streamResp.Response.GetOpenAIError(); oaiErr != nil && oaiErr.Type != "" {
  13. err := types.WithOpenAIError(*oaiErr, http.StatusInternalServerError)
  14. err.UpstreamBody = service.TruncateBody(data)
  15. return err
  16. }
  17. }
  18. if oaiErr := dto.GetOpenAIError(streamResp.Error); oaiErr != nil && oaiErr.Type != "" {
  19. err := types.WithOpenAIError(*oaiErr, http.StatusInternalServerError)
  20. err.UpstreamBody = service.TruncateBody(data)
  21. return err
  22. }
  23. err := types.NewOpenAIError(fmt.Errorf("responses stream error: %s", streamResp.Type), types.ErrorCodeBadResponse, http.StatusInternalServerError)
  24. err.UpstreamBody = service.TruncateBody(data)
  25. return err
  26. }