package chatoyant

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

Install

dune-project
 Dependency

Authors

Maintainers

Sources

chatoyant-v0.12.4.tbz
sha256=fbf19dea0d39482e0263812504d94c682a9f3a6e93f68fe0c57b2d38ed4166b3
sha512=4e01be9c0ec9c16880f98360dec4ef5e0dddd9192e2113991b154e891b3bdaefb614051c2cb63afa0b714efa0e4cc4fd8054528fdc1995f3a4858fe2fcd50256

doc/src/chatoyant.core/chat.ml.html

Source file chat.ml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
type t = {
  model : string;
  defaults : Options.t;
  messages : Message.t list;
  tools : Tool.t list;
}

let create ?(model = "gpt-4o") ?(defaults = Options.default) () =
  { model; defaults; messages = []; tools = [] }

let model chat = chat.model
let messages chat = List.rev chat.messages
let tools chat = List.rev chat.tools
let add_message message chat = { chat with messages = message :: chat.messages }
let add_tool tool chat = { chat with tools = tool :: chat.tools }
let system content chat = add_message (Message.system content) chat
let user content chat = add_message (Message.user content) chat
let assistant content chat = add_message (Message.assistant content) chat
let clear_messages chat = { chat with messages = [] }
let clear_tools chat = { chat with tools = [] }