diff --git a/etc/unittest/models.py b/etc/unittest/models.py index 79641f33..34f58a66 100644 --- a/etc/unittest/models.py +++ b/etc/unittest/models.py @@ -19,7 +19,7 @@ class TestProviderHasModel(unittest.TestCase): if model.name in provider.model_aliases: model_name = provider.model_aliases[model.name] else: - model_name = model.name + model_name = model.get_long_name() self.provider_has_model(provider, model_name) def provider_has_model(self, provider: Type[BaseProvider], model: str): @@ -29,7 +29,8 @@ class TestProviderHasModel(unittest.TestCase): except (MissingRequirementsError, MissingAuthError): return if self.cache[provider.__name__]: - self.assertIn(model, self.cache[provider.__name__], provider.__name__) + if not model in provider.model_aliases: + self.assertIn(model, self.cache[provider.__name__], provider.__name__) def test_all_providers_working(self): for model, providers in __models__.values(): diff --git a/g4f/Provider/Kimi.py b/g4f/Provider/Kimi.py index 57ab9694..bbcd8b12 100644 --- a/g4f/Provider/Kimi.py +++ b/g4f/Provider/Kimi.py @@ -16,6 +16,7 @@ class Kimi(AsyncAuthedProvider, ProviderModelMixin): active_by_default = True default_model = "kimi-k2" models = [default_model] + model_aliases = {"moonshotai/Kimi-K2-Instruct": default_model} @classmethod async def on_auth_async(cls, proxy: str = None, **kwargs) -> AsyncIterator: diff --git a/g4f/Provider/PollinationsAI.py b/g4f/Provider/PollinationsAI.py index de6ea6ef..8a55d07e 100644 --- a/g4f/Provider/PollinationsAI.py +++ b/g4f/Provider/PollinationsAI.py @@ -88,7 +88,8 @@ class PollinationsAI(AsyncGeneratorProvider, ProviderModelMixin): vision_models = [default_vision_model] _models_loaded = False model_aliases = { - "gpt-4.1-nano": "openai", + "gpt-4.1-mini": "openai", + "gpt-4.1-nano": "openai-fast", "gpt-4.1": "openai-large", "o4-mini": "openai-reasoning", "qwen-2.5-coder-32b": "qwen-coder", diff --git a/g4f/models.py b/g4f/models.py index 3199a14e..1bb69cc1 100644 --- a/g4f/models.py +++ b/g4f/models.py @@ -197,20 +197,20 @@ default_vision = VisionModel( gpt_4 = Model( name = 'gpt-4', base_provider = 'OpenAI', - best_provider = IterListProvider([Blackbox, PollinationsAI, Copilot, Yqcloud, WeWordle, OpenaiChat]) + best_provider = IterListProvider([Blackbox, Copilot, Yqcloud, WeWordle, OpenaiChat]) ) # gpt-4o gpt_4o = VisionModel( name = 'gpt-4o', base_provider = 'OpenAI', - best_provider = IterListProvider([Blackbox, PollinationsAI, OpenaiChat]) + best_provider = IterListProvider([Blackbox, OpenaiChat]) ) gpt_4o_mini = Model( name = 'gpt-4o-mini', base_provider = 'OpenAI', - best_provider = IterListProvider([Blackbox, PollinationsAI, Chatai, OIVSCodeSer2, Startnest, OpenaiChat]) + best_provider = IterListProvider([Blackbox, Chatai, OIVSCodeSer2, Startnest, OpenaiChat]) ) gpt_4o_mini_audio = AudioModel(