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.3.tbz
sha256=636d458cb1564ed88ca8c0250c432e91c2f822fd49ad2b923819e762bda10be6
sha512=361e476423ebc0f9cf561cc28ccd4531cf08e424e95eea43a67d6b8dbb457a49a25b418625ffa99f6327fc5df14e540e502d1aa8ed606111c5c010fe498eec2a

doc/ocaml-ai-sdk.ai_core/Ai_core/Smooth_stream/index.html

Module Ai_core.Smooth_streamSource

Smooth text and reasoning streaming output.

Buffers Text_stream_part.t.Text_delta and Text_stream_part.t.Reasoning_delta chunks and re-emits them in controlled pieces (word-by-word, line-by-line, or custom) with optional inter-chunk delays. Matches the upstream AI SDK's smoothStream transform.

All other stream events pass through immediately, flushing any buffered text first.

Sourcetype chunking =
  1. | Word
    (*

    Stream word-by-word. Matches non-whitespace followed by whitespace (regex \S+\s+). Default.

    *)
  2. | Line
    (*

    Stream line-by-line. Matches one or more newlines (regex \n+).

    *)
  3. | Regex of Re2.t
    (*

    Stream using a custom Re2 pattern. The match (including everything before it) is emitted as one chunk — same semantics as upstream RegExp chunking.

    *)
  4. | Segmenter
    (*

    Unicode UAX#29 word segmentation via uuseg. Recommended for CJK languages where words are not separated by spaces. Equivalent to upstream Intl.Segmenter.

    *)
  5. | Custom of string -> string option
    (*

    User-provided chunk detector. Receives the buffer, returns the prefix to emit as Some chunk, or None to wait for more data. The returned string must be a non-empty prefix of the buffer.

    *)

How to split buffered text into chunks for emission.

Sourceval create : ?delay_ms:int -> ?chunking:chunking -> ?sleep:(float -> unit Lwt.t) -> unit -> Text_stream_part.t Lwt_stream.t -> Text_stream_part.t Lwt_stream.t

create ?delay_ms ?chunking () returns a stream transformer.

  • parameter delay_ms

    Delay in milliseconds between emitted chunks. Default is 10. Pass 0 to disable delays.

  • parameter chunking

    Controls how text is split into chunks. Default is Word.

  • parameter sleep

    Function called to sleep between chunks (default Lwt_unix.sleep).