package ocaml-ai-sdk
Install
dune-project
Dependency
Authors
Maintainers
Sources
sha256=44e7f6ebef6da2828ec2844dd5b38c8f37284c08e54a29e06f6a8822df6f8e10
sha512=ce31d0868abf28bcaef7b24a0ab09b37dcfc94db3de96b38ff36a03800ae59a19e8009a35314f93191b3c8f178c40f8569630d4389f56ddc2f2cc94fb7bffc3c
doc/ocaml-ai-sdk.ai_provider/Ai_provider/Provider_options/index.html
Module Ai_provider.Provider_optionsSource
Provider-specific options using an extensible GADT. Each provider registers its own typed key without circular dependencies.
Implementation uses Obj.Extension_constructor.id for key identity and Obj.magic for type recovery — type-safe by construction since matching extension constructor IDs guarantee identical type parameters. This is the standard pattern used by Printexc and other stdlib modules. OCaml 5.1+ Type.eq would replace this with a first-class witness.
Extensible GADT — each provider adds a constructor via +=.
Existential wrapper: a typed key paired with its value.
GADT key for raw provider metadata from upstream re-submissions. Stores the upstream providerMetadata JSON blob (Record<string, Record<string, JsonValue>>). Each provider reads its own namespace (e.g. "anthropic").
Create a t containing only raw provider metadata.
Extract raw provider metadata if present.