module OpenAI::HTTP
def to_json_stream(user_proc:)
-
(Proc)
- An outer proc that iterates over a raw stream, converting it to JSON.
Parameters:
-
user_proc
(Proc
) -- The inner proc to call for each JSON object in the chunk.
def to_json_stream(user_proc:) parser = EventStreamParser::Parser.new proc do |chunk, _bytes, env| if env && env.status != 200 raise_error = Faraday::Response::RaiseError.new raise_error.on_complete(env.merge(body: try_parse_json(chunk))) end parser.feed(chunk) do |_type, data| user_proc.call(JSON.parse(data)) unless data == "[DONE]" end end end