package ocaml-ai-sdk
Install
dune-project
Dependency
Authors
Maintainers
Sources
sha256=17063971a74ccd72619a43ecfcb29d28cdf08f90d406a960bd475f65fee1a0d9
sha512=1f3f2d1d7fa4f53843cc1b303cbf9d6dcc85780e7c768ced723f3de83ea897748fa231b48e729216abcc069dee818edc6751a45271541e8a007369bf6e9d23e3
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.