From a26421bcd8b8580650fa05b3fb4f8fdfa0ef9921 Mon Sep 17 00:00:00 2001 From: Heiner Lohaus Date: Sun, 21 Apr 2024 15:15:55 +0200 Subject: Add image model list --- g4f/gui/server/api.py | 28 ++++++++++++++++++++++++---- g4f/gui/server/backend.py | 4 ++++ 2 files changed, 28 insertions(+), 4 deletions(-) (limited to 'g4f/gui') diff --git a/g4f/gui/server/api.py b/g4f/gui/server/api.py index 47c25eb7..435700ea 100644 --- a/g4f/gui/server/api.py +++ b/g4f/gui/server/api.py @@ -16,7 +16,8 @@ conversations: dict[dict[str, BaseConversation]] = {} class Api(): - def get_models(self) -> list[str]: + @staticmethod + def get_models() -> list[str]: """ Return a list of all models. @@ -27,7 +28,8 @@ class Api(): """ return models._all_models - def get_provider_models(self, provider: str) -> list[dict]: + @staticmethod + def get_provider_models(provider: str) -> list[dict]: if provider in __map__: provider: ProviderType = __map__[provider] if issubclass(provider, ProviderModelMixin): @@ -40,7 +42,24 @@ class Api(): else: return []; - def get_providers(self) -> list[str]: + @staticmethod + def get_image_models() -> list[dict]: + image_models = [] + for key, provider in __map__.items(): + if hasattr(provider, "image_models"): + if hasattr(provider, "get_models"): + provider.get_models() + for model in provider.image_models: + image_models.append({ + "provider": key, + "url": provider.url, + "label": provider.label if hasattr(provider, "label") else None, + "image_model": model + }) + return image_models + + @staticmethod + def get_providers() -> list[str]: """ Return a list of all working providers. """ @@ -58,7 +77,8 @@ class Api(): if provider.working } - def get_version(self): + @staticmethod + def get_version(): """ Returns the current and latest version of the application. diff --git a/g4f/gui/server/backend.py b/g4f/gui/server/backend.py index d30b97d9..d9e31c0e 100644 --- a/g4f/gui/server/backend.py +++ b/g4f/gui/server/backend.py @@ -31,6 +31,10 @@ class Backend_Api(Api): 'function': self.get_provider_models, 'methods': ['GET'] }, + '/backend-api/v2/image_models': { + 'function': self.get_image_models, + 'methods': ['GET'] + }, '/backend-api/v2/providers': { 'function': self.get_providers, 'methods': ['GET'] -- cgit v1.2.3 From 3a23e81de93c4c9a83aa22b70ea13066f06541e3 Mon Sep 17 00:00:00 2001 From: Heiner Lohaus Date: Sun, 21 Apr 2024 22:39:00 +0200 Subject: Add Replicate Provider Fix Bug in OpenaiChat and MetaAI Add read cookie and .har files Use factory for api app --- g4f/gui/__init__.py | 3 --- g4f/gui/gui_parser.py | 1 + g4f/gui/run.py | 6 ++++++ 3 files changed, 7 insertions(+), 3 deletions(-) (limited to 'g4f/gui') diff --git a/g4f/gui/__init__.py b/g4f/gui/__init__.py index f5e448ad..930a2aa0 100644 --- a/g4f/gui/__init__.py +++ b/g4f/gui/__init__.py @@ -12,9 +12,6 @@ def run_gui(host: str = '0.0.0.0', port: int = 8080, debug: bool = False) -> Non if import_error is not None: raise MissingRequirementsError(f'Install "gui" requirements | pip install -U g4f[gui]\n{import_error}') - if debug: - from g4f import debug - debug.logging = True config = { 'host' : host, 'port' : port, diff --git a/g4f/gui/gui_parser.py b/g4f/gui/gui_parser.py index ad458f5c..9fd70bef 100644 --- a/g4f/gui/gui_parser.py +++ b/g4f/gui/gui_parser.py @@ -5,4 +5,5 @@ def gui_parser(): parser.add_argument("-host", type=str, default="0.0.0.0", help="hostname") parser.add_argument("-port", type=int, default=8080, help="port") parser.add_argument("-debug", action="store_true", help="debug mode") + parser.add_argument("--ignore-cookie-files", action="store_true", help="Don't read .har and cookie files.") return parser \ No newline at end of file diff --git a/g4f/gui/run.py b/g4f/gui/run.py index 91314d2d..9b1c527c 100644 --- a/g4f/gui/run.py +++ b/g4f/gui/run.py @@ -1,6 +1,12 @@ from .gui_parser import gui_parser +from ..cookies import read_cookie_files +import g4f.debug def run_gui_args(args): + if args.debug: + g4f.debug.logging = True + if not args.ignore_cookie_files: + read_cookie_files() from g4f.gui import run_gui host = args.host port = args.port -- cgit v1.2.3 From 4bc4d635bca9c1c7633ff87ff24b757c653ff60f Mon Sep 17 00:00:00 2001 From: Heiner Lohaus Date: Mon, 22 Apr 2024 01:27:48 +0200 Subject: Add vision models to readme --- g4f/gui/server/api.py | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) (limited to 'g4f/gui') diff --git a/g4f/gui/server/api.py b/g4f/gui/server/api.py index 435700ea..3d9f6a1c 100644 --- a/g4f/gui/server/api.py +++ b/g4f/gui/server/api.py @@ -45,16 +45,20 @@ class Api(): @staticmethod def get_image_models() -> list[dict]: image_models = [] - for key, provider in __map__.items(): + for provider in __providers__: if hasattr(provider, "image_models"): if hasattr(provider, "get_models"): provider.get_models() + parent = provider + if hasattr(provider, "parent"): + parent = __map__[provider.parent] for model in provider.image_models: image_models.append({ - "provider": key, - "url": provider.url, - "label": provider.label if hasattr(provider, "label") else None, - "image_model": model + "provider": parent.__name__, + "url": parent.url, + "label": parent.label if hasattr(parent, "label") else None, + "image_model": model, + "vision_model": parent.default_vision_model if hasattr(parent, "default_vision_model") else None }) return image_models -- cgit v1.2.3