mirror of
https://github.com/xtekky/gpt4free.git
synced 2025-11-03 10:30:57 +08:00
Add multiple images support (#2478)
* Add multiple images support * Add multiple images support in gui * Support multiple images in legacy client and in the api Fix some model names in provider model list * Fix unittests * Add vision and providers docs
This commit is contained in:
@@ -4,7 +4,7 @@ import asyncio
|
||||
|
||||
from g4f.models import __models__
|
||||
from g4f.providers.base_provider import BaseProvider, ProviderModelMixin
|
||||
from g4f.models import Model
|
||||
from g4f.errors import MissingRequirementsError, MissingAuthError
|
||||
|
||||
class TestProviderHasModel(unittest.IsolatedAsyncioTestCase):
|
||||
cache: dict = {}
|
||||
@@ -13,11 +13,17 @@ class TestProviderHasModel(unittest.IsolatedAsyncioTestCase):
|
||||
for model, providers in __models__.values():
|
||||
for provider in providers:
|
||||
if issubclass(provider, ProviderModelMixin):
|
||||
if model.name not in provider.model_aliases:
|
||||
await asyncio.wait_for(self.provider_has_model(provider, model), 10)
|
||||
if model.name in provider.model_aliases:
|
||||
model_name = provider.model_aliases[model.name]
|
||||
else:
|
||||
model_name = model.name
|
||||
await asyncio.wait_for(self.provider_has_model(provider, model_name), 10)
|
||||
|
||||
async def provider_has_model(self, provider: Type[BaseProvider], model: Model):
|
||||
async def provider_has_model(self, provider: Type[BaseProvider], model: str):
|
||||
if provider.__name__ not in self.cache:
|
||||
self.cache[provider.__name__] = provider.get_models()
|
||||
try:
|
||||
self.cache[provider.__name__] = provider.get_models()
|
||||
except (MissingRequirementsError, MissingAuthError):
|
||||
return
|
||||
if self.cache[provider.__name__]:
|
||||
self.assertIn(model.name, self.cache[provider.__name__], provider.__name__)
|
||||
self.assertIn(model, self.cache[provider.__name__], provider.__name__)
|
||||
Reference in New Issue
Block a user