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.5.tbz
sha256=9e3437d6ebf48ec9f5d9a8afd62eaeece124023f02dbd87e4b291205fd309b72
sha512=605c10ed62c0cbc31a151b7031cc80a284d5c94231c1ef423ae7439572e3fadddab4a45f52eaeeef83973a8e324839b9fda03f9082deef1b6781353f63975510

doc/src/ocaml-ai-sdk.ai_provider_anthropic/cache_control_validator.ml.html

Source file cache_control_validator.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
(* Track cache_control breakpoints across a single request and drop the
   5th+ with a warning. Mirrors @ai-sdk/anthropic's CacheControlValidator. *)

let max_breakpoints = 4

type t = {
  mutable count : int;
  mutable warnings : Ai_provider.Warning.t list;
}

let create () = { count = 0; warnings = [] }

let warnings t = List.rev t.warnings

let take t (cc : Cache_control.t option) : Cache_control.t option =
  match cc with
  | None -> None
  | Some _ ->
    t.count <- t.count + 1;
    (match t.count > max_breakpoints with
    | false -> cc
    | true ->
      let w =
        Ai_provider.Warning.Unsupported_feature
          {
            feature = "cacheControl breakpoint limit";
            details =
              Some
                (Printf.sprintf "Maximum %d cache breakpoints exceeded (found %d). This breakpoint will be ignored."
                   max_breakpoints t.count);
          }
      in
      t.warnings <- w :: t.warnings;
      None)