Expand description
Streaming LLM response wrapper.
This module provides LlmStreamWrapper, a Stream adapter
that sits between the raw stream from an LLM API and the consumer. It
feeds chunks to a user-supplied collector, and automatically emits
lifecycle events when the stream ends.
§Pipeline
raw chunk (Json) -> collector(chunk) -> Ok(()) -> yield chunk
-> Err(e) -> terminate stream with error
upstream error -> terminate stream with error -> finalizer() -> Json -> SanitizeResponseGuardrails -> END event
stream ends -> finalizer() -> Json -> SanitizeResponseGuardrails -> END eventThe collector receives each chunk (Json) and can accumulate state
(e.g., concatenating tokens). If the collector returns Err, the stream
terminates immediately with that error. Upstream stream errors also
terminate the stream immediately. The finalizer is called once when the
stream terminates and returns the aggregated response as Json. That
aggregated response then flows through sanitize response guardrails before
being included in the END event.
Structs§
- LlmStream
Wrapper - Wraps an inner
Stream<Item = Result<Json>>of raw chunks and: