Module: LlmCostTracker::Integrations::RubyLlm::ProviderPatch

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

Instance Method Summary collapse

Instance Method Details

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



200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
# File 'lib/llm_cost_tracker/integrations/ruby_llm.rb', line 200

def complete(*args, **kwargs, &)
  integration = LlmCostTracker::Integrations::RubyLlm
  request = integration.request_params(args, kwargs)
  integration.enforce_budget!(request: request)
  started_at = LlmCostTracker::Timing.now_monotonic
  response = super
  integration.record_completion(
    self,
    response,
    request: request,
    latency_ms: LlmCostTracker::Timing.elapsed_ms(started_at),
    stream: integration.streaming_request?(request, has_block: block_given?)
  )
  response
end

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



216
217
218
219
220
221
222
223
224
225
226
227
228
229
# File 'lib/llm_cost_tracker/integrations/ruby_llm.rb', line 216

def embed(*args, **kwargs)
  integration = LlmCostTracker::Integrations::RubyLlm
  request = integration.request_params(args, kwargs)
  integration.enforce_budget!(request: request)
  started_at = LlmCostTracker::Timing.now_monotonic
  response = super
  integration.record_embedding(
    self,
    response,
    request: request,
    latency_ms: LlmCostTracker::Timing.elapsed_ms(started_at)
  )
  response
end

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



261
262
263
264
265
266
267
268
269
270
271
272
273
274
# File 'lib/llm_cost_tracker/integrations/ruby_llm.rb', line 261

def moderate(*args, **kwargs)
  integration = LlmCostTracker::Integrations::RubyLlm
  request = integration.request_params(args, kwargs)
  integration.enforce_budget!(request: request)
  started_at = LlmCostTracker::Timing.now_monotonic
  response = super
  integration.record_moderation(
    self,
    response,
    request: request,
    latency_ms: LlmCostTracker::Timing.elapsed_ms(started_at)
  )
  response
end

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



246
247
248
249
250
251
252
253
254
255
256
257
258
259
# File 'lib/llm_cost_tracker/integrations/ruby_llm.rb', line 246

def paint(*args, **kwargs)
  integration = LlmCostTracker::Integrations::RubyLlm
  request = integration.request_params(args, kwargs)
  integration.enforce_budget!(request: request)
  started_at = LlmCostTracker::Timing.now_monotonic
  response = super
  integration.record_image(
    self,
    response,
    request: request,
    latency_ms: LlmCostTracker::Timing.elapsed_ms(started_at)
  )
  response
end

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



231
232
233
234
235
236
237
238
239
240
241
242
243
244
# File 'lib/llm_cost_tracker/integrations/ruby_llm.rb', line 231

def transcribe(*args, **kwargs)
  integration = LlmCostTracker::Integrations::RubyLlm
  request = integration.request_params(args, kwargs)
  integration.enforce_budget!(request: request)
  started_at = LlmCostTracker::Timing.now_monotonic
  response = super
  integration.record_transcription(
    self,
    response,
    request: request,
    latency_ms: LlmCostTracker::Timing.elapsed_ms(started_at)
  )
  response
end