mirror of
https://github.com/BerriAI/litellm.git
synced 2026-09-16 23:41:43 +00:00
* fix(ocr-errors): preserve public error and timeout contracts Classify reqwest timeouts as a typed CoreError::Timeout and add CoreError::public_status_code() as the single exhaustive mapping from a typed core error to its public HTTP status. The Python bridge raises a typed RustOcrError carrying that status instead of a generic RuntimeError, and litellm.ocr()/aocr() translate it into the matching public exception so AuthenticationError/401, NotFoundError/404, BadRequestError/4xx, InternalServerError/5xx and Timeout are preserved end to end instead of collapsing to APIConnectionError/500. Reject empty or whitespace-only 200 bodies so they fail loudly rather than becoming an empty OCR success; invalid JSON already fails. Upstream error bodies stay bounded and sanitized. Co-Authored-By: Ishaan Jaffer <155045088+ishaan-berri@users.noreply.github.com> * fix(ocr-errors): map invalid OCR input to BadRequestError Invalid caller input (bad document type, non-dict document, unusable file input) was raised as a plain ValueError inside ocr()/aocr() and collapsed to APIConnectionError/500 through the generic handler. Route every OCR failure through one _map_ocr_exception host mapping: typed RustOcrError keeps its status-based public exception, a plain ValueError becomes BadRequestError/400, and a pydantic ValidationError (malformed response, not client input) stays on the generic path. Co-Authored-By: Ishaan Jaffer <155045088+ishaan-berri@users.noreply.github.com> * refactor(ocr-errors): data-minimize public errors and preserve status-specific exceptions Co-Authored-By: Ishaan Jaffer <155045088+ishaan-berri@users.noreply.github.com> * refactor(ocr-errors): preserve exact unknown status and privatize input error Co-Authored-By: Ishaan Jaffer <155045088+ishaan-berri@users.noreply.github.com> * refactor(ocr-errors): exhaustive match mapper and typed error tests Co-Authored-By: Ishaan Jaffer <155045088+ishaan-berri@users.noreply.github.com> * fix(ocr-errors): sanitize InvalidRequest public message Co-Authored-By: Ishaan Jaffer <155045088+ishaan-berri@users.noreply.github.com> * refactor(ocr-errors): raise typed public union and drop NotFound provider miss Co-Authored-By: Ishaan Jaffer <155045088+ishaan-berri@users.noreply.github.com> * fix(ocr-errors): map malformed provider responses to sanitized 500 and hide input-error detail Co-Authored-By: Ishaan Jaffer <155045088+ishaan-berri@users.noreply.github.com> --------- Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Co-authored-by: Ishaan Jaffer <155045088+ishaan-berri@users.noreply.github.com> |
||
|---|---|---|
| .. | ||
| __init__.py | ||
| test_ocr_file_input.py | ||
| test_rust_bridge.py | ||