XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet
公开
关注 0 Fork 0 Star 0
返回提交历史

XFEstudio/gpt4free

Fix image vision in You.com provider

62b2b279
Heiner Lohaus <hlohaus@users.noreply.github.com>
提交于

代码差异

2 个文件 +15 -4
Modified g4f/Provider/You.py +8 -4
@@ -8,7 +8,7 @@ import uuid
8 8 from ..typing import AsyncResult, Messages, ImageType, Cookies
9 9 from .base_provider import AsyncGeneratorProvider, ProviderModelMixin
10 10 from .helper import format_prompt
11 from ..image import ImageResponse, ImagePreview, to_bytes, is_accepted_format
11 from ..image import ImageResponse, ImagePreview, EXTENSIONS_MAP, to_bytes, is_accepted_format
12 12 from ..requests import StreamSession, FormData, raise_for_status
13 13 from .you.har_file import get_telemetry_ids
14 14 from .. import debug
@@ -94,6 +94,8 @@ class You(AsyncGeneratorProvider, ProviderModelMixin):
94 94 "q": format_prompt(messages),
95 95 "domain": "youchat",
96 96 "selectedChatMode": chat_mode,
97 "conversationTurnId": str(uuid.uuid4()),
98 "chatId": str(uuid.uuid4()),
97 99 }
98 100 params = {
99 101 "userFiles": upload,
@@ -106,8 +108,8 @@ class You(AsyncGeneratorProvider, ProviderModelMixin):
106 108
107 109 async with (session.post if chat_mode == "default" else session.get)(
108 110 f"{cls.url}/api/streamingSearch",
109 data=data,
110 params=params,
111 data=data if chat_mode == "default" else None,
112 params=params if chat_mode == "default" else data,
111 113 headers=headers,
112 114 cookies=cookies
113 115 ) as response:
@@ -142,7 +144,9 @@ class You(AsyncGeneratorProvider, ProviderModelMixin):
142 144 await raise_for_status(response)
143 145 upload_nonce = await response.text()
144 146 data = FormData()
145 data.add_field('file', file, content_type=is_accepted_format(file), filename=filename)
147 content_type = is_accepted_format(file)
148 filename = f"image.{EXTENSIONS_MAP[content_type]}" if filename is None else filename
149 data.add_field('file', file, content_type=content_type, filename=filename)
146 150 async with client.post(
147 151 f"{cls.url}/api/upload",
148 152 data=data,
Modified g4f/image.py +7 -0
@@ -16,6 +16,13 @@ from .errors import MissingRequirementsError
16 16
17 17 ALLOWED_EXTENSIONS = {'png', 'jpg', 'jpeg', 'gif', 'webp', 'svg'}
18 18
19 EXTENSIONS_MAP: dict[str, str] = {
20 "image/png": "png",
21 "image/jpeg": "jpg",
22 "image/gif": "gif",
23 "image/webp": "webp",
24 }
25
19 26 def to_image(image: ImageType, is_svg: bool = False) -> Image:
20 27 """
21 28 Converts the input image to a PIL Image object.