in gollm/factory.go [117:143]
func DefaultIsRetryableError(err error) bool {
if err == nil {
return false
}
var apiErr *APIError
if errors.As(err, &apiErr) {
switch apiErr.StatusCode {
case http.StatusConflict, http.StatusTooManyRequests,
http.StatusInternalServerError, http.StatusBadGateway,
http.StatusServiceUnavailable, http.StatusGatewayTimeout:
return true
default:
return false
}
}
var netErr net.Error
if errors.As(err, &netErr) && netErr.Timeout() {
return true
}
// Add other error checks specific to LLM clients if needed
// e.g., if errors.Is(err, specificLLMRateLimitError) { return true }
return false
}