package ocaml-ai-sdk
Install
dune-project
Dependency
Authors
Maintainers
Sources
sha256=9e3437d6ebf48ec9f5d9a8afd62eaeece124023f02dbd87e4b291205fd309b72
sha512=605c10ed62c0cbc31a151b7031cc80a284d5c94231c1ef423ae7439572e3fadddab4a45f52eaeeef83973a8e324839b9fda03f9082deef1b6781353f63975510
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.
type chunking = | Word(*Stream word-by-word. Matches non-whitespace followed by whitespace (regex
*)\S+\s+). Default.| Line(*Stream line-by-line. Matches one or more newlines (regex
*)\n+).| 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
*)RegExpchunking.| Segmenter(*Unicode UAX#29 word segmentation via
*)uuseg. Recommended for CJK languages where words are not separated by spaces. Equivalent to upstreamIntl.Segmenter.| Custom of string -> string option(*User-provided chunk detector. Receives the buffer, returns the prefix to emit as
*)Some chunk, orNoneto 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.
val 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.tcreate ?delay_ms ?chunking () returns a stream transformer.