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

XFEstudio/gpt4free

Update Gemini.py

674ba8f2
H Lohaus <hlohaus@users.noreply.github.com>
提交于

代码差异

1 个文件 +7 -4
Modified g4f/Provider/needs_auth/Gemini.py +7 -4
@@ -19,6 +19,7 @@ except ImportError:
19 19 from ...typing import Messages, Cookies, ImageType, AsyncResult
20 20 from ..base_provider import AsyncGeneratorProvider
21 21 from ..helper import format_prompt, get_cookies
22 from requests.raise_for_status import raise_for_status
22 23 from ...errors import MissingAuthError, MissingRequirementsError
23 24 from ...image import to_bytes, ImageResponse
24 25 from ...webdriver import get_browser, get_driver_cookies
@@ -128,6 +129,7 @@ class Gemini(AsyncGeneratorProvider):
128 129 data=data,
129 130 params=params,
130 131 ) as response:
132 await raise_for_status(response)
131 133 response = await response.text()
132 134 response_part = json.loads(json.loads(response.splitlines()[-5])[0][2])
133 135 if response_part[4] is None:
@@ -185,7 +187,7 @@ class Gemini(AsyncGeneratorProvider):
185 187 connector=connector
186 188 ) as session:
187 189 async with session.options(UPLOAD_IMAGE_URL) as reponse:
188 reponse.raise_for_status()
190 await raise_for_status(response)
189 191
190 192 headers = {
191 193 "size": str(len(image)),
@@ -195,23 +197,24 @@ class Gemini(AsyncGeneratorProvider):
195 197 async with session.post(
196 198 UPLOAD_IMAGE_URL, headers=headers, data=data
197 199 ) as response:
198 response.raise_for_status()
200 await raise_for_status(response)
199 201 upload_url = response.headers["X-Goog-Upload-Url"]
200 202
201 203 async with session.options(upload_url, headers=headers) as response:
202 response.raise_for_status()
204 await raise_for_status(response)
203 205
204 206 headers["x-goog-upload-command"] = "upload, finalize"
205 207 headers["X-Goog-Upload-Offset"] = "0"
206 208 async with session.post(
207 209 upload_url, headers=headers, data=image
208 210 ) as response:
209 response.raise_for_status()
211 await raise_for_status(response)
210 212 return await response.text()
211 213
212 214 @classmethod
213 215 async def fetch_snlm0e(cls, session: ClientSession, cookies: Cookies):
214 216 async with session.get(cls.url, cookies=cookies) as response:
217 await raise_for_status(response)
215 218 text = await response.text()
216 219 match = re.search(r'SNlM0e\":\"(.*?)\"', text)
217 220 if match: