返回提交历史
Modified
g4f/Provider/You.py
+8
-4
Modified
g4f/image.py
+7
-0
XFEstudio/gpt4free
Fix image vision in You.com provider
62b2b279
代码差异
2 个文件
+15
-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,
@@ -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.