diff options
Diffstat (limited to 'g4f/__init__.py')
-rw-r--r-- | g4f/__init__.py | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/g4f/__init__.py b/g4f/__init__.py index 6c8e100e..6716c727 100644 --- a/g4f/__init__.py +++ b/g4f/__init__.py @@ -10,6 +10,7 @@ from .cookies import get_cookies, set_cookies from . import debug, version from .providers.types import BaseRetryProvider, ProviderType from .providers.base_provider import ProviderModelMixin +from .providers.retry_provider import RetryProvider def get_model_and_provider(model : Union[Model, str], provider : Union[ProviderType, str, None], @@ -43,7 +44,12 @@ def get_model_and_provider(model : Union[Model, str], version.utils.check_version() if isinstance(provider, str): - if provider in ProviderUtils.convert: + if " " in provider: + provider_list = [ProviderUtils.convert[p] for p in provider.split() if p in ProviderUtils.convert] + if not provider_list: + raise ProviderNotFoundError(f'Providers not found: {provider}') + provider = RetryProvider(provider_list, False) + elif provider in ProviderUtils.convert: provider = ProviderUtils.convert[provider] else: raise ProviderNotFoundError(f'Provider not found: {provider}') |