Class: LlmCostTracker::Parsers::Openai

Inherits:
Base
  • Object
show all
Includes:
OpenaiUsage
Defined in:
lib/llm_cost_tracker/parsers/openai.rb

Constant Summary collapse

TRACKED_PATHS =
%w[
  /v1/chat/completions
  /v1/completions
  /v1/embeddings
  /v1/responses
  /v1/images/generations
  /v1/images/edits
  /v1/images/variations
  /v1/audio/transcriptions
  /v1/audio/translations
  /v1/audio/speech
  /v1/moderations
].freeze

Constants included from OpenaiServiceCharges

LlmCostTracker::Parsers::OpenaiServiceCharges::CHAT_COMPLETIONS_ANNOTATION_PROVIDER_FIELD, LlmCostTracker::Parsers::OpenaiServiceCharges::CHAT_COMPLETIONS_SEARCH_MODEL_PROVIDER_FIELD, LlmCostTracker::Parsers::OpenaiServiceCharges::RESPONSE_OUTPUT_COMPONENTS

Class Method Summary collapse

Instance Method Summary collapse

Methods included from OpenaiUsage

#auto_enable_stream_usage?, combined_pricing_mode, #parse, #parse_stream, regional_processing?

Methods included from OpenaiServiceCharges

billable?, build_line_item, chat_completions_search_model?, chat_completions_search_provider_field, chat_completions_used_web_search?, chat_completions_web_search_items, component_key_for, line_item_details, line_items_from_output, openai_stream_service_line_items, reasoning_model?, service_line_items_for, store_output_item, web_search_preview_used?

Methods inherited from Base

#auto_enable_stream_usage?, #model_for, #parse, #parse_stream, #safe_json_parse, #streaming_request?

Methods included from UrlMatchers

#match_uri?, #parsed_uri, #path_matches?, #uri_matches?

Class Method Details

.match?(url) ⇒ Boolean

Returns:

  • (Boolean)


27
28
29
# File 'lib/llm_cost_tracker/parsers/openai.rb', line 27

def match?(url)
  match_uri?(url, hosts: Providers::Openai::Hosts::API_HOSTS, exact_paths: TRACKED_PATHS)
end

.provider_namesObject



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

def provider_names
  %w[openai]
end

Instance Method Details

#provider_for(_request_url) ⇒ Object



36
37
38
# File 'lib/llm_cost_tracker/parsers/openai.rb', line 36

def provider_for(_request_url)
  "openai"
end