Class: LLM::OpenAI::StreamParser
- Inherits:
-
Object
- Object
- LLM::OpenAI::StreamParser
- Defined in:
- lib/llm/providers/openai/stream_parser.rb
Constant Summary collapse
- EMPTY_HASH =
{}.freeze
Instance Attribute Summary collapse
-
#body ⇒ Hash
readonly
Returns the fully constructed response body.
Instance Method Summary collapse
-
#free ⇒ void
Frees internal parser state used during streaming.
- #initialize(stream) ⇒ LLM::OpenAI::Chunk constructor
- #parse!(chunk) ⇒ LLM::OpenAI::Chunk
Constructor Details
#initialize(stream) ⇒ LLM::OpenAI::Chunk
16 17 18 19 20 21 22 23 24 |
# File 'lib/llm/providers/openai/stream_parser.rb', line 16 def initialize(stream) @body = {} @stream = stream @emits = {tools: {}} @can_emit_content = stream.respond_to?(:on_content) @can_emit_reasoning_content = stream.respond_to?(:on_reasoning_content) @can_emit_tool_call = stream.respond_to?(:on_tool_call) @can_push_content = stream.respond_to?(:<<) end |
Instance Attribute Details
#body ⇒ Hash (readonly)
Returns the fully constructed response body
12 13 14 |
# File 'lib/llm/providers/openai/stream_parser.rb', line 12 def body @body end |
Instance Method Details
#free ⇒ void
This method returns an undefined value.
Frees internal parser state used during streaming.
36 37 38 |
# File 'lib/llm/providers/openai/stream_parser.rb', line 36 def free @emits.clear end |
#parse!(chunk) ⇒ LLM::OpenAI::Chunk
29 30 31 |
# File 'lib/llm/providers/openai/stream_parser.rb', line 29 def parse!(chunk) tap { merge!(chunk) } end |