| package shared |
|
|
| import ( |
| "net/http" |
| "strings" |
| ) |
|
|
| func ShouldWriteUpstreamEmptyOutputError(text, thinking string) bool { |
| return strings.TrimSpace(text) == "" |
| } |
|
|
| func UpstreamEmptyOutputDetail(contentFilter bool, text, thinking string) (int, string, string) { |
| _ = text |
| if contentFilter { |
| return http.StatusBadRequest, "Upstream content filtered the response and returned no output.", "content_filter" |
| } |
| if thinking != "" { |
| return http.StatusTooManyRequests, "Upstream account hit a rate limit and returned reasoning without visible output.", "upstream_empty_output" |
| } |
| return http.StatusTooManyRequests, "Upstream account hit a rate limit and returned empty output.", "upstream_empty_output" |
| } |
|
|
| func WriteUpstreamEmptyOutputError(w http.ResponseWriter, text, thinking string, contentFilter bool) bool { |
| if !ShouldWriteUpstreamEmptyOutputError(text, thinking) { |
| return false |
| } |
| status, message, code := UpstreamEmptyOutputDetail(contentFilter, text, thinking) |
| WriteOpenAIErrorWithCode(w, status, message, code) |
| return true |
| } |
|
|