From 80b2e9b80774c558cb863841e7e8214fbc0eca67 Mon Sep 17 00:00:00 2001 From: Heiner Lohaus Date: Mon, 20 May 2024 01:28:08 +0200 Subject: Add some options to messages in gui, saves generated images local --- g4f/Provider/needs_auth/Gemini.py | 9 ++------ g4f/client/async_client.py | 3 ++- g4f/gui/client/index.html | 4 ++-- g4f/gui/client/static/css/style.css | 42 +++++++++++++++++++++++++-------- g4f/gui/client/static/js/chat.v1.js | 24 +++++++++++++++++++ g4f/gui/server/api.py | 46 ++++++++++++++++++++++++++++--------- g4f/gui/server/backend.py | 8 +++---- 7 files changed, 101 insertions(+), 35 deletions(-) (limited to 'g4f') diff --git a/g4f/Provider/needs_auth/Gemini.py b/g4f/Provider/needs_auth/Gemini.py index f9b1c4a5..71cc8d81 100644 --- a/g4f/Provider/needs_auth/Gemini.py +++ b/g4f/Provider/needs_auth/Gemini.py @@ -4,7 +4,6 @@ import os import json import random import re -import base64 from aiohttp import ClientSession, BaseConnector @@ -193,14 +192,10 @@ class Gemini(AsyncGeneratorProvider): yield content if image_prompt: images = [image[0][3][3] for image in response_part[4][0][12][7][0]] - resolved_images = [] if response_format == "b64_json": - for image in images: - async with client.get(image) as response: - data = base64.b64encode(await response.content.read()).decode() - resolved_images.append(data) - yield ImageDataResponse(resolved_images, image_prompt) + yield ImageResponse(images, image_prompt, {"cookies": cls._cookies}) else: + resolved_images = [] preview = [] for image in images: async with client.get(image, allow_redirects=False) as fetch: diff --git a/g4f/client/async_client.py b/g4f/client/async_client.py index 1508e566..a97b4d7a 100644 --- a/g4f/client/async_client.py +++ b/g4f/client/async_client.py @@ -171,7 +171,8 @@ async def iter_image_response( if isinstance(chunk, ImageProviderResponse): if response_format == "b64_json": async with ClientSession( - connector=get_connector(connector, proxy) + connector=get_connector(connector, proxy), + cookies=chunk.options.get("cookies") ) as session: async def fetch_image(image): async with session.get(image) as response: diff --git a/g4f/gui/client/index.html b/g4f/gui/client/index.html index 3c428f38..a2f883d9 100644 --- a/g4f/gui/client/index.html +++ b/g4f/gui/client/index.html @@ -32,10 +32,10 @@ - - +