@@ -54,13 +54,12 @@ def merge(
5454 fallback_models = dict (litellm_models )
5555 fallback_deprecated = 0
5656 else :
57- fallback_models = {}
58- fallback_deprecated = 0
59- for key , entry in litellm_models .items ():
60- if _is_litellm_deprecated (entry ):
61- fallback_deprecated += 1
62- else :
63- fallback_models [key ] = entry
57+ fallback_models = {
58+ key : entry
59+ for key , entry in litellm_models .items ()
60+ if not _is_litellm_deprecated (entry )
61+ }
62+ fallback_deprecated = total_litellm - len (fallback_models )
6463 return CatalogResult (
6564 models = fallback_models ,
6665 stats = MergeStats (
@@ -86,40 +85,29 @@ def merge(
8685 for tz_key , tz_entry in litellm_models .items ():
8786 litellm_provider = tz_entry .get ("litellm_provider" , "" )
8887
89- # Check if provider is mapped to ai-models
90- if litellm_provider not in LITELLM_TO_RESEARCH :
91- if not config .include_deprecated and _is_litellm_deprecated (tz_entry ):
92- deprecated_removed += 1
93- continue
94- output [tz_key ] = tz_entry
95- unmatched += 1
96- continue
97-
98- # Extract model name for lookup
99- original_key = tz_entry .get ("metadata" , {}).get ("original_key" , "" )
100- model_name = extract_model_name (litellm_provider , original_key )
101- research_provider = LITELLM_TO_RESEARCH [litellm_provider ]
88+ # Try to find a matching ai-models entry
89+ research_entry : dict | None = None
90+ if litellm_provider in LITELLM_TO_RESEARCH :
91+ original_key = tz_entry .get ("metadata" , {}).get ("original_key" , "" )
92+ model_name = extract_model_name (litellm_provider , original_key )
93+ research_provider = LITELLM_TO_RESEARCH [litellm_provider ]
94+ research_entry = research_lookup .get ((research_provider , model_name ))
95+
96+ # Determine deprecation status
97+ is_deprecated = _is_litellm_deprecated (tz_entry ) or (
98+ research_entry is not None and research_entry .get ("isDeprecated" , False )
99+ )
102100
103- # Look up in ai-models
104- research_key = ( research_provider , model_name )
105- research_entry = research_lookup . get ( research_key )
101+ if is_deprecated and not config . include_deprecated :
102+ deprecated_removed += 1
103+ continue
106104
105+ # No match — keep original LiteLLM entry as-is
107106 if research_entry is None :
108- if not config .include_deprecated and _is_litellm_deprecated (tz_entry ):
109- deprecated_removed += 1
110- continue
111107 output [tz_key ] = tz_entry
112108 unmatched += 1
113109 continue
114110
115- # Check deprecated (ai-models flag OR LiteLLM deprecation_date)
116- is_deprecated = research_entry .get ("isDeprecated" , False ) or _is_litellm_deprecated (
117- tz_entry
118- )
119- if is_deprecated and not config .include_deprecated :
120- deprecated_removed += 1
121- continue
122-
123111 # Overlay cost fields from ai-models
124112 research_costs = research_entry .get ("costs" , {})
125113 updated_entry = dict (tz_entry )
0 commit comments