package ocaml-ai-sdk

  1. Overview
  2. Docs
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/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.

Sourcetype _ key = ..

Extensible GADT — each provider adds a constructor via +=.

Sourcetype entry =
  1. | Entry : 'a key * 'a -> entry

Existential wrapper: a typed key paired with its value.

Sourcetype t = entry list

A bag of provider-specific options.

Sourceval empty : t
Sourceval set : 'a key -> 'a -> t -> t

Add or replace an option keyed by the GADT constructor.

Sourceval find : 'a key -> t -> 'a option

Look up an option by key. Returns None if absent.

Sourceval find_exn : 'a key -> t -> 'a

Look up an option by key. Raises Not_found if absent.

Sourcetype key +=
  1. | Provider_metadata : Yojson.Basic.t key

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").

Sourceval of_provider_metadata : Yojson.Basic.t -> t

Create a t containing only raw provider metadata.

Sourceval provider_metadata : t -> Yojson.Basic.t option

Extract raw provider metadata if present.