package ocaml-ai-sdk
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>
OCaml AI SDK - Provider abstraction for AI models
Install
dune-project
Dependency
Authors
Maintainers
Sources
ocaml-ai-sdk-0.2.tbz
sha256=17063971a74ccd72619a43ecfcb29d28cdf08f90d406a960bd475f65fee1a0d9
sha512=1f3f2d1d7fa4f53843cc1b303cbf9d6dcc85780e7c768ced723f3de83ea897748fa231b48e729216abcc069dee818edc6751a45271541e8a007369bf6e9d23e3
doc/src/ocaml-ai-sdk.ai_provider/provider_error.ml.html
Source file provider_error.ml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36type error_kind = | Api_error of { status : int; body : string; } | Network_error of { message : string } | Deserialization_error of { message : string; raw : string; } type t = { provider : string; kind : error_kind; is_retryable : bool; } exception Provider_error of t let to_string { provider; kind; _ } = match kind with | Api_error { status; body } -> Printf.sprintf "[%s] API error (HTTP %d): %s" provider status body | Network_error { message } -> Printf.sprintf "[%s] Network error: %s" provider message | Deserialization_error { message; raw } -> Printf.sprintf "[%s] Deserialization error: %s (raw: %s)" provider message raw let is_retryable_status status = status = 408 || status = 409 || status = 429 || status >= 500 let make_api_error ~provider ~status ~body ?is_retryable () = let is_retryable = Option.value is_retryable ~default:(is_retryable_status status) in { provider; kind = Api_error { status; body }; is_retryable } let () = Printexc.register_printer (function | Provider_error e -> Some (to_string e) | _ -> None)
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>