Class: LlmScraper::ResponseParser

Inherits:
Object
  • Object
show all
Defined in:
lib/llm_scraper/response_parser.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(schema) ⇒ ResponseParser

Returns a new instance of ResponseParser.



13
14
15
# File 'lib/llm_scraper/response_parser.rb', line 13

def initialize(schema)
  @schema = schema
end

Class Method Details

.parse(content, schema) ⇒ Hash

Parameters:

  • content (String)

    raw LLM response

  • schema (Schema)

Returns:

  • (Hash)

Raises:



9
10
11
# File 'lib/llm_scraper/response_parser.rb', line 9

def self.parse(content, schema)
  new(schema).parse(content)
end

Instance Method Details

#parse(content) ⇒ Object



17
18
19
20
21
22
23
24
25
# File 'lib/llm_scraper/response_parser.rb', line 17

def parse(content)
  json    = strip_fences(content)
  data    = JSON.parse(json)
  coerced = coerce(data)
  validate_required!(coerced)
  coerced
rescue JSON::ParserError => e
  raise LlmScraper::ParseError, "Invalid JSON from LLM: #{e.message}\nRaw: #{content}"
end