From bbb858249bc055819aad331cff326fa9a722b578 Mon Sep 17 00:00:00 2001 From: H Lohaus Date: Tue, 17 Dec 2024 21:17:40 +0100 Subject: Improve gradient in gui, show only models with enabled providers (#2492) - **Cloudflare Provider**: Added error handling for missing requirements when fetching arguments. - **Copilot Provider**: Updated the prompt formatting to use a maximum length function, improving message handling. - **PollinationsAI Provider**: Adjusted the prompt length to a maximum of 5000 characters. - **GitHub Copilot Provider**: Updated to use `ClientSession` for better session management. - **CSS Updates**: Enhanced the gradient styling in the GUI for a more visually appealing interface. - **JavaScript Updates**: Added functionality to toggle search options in the chat interface. --- g4f/client/__init__.py | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) (limited to 'g4f/client') diff --git a/g4f/client/__init__.py b/g4f/client/__init__.py index ec3fec00..dee3fa30 100644 --- a/g4f/client/__init__.py +++ b/g4f/client/__init__.py @@ -16,7 +16,6 @@ from ..errors import NoImageResponseError from ..providers.retry_provider import IterListProvider from ..providers.asyncio import to_sync_generator, async_generator_to_list from ..Provider.needs_auth import BingCreateImages, OpenaiAccount -from ..image import to_bytes from .stubs import ChatCompletion, ChatCompletionChunk, Image, ImagesResponse from .image_models import ImageModels from .types import IterResponse, ImageProvider, Client as BaseClient @@ -59,7 +58,7 @@ def iter_response( elif isinstance(chunk, BaseConversation): yield chunk continue - elif isinstance(chunk, SynthesizeData) or chunk is None: + elif isinstance(chunk, SynthesizeData) or not chunk: continue chunk = str(chunk) @@ -122,7 +121,7 @@ async def async_iter_response( elif isinstance(chunk, BaseConversation): yield chunk continue - elif isinstance(chunk, SynthesizeData) or chunk is None: + elif isinstance(chunk, SynthesizeData) or not chunk: continue chunk = str(chunk) @@ -214,6 +213,8 @@ class Completions: stop = [stop] if isinstance(stop, str) else stop if image is not None: kwargs["images"] = [(image, image_name)] + if ignore_stream: + kwargs["ignore_stream"] = True response = provider.create_completion( model, messages, @@ -330,7 +331,6 @@ class Images: model: str, prompt: str, prompt_prefix: str = "Generate a image: ", - image: ImageType = None, **kwargs ) -> ImageResponse: messages = [{"role": "user", "content": f"{prompt_prefix}{prompt}"}] @@ -341,7 +341,6 @@ class Images: messages, stream=True, prompt=prompt, - image=image, **kwargs ): if isinstance(item, ImageResponse): @@ -353,7 +352,6 @@ class Images: messages, True, prompt=prompt, - image=image, **kwargs ): if isinstance(item, ImageResponse): @@ -389,20 +387,22 @@ class Images: if proxy is None: proxy = self.client.proxy prompt = "create a variation of this image" + if image is not None: + kwargs["images"] = [(image, None)] e = None response = None if isinstance(provider_handler, IterListProvider): for provider in provider_handler.providers: try: - response = await self._generate_image_response(provider, provider.__name__, model, prompt, image=image, **kwargs) + response = await self._generate_image_response(provider, provider.__name__, model, prompt, **kwargs) if response is not None: provider_name = provider.__name__ break except Exception as e: debug.log(f"Image provider {provider.__name__}: {e}") else: - response = await self._generate_image_response(provider_handler, provider_name, model, prompt, image=image, **kwargs) + response = await self._generate_image_response(provider_handler, provider_name, model, prompt, **kwargs) if isinstance(response, ImageResponse): return await self._process_image_response(response, response_format, proxy, model, provider_name) @@ -494,6 +494,8 @@ class AsyncCompletions: stop = [stop] if isinstance(stop, str) else stop if image is not None: kwargs["images"] = [(image, image_name)] + if ignore_stream: + kwargs["ignore_stream"] = True if hasattr(provider, "create_async_generator"): create_handler = provider.create_async_generator else: -- cgit v1.2.3