Class: LlmCostTracker::Report

Inherits:
Object
  • Object
show all
Defined in:
lib/llm_cost_tracker/report.rb

Constant Summary collapse

DEFAULT_DAYS =
ReportData::DEFAULT_DAYS

Class Method Summary collapse

Class Method Details

.data(days: DEFAULT_DAYS, now: Time.now.utc, tag_breakdowns: nil) ⇒ Object



26
27
28
# File 'lib/llm_cost_tracker/report.rb', line 26

def data(days: DEFAULT_DAYS, now: Time.now.utc, tag_breakdowns: nil)
  ReportData.build(days: days, now: now, tag_breakdowns: tag_breakdowns)
end

.generate(days: DEFAULT_DAYS, now: Time.now.utc, tag_breakdowns: nil) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/llm_cost_tracker/report.rb', line 11

def generate(days: DEFAULT_DAYS, now: Time.now.utc, tag_breakdowns: nil)
  report_data = ReportData.build(
    days: days,
    now: now,
    tag_breakdowns: tag_breakdowns,
    breakdown_limit: ReportFormatter::TOP_LIMIT
  )

  ReportFormatter.new(report_data).to_s
rescue LoadError => e
  "Unable to build LLM cost report: ActiveRecord storage is unavailable (#{e.message})"
rescue StandardError => e
  "Unable to build LLM cost report: #{e.class}: #{e.message}"
end