@@ -73,20 +73,13 @@ def each(&)
7373 end
7474
7575 # Find a specific model by ID
76- def find ( model_id )
77- # Try exact match first
78- exact_match = all . find { |m | m . id == model_id }
79- return exact_match if exact_match
80-
81- # Try to resolve via alias
82- resolved_id = Aliases . resolve ( model_id )
83- if resolved_id != model_id
84- alias_match = all . find { |m | m . id == resolved_id }
85- return alias_match if alias_match
86- end
76+ def find ( model_id , provider = nil )
77+ return find_with_provider ( model_id , provider ) if provider
8778
88- # Not found
89- raise ModelNotFoundError , "Unknown model: #{ model_id } "
79+ # Find native model
80+ all . find { |m | m . id == model_id } ||
81+ all . find { |m | m . id == Aliases . resolve ( model_id ) } ||
82+ raise ( ModelNotFoundError , "Unknown model: #{ model_id } " )
9083 end
9184
9285 # Filter to only chat models
@@ -123,5 +116,13 @@ def by_provider(provider)
123116 def refresh!
124117 self . class . refresh!
125118 end
119+
120+ private
121+
122+ def find_with_provider ( model_id , provider )
123+ provider_id = Aliases . resolve ( model_id , provider )
124+ all . find { |m | m . id == provider_id && m . provider == provider . to_s } ||
125+ raise ( ModelNotFoundError , "Unknown model: #{ model_id } for provider: #{ provider } " )
126+ end
126127 end
127128end
0 commit comments