Class: LlmCostTracker::Parsers::OpenaiCompatible
- Includes:
- OpenaiUsage
- Defined in:
- lib/llm_cost_tracker/parsers/openai_compatible.rb
Constant Summary collapse
- TRACKED_PATH_SUFFIXES =
%w[/chat/completions /completions /embeddings /responses].freeze
Instance Method Summary collapse
- #match?(url) ⇒ Boolean
- #parse(request_url, request_body, response_status, response_body) ⇒ Object
- #parse_stream(request_url, request_body, response_status, events) ⇒ Object
- #provider_names ⇒ Object
Methods inherited from Base
Instance Method Details
#match?(url) ⇒ Boolean
13 14 15 |
# File 'lib/llm_cost_tracker/parsers/openai_compatible.rb', line 13 def match?(url) match_uri?(url, path_suffixes: TRACKED_PATH_SUFFIXES) { |uri| provider_for_uri(uri) } end |
#parse(request_url, request_body, response_status, response_body) ⇒ Object
24 25 26 |
# File 'lib/llm_cost_tracker/parsers/openai_compatible.rb', line 24 def parse(request_url, request_body, response_status, response_body) parse_openai_usage(request_url, request_body, response_status, response_body) end |
#parse_stream(request_url, request_body, response_status, events) ⇒ Object
28 29 30 |
# File 'lib/llm_cost_tracker/parsers/openai_compatible.rb', line 28 def parse_stream(request_url, request_body, response_status, events) parse_openai_stream_usage(request_url, request_body, response_status, events) end |
#provider_names ⇒ Object
17 18 19 20 21 22 |
# File 'lib/llm_cost_tracker/parsers/openai_compatible.rb', line 17 def provider_names [ "openai_compatible", *LlmCostTracker.configuration.openai_compatible_providers.each_value.map(&:to_s) ].uniq.freeze end |