For AI agents: a documentation index is available at the root level at /llms.txt and /llms-full.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.
  • About NVIDIA NeMo Relay
    • Overview
    • Architecture
    • Ecosystem
    • Concepts
    • Release Notes
  • Getting Started
    • Agent Runtime Primer
    • Prerequisites
    • Installation
    • Configuration / Setup
    • Quick Start
  • NVIDIA NeMo Relay CLI
    • About
    • Basic Usage
    • Claude Code
    • Codex
    • Cursor
    • Hermes Agent
  • Supported Integrations
    • About
    • OpenClaw Plugin Guide
    • LangChain Integration Guide
    • LangGraph Integration Guide
    • Deep Agents Integration Guide
  • Instrument Applications
    • About
    • Adding Scopes and Marks
    • Instrument a Tool Call
    • Instrument an LLM Call
    • Add Middleware
    • Code Examples
  • Observability Plugin
    • About
    • Configuration
    • Agent Trajectory Interchange Format (ATIF)
    • Agent Trajectory Observability Format (ATOF)
    • OpenTelemetry
    • OpenInference
  • Adaptive Plugin
    • About
    • Configuration
    • Adaptive Cache Governor (ACG)
    • Adaptive Hints
  • NeMo Guardrails Plugin
    • About
    • Configuration
  • Integrate into Frameworks
    • About
    • Adding Scopes
    • Wrap Tool Calls
    • Wrap LLM Calls
    • Handle Non-Serializable Data
    • Using Codecs
    • Provider Codecs
    • Provider Response Codecs
    • Code Examples
  • Build Plugins
    • About
    • Define a Plugin
    • Validate Plugin Configuration
    • Plugin Configuration Files
    • Register Plugin Behavior
    • Design Plugin Configuration
    • NeMo Guardrails Example Plugin
    • Code Examples
  • Contribute
    • About
    • Development Setup
    • Workflow and Reviews
    • Testing and Documentation
  • Reference
    • APIs
      • Python Library Reference
      • Node.js Library Reference
      • Rust Library Reference
        • nemo-relay
          • api
          • codec
            • anthropic
            • openai_chat
              • OpenAIChatCodec
              • OpenAIChatStreamingCodec
            • openai_responses
            • request
            • response
            • streaming
            • traits
          • config_editor
          • error
          • json
          • observability
          • plugin
          • plugins
          • stream
          • editor_config
        • nemo-relay-adaptive
        • nemo-relay-ffi
    • Performance
  • Resources
    • Support and FAQs
    • Glossary
    • Troubleshooting Guide
    • Community
    • Legal
NVIDIANVIDIA
Developer-friendly docs for your API
Privacy Policy | Your Privacy Choices | Terms of Service | Accessibility | Corporate Policies | Product Security | Contact

Copyright © 2026, NVIDIA Corporation.

LogoLogo
On this page
  • Strategy
  • Implementations
  • impl OpenAIChatStreamingCodec
  • new
  • Trait Implementations
  • impl Default for OpenAIChatStreamingCodec
  • default
  • impl StreamingCodec for OpenAIChatStreamingCodec
  • collector
  • finalizer
ReferenceAPIsRust Library Referencenemo-relaycodecopenai_chat

Struct OpenAI Chat Streaming Codec

||View as Markdown|
Previous

Struct OpenAI Chat Codec

Next

Module openai_responses

Generated from cargo doc --no-deps -p nemo-relay -p nemo-relay-adaptive -p nemo-relay-ffi.

1pub struct OpenAIChatStreamingCodec { /* private fields */ }

Streaming counterpart to OpenAIChatCodec.

Replays the OpenAI Chat Completions SSE chunk sequence into the same JSON shape returned for a non-streaming request ({id, object, created, model, choices: [{message, finish_reason}], usage}). Once finalized, the assembled JSON can be fed back through OpenAIChatCodec::decode_response to produce the canonical AnnotatedLlmResponse.

Strategy

Chat Completions streams untyped SSE chunks of {choices: [{index, delta: {...}, finish_reason: ...}]}. Each delta may carry a role (typically only on the first chunk), incremental content text, or partial tool_calls whose function.arguments stream as a JSON-encoded string fragment-by-fragment. Top-level fields (id, model, created) are repeated on every chunk; we capture them once. Final-chunk usage is preserved when emitted (only sent when stream_options.include_usage is set on the request).

The OpenAI [DONE] end-of-stream sentinel is dropped by the SSE event decoder before reaching the collector, so this codec never sees it.

Internal state lives behind Arc<Mutex<...>> so the &self-produced collector and finalizer closures share access. Each instance is single-use because LlmFinalizerFn consumes the finalize step.

Implementations

impl OpenAIChatStreamingCodec

impl OpenAIChatStreamingCodec

new

pub fn new() -> Self

Creates a fresh streaming codec with empty accumulator state.

Trait Implementations

impl Default for OpenAIChatStreamingCodec

impl Default for OpenAIChatStreamingCodec

default

fn default() -> Self

impl StreamingCodec for OpenAIChatStreamingCodec

impl StreamingCodec for OpenAIChatStreamingCodec

collector

fn collector(&self) -> LlmCollectorFn

finalizer

fn finalizer(&self) -> LlmFinalizerFn