Class: LlmCostTracker::Parsers::Openai
- Includes:
- OpenaiUsage
- Defined in:
- lib/llm_cost_tracker/parsers/openai.rb
Constant Summary collapse
- HOSTS =
%w[ api.openai.com us.api.openai.com eu.api.openai.com au.api.openai.com ca.api.openai.com jp.api.openai.com in.api.openai.com sg.api.openai.com kr.api.openai.com gb.api.openai.com ae.api.openai.com ].freeze
- TRACKED_PATHS =
%w[/v1/chat/completions /v1/completions /v1/embeddings /v1/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
26 27 28 |
# File 'lib/llm_cost_tracker/parsers/openai.rb', line 26 def match?(url) match_uri?(url, hosts: HOSTS, exact_paths: TRACKED_PATHS) end |
#parse(request_url:, request_body:, response_status:, response_body:) ⇒ Object
34 35 36 37 38 39 40 41 |
# File 'lib/llm_cost_tracker/parsers/openai.rb', line 34 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
43 44 45 46 47 48 49 50 |
# File 'lib/llm_cost_tracker/parsers/openai.rb', line 43 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
30 31 32 |
# File 'lib/llm_cost_tracker/parsers/openai.rb', line 30 def provider_names %w[openai] end |