Handle CLI request errors and backend whisper timeout
Some checks failed
CI / Backend (pull_request) Failing after 15s
CI / CLI (pull_request) Successful in 28s

This commit is contained in:
2026-05-27 13:08:56 +00:00
parent 44af756bd3
commit 1c6415d306
4 changed files with 67 additions and 10 deletions

View File

@@ -64,6 +64,14 @@ def format_http_error(response: httpx.Response, endpoint: str) -> str:
return f"HTTP {response.status_code} from {endpoint}: {body}"
def format_request_error(exc: httpx.RequestError, endpoint: str) -> str:
if isinstance(exc, httpx.TimeoutException):
return f"Request to {endpoint} timed out."
reason = str(exc).strip() or exc.__class__.__name__
return f"Request to {endpoint} failed: {reason}"
def main() -> int:
parser = build_parser()
args = parser.parse_args()
@@ -75,16 +83,19 @@ def main() -> int:
server = resolve_server(args)
endpoint = f"{server}/transcriptions"
with input_file.open("rb") as handle, httpx.Client(timeout=300.0) as client:
response = client.post(
endpoint,
data={
"model": args.model,
"language": args.language or "",
"output_format": args.output_format,
},
files={"file": (input_file.name, handle, "application/octet-stream")},
)
try:
with input_file.open("rb") as handle, httpx.Client(timeout=300.0) as client:
response = client.post(
endpoint,
data={
"model": args.model,
"language": args.language or "",
"output_format": args.output_format,
},
files={"file": (input_file.name, handle, "application/octet-stream")},
)
except httpx.RequestError as exc:
parser.exit(1, f"{format_request_error(exc, endpoint)}\n")
try:
response.raise_for_status()