From e8bd24a25bb8737c4f6ef8ba656e74a58e74336a Mon Sep 17 00:00:00 2001 From: H Lohaus Date: Fri, 22 Nov 2024 01:50:48 +0100 Subject: Add speech synthesize from Gemini (#2404) * Improve slim docker image example, clean up OpenaiChat provider * Enhance event loop management for asynchronous generators * Fix attribute " shutdown_default_executor" not found in old python versions * asyncio file created with all async helpers * Add speech synthesize from Gemini. You can use it without a account --- g4f/providers/base_provider.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) (limited to 'g4f/providers/base_provider.py') diff --git a/g4f/providers/base_provider.py b/g4f/providers/base_provider.py index e2c2f46a..80a9e09d 100644 --- a/g4f/providers/base_provider.py +++ b/g4f/providers/base_provider.py @@ -66,11 +66,12 @@ class AbstractProvider(BaseProvider): @classmethod def get_parameters(cls) -> dict[str, Parameter]: - return signature( + return {name: parameter for name, parameter in signature( cls.create_async_generator if issubclass(cls, AsyncGeneratorProvider) else cls.create_async if issubclass(cls, AsyncProvider) else cls.create_completion - ).parameters + ).parameters.items() if name not in ["kwargs", "model", "messages"] + and (name != "stream" or cls.supports_stream)} @classmethod @property @@ -90,8 +91,6 @@ class AbstractProvider(BaseProvider): args = "" for name, param in cls.get_parameters().items(): - if name in ("self", "kwargs") or (name == "stream" and not cls.supports_stream): - continue args += f"\n {name}" args += f": {get_type_name(param.annotation)}" if param.annotation is not Parameter.empty else "" default_value = f'"{param.default}"' if isinstance(param.default, str) else param.default -- cgit v1.2.3