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.4.tbz
sha256=4f3f22ae61d360b994cd75323bcb6b6bf915f6755fd1e7bab6844ca8a240c1e7
sha512=3c52b17096da818f5d3bcf9fe16826c3bec4533d6a1681e8ba0f957f37ee4f425696017cb78f1a24732f8851010d436cf446f873b72b6a4f5004d6b492072abf

doc/src/ocaml-ai-sdk.ai_provider_openrouter/cache_control.ml.html

Source file cache_control.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
36
37
38
39
40
41
42
43
44
45
46
47
open Melange_json.Primitives

type breakpoint = Ephemeral
type ttl =
  | Ttl_5m
  | Ttl_1h

let ttl_to_string = function
  | Ttl_5m -> "5m"
  | Ttl_1h -> "1h"

let ttl_of_string = function
  | "5m" -> Ttl_5m
  | "1h" -> Ttl_1h
  | other -> raise (Melange_json.Of_json_error (Melange_json.Unexpected_variant ("Unknown cache TTL: " ^ other)))

(* JSON shape we serialize/deserialize: { "type": "ephemeral", "ttl"?: "5m"|"1h" } *)
type breakpoint_json = {
  type_ : string; [@json.key "type"]
  ttl : string option; [@json.option] [@json.drop_default]
}
[@@deriving json]

type t = {
  cache_type : breakpoint;
  ttl : ttl option;
}

let to_json { cache_type; ttl } =
  let type_ =
    match cache_type with
    | Ephemeral -> "ephemeral"
  in
  breakpoint_json_to_json { type_; ttl = Option.map ttl_to_string ttl }

let of_json json =
  let { type_; ttl } = breakpoint_json_of_json json in
  let cache_type =
    match type_ with
    | "ephemeral" -> Ephemeral
    | other ->
      raise (Melange_json.Of_json_error (Melange_json.Unexpected_variant ("Unknown cache breakpoint type: " ^ other)))
  in
  { cache_type; ttl = Option.map ttl_of_string ttl }

let ephemeral = { cache_type = Ephemeral; ttl = None }
let ephemeral_1h = { cache_type = Ephemeral; ttl = Some Ttl_1h }