Module: RubyLLM::Providers::OpenAI::Streaming

Defined in:
lib/swarm_sdk/ruby_llm_patches/streaming_error_patch.rb

Class Method Summary collapse

Class Method Details

.parse_streaming_error(data) ⇒ Object



27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# File 'lib/swarm_sdk/ruby_llm_patches/streaming_error_patch.rb', line 27

def parse_streaming_error(data)
  error_data = JSON.parse(data)
  return unless error_data.is_a?(Hash)

  error = error_data["error"]
  return unless error

  # Some proxies return {"error": "message"} instead of {"error": {"type": ..., "message": ...}}
  return [500, error.to_s] unless error.is_a?(Hash)

  case error["type"]
  when "server_error"
    [500, error["message"]]
  when "rate_limit_exceeded", "insufficient_quota"
    [429, error["message"]]
  else
    [400, error["message"]]
  end
end