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.tbz
sha256=44e7f6ebef6da2828ec2844dd5b38c8f37284c08e54a29e06f6a8822df6f8e10
sha512=ce31d0868abf28bcaef7b24a0ab09b37dcfc94db3de96b38ff36a03800ae59a19e8009a35314f93191b3c8f178c40f8569630d4389f56ddc2f2cc94fb7bffc3c

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)