Class: LlmCostTracker::PriceSync::Merger
- Inherits:
-
Object
- Object
- LlmCostTracker::PriceSync::Merger
- Defined in:
- lib/llm_cost_tracker/price_sync/merger.rb
Defined Under Namespace
Classes: Discrepancy
Constant Summary collapse
- PRIORITY_ORDER =
%i[litellm openrouter].freeze
- SUPPLEMENTAL_FIELDS =
%i[cached_input cache_read_input cache_creation_input].freeze
Instance Method Summary collapse
Instance Method Details
#merge(results_by_source) ⇒ Object
11 12 13 14 15 16 17 18 19 20 21 22 |
# File 'lib/llm_cost_tracker/price_sync/merger.rb', line 11 def merge(results_by_source) prices = collect_prices(results_by_source) discrepancies = [] merged = prices.group_by(&:model).sort.to_h.transform_values do |candidates| sorted = sort_candidates(candidates) discrepancies.concat(detect_discrepancies(sorted)) fill_missing_fields(sorted.first, sorted.drop(1)) end [merged, discrepancies] end |