From 2b5f6a4259f9cde7bffb2b24550dd079675cc87a Mon Sep 17 00:00:00 2001 From: Heiner Lohaus Date: Sun, 12 Jan 2025 17:27:04 +0100 Subject: Fix ignored providers --- g4f/Provider/needs_auth/Custom.py | 11 +++++++++++ g4f/Provider/needs_auth/OpenaiAPI.py | 2 +- g4f/Provider/needs_auth/__init__.py | 1 + g4f/client/__init__.py | 2 -- g4f/gui/server/api.py | 17 +++++++++++------ 5 files changed, 24 insertions(+), 9 deletions(-) create mode 100644 g4f/Provider/needs_auth/Custom.py (limited to 'g4f') diff --git a/g4f/Provider/needs_auth/Custom.py b/g4f/Provider/needs_auth/Custom.py new file mode 100644 index 00000000..d78e5e28 --- /dev/null +++ b/g4f/Provider/needs_auth/Custom.py @@ -0,0 +1,11 @@ +from __future__ import annotations + +from .OpenaiAPI import OpenaiAPI + +class Custom(OpenaiAPI): + label = "Custom" + url = None + login_url = "http://localhost:8080" + working = True + api_base = "http://localhost:8080/v1" + needs_auth = False \ No newline at end of file diff --git a/g4f/Provider/needs_auth/OpenaiAPI.py b/g4f/Provider/needs_auth/OpenaiAPI.py index 927acd69..3cc558bd 100644 --- a/g4f/Provider/needs_auth/OpenaiAPI.py +++ b/g4f/Provider/needs_auth/OpenaiAPI.py @@ -36,7 +36,7 @@ class OpenaiAPI(AsyncGeneratorProvider, ProviderModelMixin, RaiseErrorMixin): response = requests.get(f"{api_base}/models", headers=headers) raise_for_status(response) data = response.json() - cls.models = [model.get("id") for model in data.get("data")] + cls.models = [model.get("id") for model in (data.get("data") if isinstance(data, dict) else data)] cls.models.sort() except Exception as e: debug.log(e) diff --git a/g4f/Provider/needs_auth/__init__.py b/g4f/Provider/needs_auth/__init__.py index 119a118d..96241d6a 100644 --- a/g4f/Provider/needs_auth/__init__.py +++ b/g4f/Provider/needs_auth/__init__.py @@ -3,6 +3,7 @@ from .gigachat import * from .BingCreateImages import BingCreateImages from .Cerebras import Cerebras from .CopilotAccount import CopilotAccount +from .Custom import Custom from .DeepInfra import DeepInfra from .DeepInfraImage import DeepInfraImage from .DeepSeek import DeepSeek diff --git a/g4f/client/__init__.py b/g4f/client/__init__.py index cd2a43fe..69ed37fe 100644 --- a/g4f/client/__init__.py +++ b/g4f/client/__init__.py @@ -246,7 +246,6 @@ class Completions: model, self.provider if provider is None else provider, stream, - ignored, ignore_working, ignore_stream, ) @@ -535,7 +534,6 @@ class AsyncCompletions: model, self.provider if provider is None else provider, stream, - ignored, ignore_working, ignore_stream, ) diff --git a/g4f/gui/server/api.py b/g4f/gui/server/api.py index f7f0f565..ff4358c2 100644 --- a/g4f/gui/server/api.py +++ b/g4f/gui/server/api.py @@ -144,12 +144,17 @@ class Api: debug.log = decorated_log proxy = os.environ.get("G4F_PROXY") provider = kwargs.get("provider") - model, provider_handler = get_model_and_provider( - kwargs.get("model"), provider, - stream=True, - ignore_stream=True, - logging=False - ) + try: + model, provider_handler = get_model_and_provider( + kwargs.get("model"), provider, + stream=True, + ignore_stream=True, + logging=False + ) + except Exception as e: + logger.exception(e) + yield self._format_json('error', get_error_message(e)) + return params = { **(provider_handler.get_parameters(as_json=True) if hasattr(provider_handler, "get_parameters") else {}), "model": model, -- cgit v1.2.3