Class: LlmCostTracker::Parsers::Base

Inherits:
Object
  • Object
show all
Defined in:
lib/llm_cost_tracker/parsers/base.rb

Direct Known Subclasses

Anthropic, Gemini, Openai, OpenaiCompatible

Instance Method Summary collapse

Instance Method Details

#match?(url) ⇒ Boolean

Returns:

  • (Boolean)

Raises:

  • (NotImplementedError)


17
18
19
# File 'lib/llm_cost_tracker/parsers/base.rb', line 17

def match?(url)
  raise NotImplementedError
end

#parse(request_url, request_body, response_status, response_body) ⇒ Object

Raises:

  • (NotImplementedError)


9
10
11
# File 'lib/llm_cost_tracker/parsers/base.rb', line 9

def parse(request_url, request_body, response_status, response_body)
  raise NotImplementedError
end

#parse_stream(_request_url, _request_body, _response_status, _events) ⇒ Object



31
32
33
# File 'lib/llm_cost_tracker/parsers/base.rb', line 31

def parse_stream(_request_url, _request_body, _response_status, _events)
  nil
end

#provider_namesObject



13
14
15
# File 'lib/llm_cost_tracker/parsers/base.rb', line 13

def provider_names
  []
end

#streaming_request?(_request_url, request_body) ⇒ Boolean

Returns:

  • (Boolean)


21
22
23
24
25
26
27
28
29
# File 'lib/llm_cost_tracker/parsers/base.rb', line 21

def streaming_request?(_request_url, request_body)
  return false if request_body.nil?

  body = request_body.to_s
  return false if body.empty?

  request = safe_json_parse(body)
  request.is_a?(Hash) && request["stream"] == true
end