Class: LLM::EventHandler

Inherits:
Object
  • Object
show all
Defined in:
lib/llm/eventhandler.rb

Instance Method Summary collapse

Constructor Details

#initialize(parser) ⇒ LLM::EventHandler

Parameters:

  • parser (#parse!)


10
11
12
# File 'lib/llm/eventhandler.rb', line 10

def initialize(parser)
  @parser = parser
end

Instance Method Details

#bodyLLM::Object

Returns a fully constructed response body

Returns:



44
# File 'lib/llm/eventhandler.rb', line 44

def body = @parser.body

#freevoid

This method returns an undefined value.

Frees parser state after streaming completes.



49
50
51
# File 'lib/llm/eventhandler.rb', line 49

def free
  @parser.free
end

#on_chunk(event) ⇒ void

This method returns an undefined value.

Callback for when any of chunk of data is received, regardless of whether it has a field name or not. Primarily for ollama, which does emit Server-Sent Events (SSE).

Parameters:



33
34
35
36
37
38
39
# File 'lib/llm/eventhandler.rb', line 33

def on_chunk(event)
  return if event.end?
  chunk = LLM.json.load(event.chunk)
  return unless chunk
  @parser.parse!(chunk)
rescue *LLM.json.parser_error
end

#on_data(event) ⇒ void

This method returns an undefined value.

“data:” event callback

Parameters:



18
19
20
21
22
23
24
# File 'lib/llm/eventhandler.rb', line 18

def on_data(event)
  return if event.end?
  chunk = LLM.json.load(event.value)
  return unless chunk
  @parser.parse!(chunk)
rescue *LLM.json.parser_error
end