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)


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

def match?(url)
  raise NotImplementedError
end

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

Raises:

  • (NotImplementedError)


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

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

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



29
30
31
# File 'lib/llm_cost_tracker/parsers/base.rb', line 29

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

#provider_namesObject



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

def provider_names
  []
end

#streaming_request?(_request_url, request_body) ⇒ Boolean

Returns:

  • (Boolean)


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

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

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

  body.include?('"stream":true') || body.include?('"stream": true') || body.include?("stream: true")
end