Module: RubyLLM::Streaming::FaradayHandlers

Defined in:
lib/ruby_llm/streaming.rb

Overview

Builds Faraday on_data handlers for different major versions.

Class Method Summary collapse

Class Method Details

.build(faraday_v1:, on_chunk:, on_failed_response:) ⇒ Object



150
151
152
153
154
155
156
# File 'lib/ruby_llm/streaming.rb', line 150

def build(faraday_v1:, on_chunk:, on_failed_response:)
  if faraday_v1
    v1_on_data(on_chunk)
  else
    v2_on_data(on_chunk, on_failed_response)
  end
end

.v1_on_data(on_chunk) ⇒ Object



158
159
160
161
162
# File 'lib/ruby_llm/streaming.rb', line 158

def v1_on_data(on_chunk)
  proc do |chunk, _size|
    on_chunk.call(chunk, nil)
  end
end

.v2_on_data(on_chunk, on_failed_response) ⇒ Object



164
165
166
167
168
169
170
171
172
# File 'lib/ruby_llm/streaming.rb', line 164

def v2_on_data(on_chunk, on_failed_response)
  proc do |chunk, _bytes, env|
    if env&.status == 200
      on_chunk.call(chunk, env)
    else
      on_failed_response.call(chunk, env)
    end
  end
end