Class: LlmCostTracker::Parsers::Openai
- Inherits:
-
Base
- Object
- Base
- LlmCostTracker::Parsers::Openai
show all
- 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
Constants included
from OpenaiUsage
LlmCostTracker::Parsers::OpenaiUsage::OPENAI_DATA_RESIDENCY_HOST_PATTERN
LlmCostTracker::Parsers::OpenaiServiceCharges::RESPONSE_OUTPUT_COMPONENTS
Instance Method Summary
collapse
billable?, build_line_item, line_item_details, line_items_from_output, openai_service_line_items, openai_stream_service_line_items, store_output_item
Methods inherited from Base
#streaming_request?
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
|