Module: DSPy::LM::VisionModels
- Defined in:
- lib/dspy/lm/vision_models.rb
Constant Summary collapse
- OPENAI_VISION_MODELS =
OpenAI vision-capable models
[ 'gpt-4-vision-preview', 'gpt-4-turbo', 'gpt-4-turbo-2024-04-09', 'gpt-4-turbo-preview', 'gpt-4o', 'gpt-4o-2024-05-13', 'gpt-4o-2024-08-06', 'gpt-4o-mini', 'gpt-4o-mini-2024-07-18' ].freeze
- ANTHROPIC_VISION_MODELS =
Anthropic vision-capable models
[ 'claude-3-opus-20240229', 'claude-3-sonnet-20240229', 'claude-3-haiku-20240307', 'claude-3-5-sonnet-20241022', 'claude-3-5-sonnet-20240620', 'claude-3-5-haiku-20241022' ].freeze
Class Method Summary collapse
- .supports_vision?(provider, model) ⇒ Boolean
- .validate_vision_support!(provider, model) ⇒ Object
- .vision_models_for(provider) ⇒ Object
Class Method Details
.supports_vision?(provider, model) ⇒ Boolean
29 30 31 32 33 34 35 36 37 38 |
# File 'lib/dspy/lm/vision_models.rb', line 29 def self.supports_vision?(provider, model) case provider.to_s.downcase when 'openai' OPENAI_VISION_MODELS.any? { |m| model.include?(m) } when 'anthropic' ANTHROPIC_VISION_MODELS.any? { |m| model.include?(m) } else false end end |
.validate_vision_support!(provider, model) ⇒ Object
40 41 42 43 44 |
# File 'lib/dspy/lm/vision_models.rb', line 40 def self.validate_vision_support!(provider, model) unless supports_vision?(provider, model) raise ArgumentError, "Model #{model} does not support vision. Vision-capable models for #{provider}: #{vision_models_for(provider).join(', ')}" end end |
.vision_models_for(provider) ⇒ Object
46 47 48 49 50 51 52 53 54 55 |
# File 'lib/dspy/lm/vision_models.rb', line 46 def self.vision_models_for(provider) case provider.to_s.downcase when 'openai' OPENAI_VISION_MODELS when 'anthropic' ANTHROPIC_VISION_MODELS else [] end end |