Module: LlmCostTracker::Integrations::Openai::ResponsesPatch

Defined in:
lib/llm_cost_tracker/integrations/openai.rb

Instance Method Summary collapse

Instance Method Details

#create(*args, **kwargs) ⇒ Object



113
114
115
116
117
118
119
120
121
122
123
# File 'lib/llm_cost_tracker/integrations/openai.rb', line 113

def create(*args, **kwargs)
  started_at = Process.clock_gettime(Process::CLOCK_MONOTONIC)
  LlmCostTracker::Integrations::Openai.enforce_budget!
  response = super
  LlmCostTracker::Integrations::Openai.record_response(
    response,
    request: LlmCostTracker::Integrations::Openai.request_params(args, kwargs),
    latency_ms: LlmCostTracker::Integrations::Openai.elapsed_ms(started_at)
  )
  response
end

#retrieve_streaming(response_id, *args, **kwargs) ⇒ Object



141
142
143
144
145
146
147
148
# File 'lib/llm_cost_tracker/integrations/openai.rb', line 141

def retrieve_streaming(response_id, *args, **kwargs)
  request = LlmCostTracker::Integrations::Openai.request_params(args, kwargs)
  collector = LlmCostTracker::Integrations::Openai.stream_collector(request)
  collector.provider_response_id = response_id
  LlmCostTracker::Integrations::Openai.enforce_budget!
  stream = super
  LlmCostTracker::Integrations::Openai.track_stream(stream, collector: collector)
end

#stream(*args, **kwargs) ⇒ Object



125
126
127
128
129
130
131
# File 'lib/llm_cost_tracker/integrations/openai.rb', line 125

def stream(*args, **kwargs)
  request = LlmCostTracker::Integrations::Openai.request_params(args, kwargs)
  collector = LlmCostTracker::Integrations::Openai.stream_collector(request)
  LlmCostTracker::Integrations::Openai.enforce_budget!
  stream = super
  LlmCostTracker::Integrations::Openai.track_stream(stream, collector: collector)
end

#stream_raw(*args, **kwargs) ⇒ Object



133
134
135
136
137
138
139
# File 'lib/llm_cost_tracker/integrations/openai.rb', line 133

def stream_raw(*args, **kwargs)
  request = LlmCostTracker::Integrations::Openai.request_params(args, kwargs)
  collector = LlmCostTracker::Integrations::Openai.stream_collector(request)
  LlmCostTracker::Integrations::Openai.enforce_budget!
  stream = super
  LlmCostTracker::Integrations::Openai.track_stream(stream, collector: collector)
end