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.6.2.tbz
sha256=637f60398f673dfb2e661f6ed7da169b823a870d27b48e729d5b9200e46a52b2
sha512=5aec259473395025edb6689b544e57e821cfbef9352987f95eb2182034979ce898040e06e60a9d89a40a187b77fb5b1b7183c7ec4264da9d9a834864860a5fed

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)