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(response_status:, request_url: nil, request_body: nil, 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 27 28 29 30 31 |
# 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_url, request_body: request_body, response_status: response_status, response_body: response_body ) end |
#parse_stream(response_status:, request_url: nil, request_body: nil, events: []) ⇒ Object
33 34 35 36 37 38 39 40 |
# File 'lib/llm_cost_tracker/parsers/openai_compatible.rb', line 33 def parse_stream(response_status:, request_url: nil, request_body: nil, events: [], **) parse_openai_stream_usage( request_url: request_url, request_body: request_body, response_status: response_status, events: 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 |