Module: Ask::LLM::SSEBuffer

Included in:
Providers::Anthropic, Providers::Cloudflare, Providers::Google, Providers::OpenAI
Defined in:
lib/ask/llm/sse_buffer.rb

Instance Method Summary collapse

Instance Method Details

#each_sse_event(raw) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/ask/llm/sse_buffer.rb', line 10

def each_sse_event(raw)
  @_sse_buffer ||= +""
  @_sse_buffer << raw

  while (event_end = @_sse_buffer.index("\n\n"))
    event_data = @_sse_buffer.slice!(0, event_end + 2).strip
    next if event_data.empty?

    data_content = extract_data(event_data)
    next if data_content.empty?
    break if data_content == "[DONE]"

    yield data_content
  end
end

#init_sse_bufferObject



6
7
8
# File 'lib/ask/llm/sse_buffer.rb', line 6

def init_sse_buffer
  @_sse_buffer = +""
end