package chatoyant

  1. Overview
  2. Docs
OCaml-first LLM SDK with Melange-generated JavaScript

Install

dune-project
 Dependency

Authors

Maintainers

Sources

chatoyant-v0.13.0.tbz
sha256=1f84c5229b2d58ec6264dd651a58f2686130afa6e91989f110aa7aaf10bba0f5
sha512=49142e122dbb44b03f7f27b52839492800332207d0efeacc7451173827c899a9b965b671a3d9028cc05250aaebbc6789d3815a6cf356f4319bc0c1b0454c68dd

doc/src/chatoyant.schema/json_schema_output.ml.html

Source file json_schema_output.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
module Json = Chatoyant_runtime.Json

type error = {
  instance_path : string;
  schema_path : string;
  keyword : string;
  message : string;
}

type t = { valid : bool; errors : error list }

let valid = { valid = true; errors = [] }
let invalid error = { valid = false; errors = [ error ] }

let error ~instance_path ~schema_path ~keyword ~message =
  { instance_path; schema_path; keyword; message }

let error_to_string error =
  let where = if error.instance_path = "" then "/" else error.instance_path in
  where ^ " " ^ error.keyword ^ ": " ^ error.message

let error_to_json error =
  Json.Object
    [
      ("instancePath", Json.String error.instance_path);
      ("schemaPath", Json.String error.schema_path);
      ("keyword", Json.String error.keyword);
      ("message", Json.String error.message);
    ]

let to_json result =
  Json.Object
    [
      ("valid", Json.Bool result.valid);
      ("errors", Json.Array (List.map error_to_json result.errors));
    ]