From 3f93d34cbf6bac6a7d91055ae17399844fdac478 Mon Sep 17 00:00:00 2001 From: H Lohaus Date: Sat, 30 Nov 2024 22:11:18 +0100 Subject: Add more contributers, add link to Swagger UI (#2443) * Add more contributers, add link to Swagger UI * Update Dockerfile-slim * Update retry_provider.py * Add html preview to gui, fix urls in website manifest * Missing chunks in OpenaiChat --- g4f/Provider/You.py | 4 ++-- g4f/Provider/needs_auth/OpenaiChat.py | 14 +++++++++----- 2 files changed, 11 insertions(+), 7 deletions(-) (limited to 'g4f/Provider') diff --git a/g4f/Provider/You.py b/g4f/Provider/You.py index 095d638f..2d4f7ca5 100644 --- a/g4f/Provider/You.py +++ b/g4f/Provider/You.py @@ -139,9 +139,9 @@ class You(AsyncGeneratorProvider, ProviderModelMixin): else: yield ImageResponse(match.group(2), match.group(1)) else: - yield data["t"] + yield data["t"] else: - yield data["t"] + yield data["t"] @classmethod async def upload_file(cls, client: StreamSession, cookies: Cookies, file: bytes, filename: str = None) -> dict: diff --git a/g4f/Provider/needs_auth/OpenaiChat.py b/g4f/Provider/needs_auth/OpenaiChat.py index 9378a8c7..9ad52a94 100644 --- a/g4f/Provider/needs_auth/OpenaiChat.py +++ b/g4f/Provider/needs_auth/OpenaiChat.py @@ -128,10 +128,13 @@ class OpenaiChat(AsyncGeneratorProvider, ProviderModelMixin): data=data_bytes, headers={ "Content-Type": image_data["mime_type"], - "x-ms-blob-type": "BlockBlob" + "x-ms-blob-type": "BlockBlob", + "x-ms-version": "2020-04-08", + "Origin": "https://chatgpt.com", + "Referer": "https://chatgpt.com/", } ) as response: - await raise_for_status(response, "Send file failed") + await raise_for_status(response) # Post the file ID to the service and get the download URL async with session.post( f"{cls.url}/backend-api/files/{image_data['file_id']}/uploaded", @@ -162,7 +165,7 @@ class OpenaiChat(AsyncGeneratorProvider, ProviderModelMixin): "id": str(uuid.uuid4()), "create_time": int(time.time()), "id": str(uuid.uuid4()), - "metadata": {"serialization_metadata": {"custom_symbol_offsets": []}, "system_hints": system_hints}, + "metadata": {"serialization_metadata": {"custom_symbol_offsets": []}, "system_hints": system_hints}, } for message in messages] # Check if there is an image response @@ -407,7 +410,8 @@ class OpenaiChat(AsyncGeneratorProvider, ProviderModelMixin): if isinstance(line, dict) and "v" in line: v = line.get("v") if isinstance(v, str) and fields.is_recipient: - yield v + if "p" not in line or line.get("p") == "/message/content/parts/0": + yield v elif isinstance(v, list) and fields.is_recipient: for m in v: if m.get("p") == "/message/content/parts/0": @@ -420,7 +424,7 @@ class OpenaiChat(AsyncGeneratorProvider, ProviderModelMixin): fields.conversation_id = v.get("conversation_id") debug.log(f"OpenaiChat: New conversation: {fields.conversation_id}") m = v.get("message", {}) - fields.is_recipient = m.get("recipient") == "all" + fields.is_recipient = m.get("recipient", "all") == "all" if fields.is_recipient: c = m.get("content", {}) if c.get("content_type") == "multimodal_text": -- cgit v1.2.3