Class: LlmCostTracker::PriceSync::ModelCatalog
- Inherits:
-
Object
- Object
- LlmCostTracker::PriceSync::ModelCatalog
- Defined in:
- lib/llm_cost_tracker/price_sync/model_catalog.rb
Constant Summary collapse
- OPENROUTER_PROVIDER_PREFIXES =
{ openai: %w[openai], anthropic: %w[anthropic], gemini: %w[google] }.freeze
- LITELLM_PROVIDER_PREFIXES =
{ openai: [nil, "openai"], anthropic: [nil, "anthropic"], gemini: [nil, "gemini"] }.freeze
- ALIASES =
{ "gpt-4o-2024-05-13" => "gpt-4o" }.freeze
Class Method Summary collapse
- .guess_provider(our_model) ⇒ Object
- .resolve_from_litellm(our_model, payload) ⇒ Object
- .resolve_from_openrouter(our_model, index) ⇒ Object
Class Method Details
.guess_provider(our_model) ⇒ Object
29 30 31 32 33 34 35 36 37 38 |
# File 'lib/llm_cost_tracker/price_sync/model_catalog.rb', line 29 def guess_provider(our_model) case our_model.to_s when /\A(?:gpt-|o1|o3|o4|chatgpt|text-embedding)/ :openai when /\Aclaude-/ :anthropic when /\Agemini-/ :gemini end end |
.resolve_from_litellm(our_model, payload) ⇒ Object
21 22 23 |
# File 'lib/llm_cost_tracker/price_sync/model_catalog.rb', line 21 def resolve_from_litellm(our_model, payload) litellm_candidates(our_model).find { |candidate| payload.key?(candidate) } end |
.resolve_from_openrouter(our_model, index) ⇒ Object
25 26 27 |
# File 'lib/llm_cost_tracker/price_sync/model_catalog.rb', line 25 def resolve_from_openrouter(our_model, index) openrouter_candidates(our_model).find { |candidate| index.key?(candidate) } end |