MaduRox's picture
Show visible progress during synthetic generation; cap token count to selected model's real context window (prevents GPU OOM during RIF pack compilation); replace raw exception dumps with clean, actionable error messages
824f29f verified
Raw
History Blame Contribute Delete
1.39 kB
import httpx
def clean_error_message(e: Exception, action: str) -> str:
"""
Produce a short, actionable status message for a failed API call.
Never surfaces raw exception/HTTP text (stack traces, MDN links, etc.)
to end users — those are confusing and unprofessional in a live demo.
"""
if isinstance(e, httpx.HTTPStatusError):
status = e.response.status_code
if status == 500:
return (
f"{action} failed — the server hit an internal error. This is often caused by "
"a source text too large for the model's context window, or a temporary resource "
"issue. Try a smaller token count or try again in a moment."
)
if status in (502, 503, 504):
return f"{action} failed — the server is temporarily unavailable (HTTP {status}). Try again in a moment."
return f"{action} failed — the server returned an error (HTTP {status})."
if isinstance(e, (httpx.ConnectError, httpx.ConnectTimeout)):
return f"{action} failed — could not connect to the service. It may be waking up from sleep; try again shortly."
if isinstance(e, (httpx.ReadTimeout, httpx.TimeoutException)):
return f"{action} failed — the request timed out. Try a smaller request, or try again."
return f"{action} failed — an unexpected error occurred."