mirror of
https://github.com/CJackHwang/ds2api.git
synced 2026-05-04 08:25:26 +08:00
64 lines
1.4 KiB
Go
64 lines
1.4 KiB
Go
package openai
|
|
|
|
import "net/http"
|
|
|
|
func writeOpenAIError(w http.ResponseWriter, status int, message string) {
|
|
writeOpenAIErrorWithCode(w, status, message, "")
|
|
}
|
|
|
|
func writeOpenAIErrorWithCode(w http.ResponseWriter, status int, message, code string) {
|
|
if code == "" {
|
|
code = openAIErrorCode(status)
|
|
}
|
|
writeJSON(w, status, map[string]any{
|
|
"error": map[string]any{
|
|
"message": message,
|
|
"type": openAIErrorType(status),
|
|
"code": code,
|
|
"param": nil,
|
|
},
|
|
})
|
|
}
|
|
|
|
func openAIErrorType(status int) string {
|
|
switch status {
|
|
case http.StatusBadRequest:
|
|
return "invalid_request_error"
|
|
case http.StatusUnauthorized:
|
|
return "authentication_error"
|
|
case http.StatusForbidden:
|
|
return "permission_error"
|
|
case http.StatusTooManyRequests:
|
|
return "rate_limit_error"
|
|
case http.StatusServiceUnavailable:
|
|
return "service_unavailable_error"
|
|
default:
|
|
if status >= 500 {
|
|
return "api_error"
|
|
}
|
|
return "invalid_request_error"
|
|
}
|
|
}
|
|
|
|
func openAIErrorCode(status int) string {
|
|
switch status {
|
|
case http.StatusBadRequest:
|
|
return "invalid_request"
|
|
case http.StatusUnauthorized:
|
|
return "authentication_failed"
|
|
case http.StatusForbidden:
|
|
return "forbidden"
|
|
case http.StatusTooManyRequests:
|
|
return "rate_limit_exceeded"
|
|
case http.StatusNotFound:
|
|
return "not_found"
|
|
case http.StatusServiceUnavailable:
|
|
return "service_unavailable"
|
|
default:
|
|
if status >= 500 {
|
|
return "internal_error"
|
|
}
|
|
return "invalid_request"
|
|
}
|
|
}
|