@@ -41,18 +41,20 @@ def client(self) -> AsyncOpenAI:
4141 return self ._client
4242
4343 def model_profile (self , model_name : str ) -> ModelProfile | None :
44- if 'deepseek' in model_name .lower ():
45- profile = deepseek_model_profile (model_name )
46- elif 'llama' in model_name .lower ():
47- profile = meta_model_profile (model_name )
48- elif 'mistral' in model_name .lower ():
49- profile = mistral_model_profile (model_name )
50- elif 'qwen' in model_name .lower ():
51- profile = qwen_model_profile (model_name )
52- elif 'openai' in model_name .lower () or 'gpt' in model_name :
53- profile = harmony_model_profile (model_name )
54- else :
55- profile = None
44+ profile = None
45+
46+ prefix_to_profile = {
47+ 'llama' : meta_model_profile ,
48+ 'meta-' : meta_model_profile ,
49+ 'deepseek' : deepseek_model_profile ,
50+ 'mistral' : mistral_model_profile ,
51+ 'gpt' : harmony_model_profile ,
52+ 'qwen' : qwen_model_profile ,
53+ }
54+
55+ for prefix , profile_func in prefix_to_profile .items ():
56+ if model_name .lower ().startswith (prefix ):
57+ profile = profile_func (model_name )
5658
5759 # As the OVHcloud AI Endpoints API is OpenAI-compatible, let's assume we also need OpenAIJsonSchemaTransformer.
5860 return OpenAIModelProfile (json_schema_transformer = OpenAIJsonSchemaTransformer ).update (profile )
0 commit comments