返回提交历史
Modified
g4f/Provider/needs_auth/Gemini.py
+7
-4
XFEstudio/gpt4free
Update Gemini.py
674ba8f2
代码差异
1 个文件
+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: