package ocaml-ai-sdk
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>
OCaml AI SDK - Provider abstraction for AI models
Install
dune-project
Dependency
Authors
Maintainers
Sources
ocaml-ai-sdk-0.6.1.tbz
sha256=cb3b82428abcda76c02ec92f8103a4db28edf3f42795794a37135e9a3c40af96
sha512=11be8889ee25bee67b2be00553c42a4692bc73e5ce23985e8bb87f8a07e9d8f556b5a63b219fe5fe30366c8b0d4edae494afa80ccfbfcb112f1fa1e458de55bf
doc/src/ocaml-ai-sdk.ai_provider_anthropic/convert_tools.ml.html
Source file convert_tools.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 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63open Melange_json.Primitives type cc = Cache_control.t let cc_to_json (cc : cc) = Cache_control.to_json cc type anthropic_tool = { name : string; description : string option; [@json.option] [@json.drop_default] input_schema : Melange_json.t; cache_control : cc option; [@json.option] [@json.drop_default] } [@@deriving to_json] type tool_choice_type_json = { type_ : string [@json.key "type"] } [@@deriving to_json] type tool_choice_specific_json = { type_ : string; [@json.key "type"] name : string; } [@@deriving to_json] type anthropic_tool_choice = | Tc_auto | Tc_any | Tc_tool of { name : string } let convert_single_tool ~validator (tool : Ai_provider.Tool.t) : anthropic_tool = { name = tool.name; description = tool.description; input_schema = tool.parameters; cache_control = Cache_control_validator.take validator (Cache_control_options.get_cache_control tool.provider_options); } let convert_tools ?validator ~tools ~tool_choice () = let validator = match validator with | Some v -> v | None -> Cache_control_validator.create () in let convert = List.map (convert_single_tool ~validator) in match tool_choice with | Some Ai_provider.Tool_choice.None_ -> [], None | None | Some Ai_provider.Tool_choice.Auto -> convert tools, Some Tc_auto | Some Ai_provider.Tool_choice.Required -> convert tools, Some Tc_any | Some (Ai_provider.Tool_choice.Specific { tool_name }) -> convert tools, Some (Tc_tool { name = tool_name }) let anthropic_tool_choice_to_json = function | Tc_auto -> tool_choice_type_json_to_json { type_ = "auto" } | Tc_any -> tool_choice_type_json_to_json { type_ = "any" } | Tc_tool { name } -> tool_choice_specific_json_to_json { type_ = "tool"; name } let json_response_tool ~schema = { name = Ai_provider.Mode.fallback_json_tool_name; description = Some "Respond with a JSON object using this tool."; input_schema = schema; cache_control = None; } let forced_json_tool_choice = Tc_tool { name = Ai_provider.Mode.fallback_json_tool_name }
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>