From 618addd001077d9e4ed4d2a7aa03769a0ee0901b Mon Sep 17 00:00:00 2001 From: Heiner Lohaus Date: Tue, 12 Sep 2023 04:40:10 +0200 Subject: Disable not working providers: EasyChat, Equing, GetGpt, Liaobots and Wuguokai No and random best provider for a model Update providers in Readme --- g4f/__init__.py | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) (limited to 'g4f/__init__.py') diff --git a/g4f/__init__.py b/g4f/__init__.py index 065acee6..90b05c85 100644 --- a/g4f/__init__.py +++ b/g4f/__init__.py @@ -2,6 +2,7 @@ from __future__ import annotations from . import models from .Provider import BaseProvider from .typing import Any, CreateResult, Union +import random logging = False @@ -13,14 +14,22 @@ class ChatCompletion: provider : Union[type[BaseProvider], None] = None, stream : bool = False, auth : Union[str, None] = None, **kwargs: Any) -> Union[CreateResult, str]: - + if isinstance(model, str): try: model = models.ModelUtils.convert[model] except KeyError: raise Exception(f'The model: {model} does not exist') - provider = model.best_provider if provider == None else provider + + if not provider: + if isinstance(model.best_provider, tuple): + provider = random.choice(model.best_provider) + else: + provider = model.best_provider + + if not provider: + raise Exception(f'No provider found') if not provider.working: raise Exception(f'{provider.__name__} is not working') -- cgit v1.2.3