mirror of https://github.com/xtekky/gpt4free.git
Update Gemini.py
This commit is contained in:
parent
1baca306c4
commit
674ba8f2c5
|
@ -19,6 +19,7 @@ except ImportError:
|
||||||
from ...typing import Messages, Cookies, ImageType, AsyncResult
|
from ...typing import Messages, Cookies, ImageType, AsyncResult
|
||||||
from ..base_provider import AsyncGeneratorProvider
|
from ..base_provider import AsyncGeneratorProvider
|
||||||
from ..helper import format_prompt, get_cookies
|
from ..helper import format_prompt, get_cookies
|
||||||
|
from requests.raise_for_status import raise_for_status
|
||||||
from ...errors import MissingAuthError, MissingRequirementsError
|
from ...errors import MissingAuthError, MissingRequirementsError
|
||||||
from ...image import to_bytes, ImageResponse
|
from ...image import to_bytes, ImageResponse
|
||||||
from ...webdriver import get_browser, get_driver_cookies
|
from ...webdriver import get_browser, get_driver_cookies
|
||||||
|
@ -128,6 +129,7 @@ class Gemini(AsyncGeneratorProvider):
|
||||||
data=data,
|
data=data,
|
||||||
params=params,
|
params=params,
|
||||||
) as response:
|
) as response:
|
||||||
|
await raise_for_status(response)
|
||||||
response = await response.text()
|
response = await response.text()
|
||||||
response_part = json.loads(json.loads(response.splitlines()[-5])[0][2])
|
response_part = json.loads(json.loads(response.splitlines()[-5])[0][2])
|
||||||
if response_part[4] is None:
|
if response_part[4] is None:
|
||||||
|
@ -185,7 +187,7 @@ class Gemini(AsyncGeneratorProvider):
|
||||||
connector=connector
|
connector=connector
|
||||||
) as session:
|
) as session:
|
||||||
async with session.options(UPLOAD_IMAGE_URL) as reponse:
|
async with session.options(UPLOAD_IMAGE_URL) as reponse:
|
||||||
reponse.raise_for_status()
|
await raise_for_status(response)
|
||||||
|
|
||||||
headers = {
|
headers = {
|
||||||
"size": str(len(image)),
|
"size": str(len(image)),
|
||||||
|
@ -195,23 +197,24 @@ class Gemini(AsyncGeneratorProvider):
|
||||||
async with session.post(
|
async with session.post(
|
||||||
UPLOAD_IMAGE_URL, headers=headers, data=data
|
UPLOAD_IMAGE_URL, headers=headers, data=data
|
||||||
) as response:
|
) as response:
|
||||||
response.raise_for_status()
|
await raise_for_status(response)
|
||||||
upload_url = response.headers["X-Goog-Upload-Url"]
|
upload_url = response.headers["X-Goog-Upload-Url"]
|
||||||
|
|
||||||
async with session.options(upload_url, headers=headers) as response:
|
async with session.options(upload_url, headers=headers) as response:
|
||||||
response.raise_for_status()
|
await raise_for_status(response)
|
||||||
|
|
||||||
headers["x-goog-upload-command"] = "upload, finalize"
|
headers["x-goog-upload-command"] = "upload, finalize"
|
||||||
headers["X-Goog-Upload-Offset"] = "0"
|
headers["X-Goog-Upload-Offset"] = "0"
|
||||||
async with session.post(
|
async with session.post(
|
||||||
upload_url, headers=headers, data=image
|
upload_url, headers=headers, data=image
|
||||||
) as response:
|
) as response:
|
||||||
response.raise_for_status()
|
await raise_for_status(response)
|
||||||
return await response.text()
|
return await response.text()
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
async def fetch_snlm0e(cls, session: ClientSession, cookies: Cookies):
|
async def fetch_snlm0e(cls, session: ClientSession, cookies: Cookies):
|
||||||
async with session.get(cls.url, cookies=cookies) as response:
|
async with session.get(cls.url, cookies=cookies) as response:
|
||||||
|
await raise_for_status(response)
|
||||||
text = await response.text()
|
text = await response.text()
|
||||||
match = re.search(r'SNlM0e\":\"(.*?)\"', text)
|
match = re.search(r'SNlM0e\":\"(.*?)\"', text)
|
||||||
if match:
|
if match:
|
||||||
|
|
Loading…
Reference in New Issue