Module: LlmCostTracker::Providers::Openai::ModelFamilies
- Defined in:
- lib/llm_cost_tracker/providers/openai/model_families.rb
Constant Summary collapse
- IMAGE_OUTPUT_MODEL_PATTERN =
/\Agpt-image-/i- CHARACTER_BILLED_TTS_MODEL_PATTERN =
/\Atts-1(-hd)?\z/- REASONING_MODEL_PATTERNS =
[ /\Agpt-5(\b|[\d.-])/i, /\Ao\d+(\b|[\d.-])/i ].freeze
- NON_REASONING_GPT5_PATTERN =
/\Agpt-5(?:\.\d+)?-chat\b/i- CHAT_COMPLETIONS_SEARCH_MODEL_PATTERN =
/-search-(?:preview|api)\b/i
Class Method Summary collapse
- .character_billed_tts?(model) ⇒ Boolean
- .chat_completions_search?(model) ⇒ Boolean
- .image_output?(model) ⇒ Boolean
- .reasoning?(model) ⇒ Boolean
Class Method Details
.character_billed_tts?(model) ⇒ Boolean
23 24 25 |
# File 'lib/llm_cost_tracker/providers/openai/model_families.rb', line 23 def self.character_billed_tts?(model) model.to_s.match?(CHARACTER_BILLED_TTS_MODEL_PATTERN) end |
.chat_completions_search?(model) ⇒ Boolean
27 28 29 |
# File 'lib/llm_cost_tracker/providers/openai/model_families.rb', line 27 def self.chat_completions_search?(model) model.to_s.match?(CHAT_COMPLETIONS_SEARCH_MODEL_PATTERN) end |
.image_output?(model) ⇒ Boolean
19 20 21 |
# File 'lib/llm_cost_tracker/providers/openai/model_families.rb', line 19 def self.image_output?(model) model.to_s.match?(IMAGE_OUTPUT_MODEL_PATTERN) end |
.reasoning?(model) ⇒ Boolean
31 32 33 34 35 36 37 |
# File 'lib/llm_cost_tracker/providers/openai/model_families.rb', line 31 def self.reasoning?(model) name = model.to_s return false if name.empty? return false if NON_REASONING_GPT5_PATTERN.match?(name) REASONING_MODEL_PATTERNS.any? { |pattern| pattern.match?(name) } end |