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/chatoyant.core/Chatoyant_core/Stream/index.html

Module Chatoyant_core.StreamSource

Provider-neutral streaming accumulator.

Raw providers decode their own SSE/WebSocket events first, then can map deltas into these frames. The accumulator owns cross-provider invariants: stable text concatenation, fragmented tool-call argument merging, usage provenance, finish reason, and timing/token-speed derivation.

Sourcetype tool_call_delta = {
  1. index : int;
  2. id : string option;
  3. name : string option;
  4. arguments_delta : string;
  5. raw : Chatoyant_runtime.Json.t option;
}
Sourcetype frame = {
  1. content_delta : string option;
  2. reasoning_delta : string option;
  3. tool_call_deltas : tool_call_delta list;
  4. usage : Chatoyant_tokens.Cost.usage option;
  5. usage_source : Chatoyant_tokens.Cost.source;
  6. finish_reason : string option;
  7. raw : Chatoyant_runtime.Json.t option;
}
Sourcetype state
Sourceval empty : state
Sourceval apply : state -> frame -> state
Sourceval content : state -> string
Sourceval reasoning_content : state -> string
Sourceval finish_reason : state -> string option
Sourceval note_first_token : now_ms:int -> state -> state
Sourceval to_generation : provider:Chatoyant_provider.Provider.id -> model:string -> started_ms:int -> finished_ms:int -> state -> Result.generation
Sourceval frame_to_json : frame -> Chatoyant_runtime.Json.t
Sourceval state_to_json : state -> Chatoyant_runtime.Json.t