返回提交历史
Modified
g4f/Provider/CreateImagesBing.py
+2
-2
Modified
g4f/Provider/needs_auth/Gemini.py
+3
-2
Modified
g4f/Provider/needs_auth/OpenaiChat.py
+2
-1
Modified
g4f/cookies.py
+5
-3
Modified
g4f/webdriver.py
+2
-1
XFEstudio/gpt4free
Read cookies from config in Gemini Fixes for OpenaiChat Provider
af204c31
代码差异
5 个文件
+14
-9
@@ -88,7 +88,7 @@ class CreateImagesBing:
88
88
cookies = self.cookies or get_cookies(".bing.com", False)
89
89
if "_U" not in cookies:
90
90
raise MissingAuthError('Missing "_U" cookie')
91
proxy = os.environ.get("G4F_PROXY")
91
proxy = self.proxy or os.environ.get("G4F_PROXY")
92
92
async with create_session(cookies, proxy) as session:
93
images = await create_images(session, prompt, self.proxy)
93
images = await create_images(session, prompt, proxy)
94
94
return ImageResponse(images, prompt, {"preview": "{image}?w=200&h=200"})
@@ -66,6 +66,8 @@ class Gemini(AsyncGeneratorProvider):
66
66
prompt = format_prompt(messages)
67
67
68
68
if not cookies:
69
cookies = get_cookies(".google.com", False, True)
70
if "__Secure-1PSID" not in cookies or "__Secure-1PSIDCC" not in cookies:
69
71
driver = None
70
72
try:
71
73
driver = get_browser(proxy=proxy)
@@ -88,8 +90,6 @@ class Gemini(AsyncGeneratorProvider):
88
90
if driver:
89
91
driver.close()
90
92
91
if not cookies:
92
cookies = get_cookies(".google.com", False)
93
93
if "__Secure-1PSID" not in cookies:
94
94
raise MissingAuthError('Missing "__Secure-1PSID" cookie')
95
95
@@ -101,6 +101,7 @@ class Gemini(AsyncGeneratorProvider):
101
101
) as session:
102
102
async with session.get(cls.url, proxy=proxy) as response:
103
103
text = await response.text()
104
open("test.html", "w").write(text)
104
105
match = re.search(r'SNlM0e\":\"(.*?)\"', text)
105
106
if match:
106
107
snlm0e = match.group(1)
@@ -38,6 +38,7 @@ class OpenaiChat(AsyncGeneratorProvider, ProviderModelMixin):
38
38
supports_gpt_4 = True
39
39
default_model = None
40
40
models = ["gpt-3.5-turbo", "gpt-4", "gpt-4-gizmo"]
41
model_aliases = {"text-davinci-002-render-sha": "gpt-3.5-turbo"}
41
42
_cookies: dict = {}
42
43
43
44
@classmethod
@@ -403,7 +404,7 @@ class OpenaiChat(AsyncGeneratorProvider, ProviderModelMixin):
403
404
if "message_type" not in line["message"]["metadata"]:
404
405
continue
405
406
try:
406
image_response = await cls.get_generated_image(session, headers, line)
407
image_response = await cls.get_generated_image(session, auth_headers, line)
407
408
if image_response:
408
409
yield image_response
409
410
except Exception as e:
@@ -27,7 +27,7 @@ _cookies: Dict[str, Cookies] = {}
27
27
if has_browser_cookie3 and os.environ.get('DBUS_SESSION_BUS_ADDRESS') == "/dev/null":
28
28
_LinuxPasswordManager.get_password = lambda a, b: b"secret"
29
29
30
def get_cookies(domain_name: str = '', raise_requirements_error: bool = True) -> Dict[str, str]:
30
def get_cookies(domain_name: str = '', raise_requirements_error: bool = True, single_browser: bool = False) -> Dict[str, str]:
31
31
"""
32
32
Load cookies for a given domain from all supported browsers and cache the results.
33
33
@@ -40,7 +40,7 @@ def get_cookies(domain_name: str = '', raise_requirements_error: bool = True) ->
40
40
if domain_name in _cookies:
41
41
return _cookies[domain_name]
42
42
43
cookies = load_cookies_from_browsers(domain_name, raise_requirements_error)
43
cookies = load_cookies_from_browsers(domain_name, raise_requirements_error, single_browser)
44
44
_cookies[domain_name] = cookies
45
45
return cookies
46
46
@@ -50,7 +50,7 @@ def set_cookies(domain_name: str, cookies: Cookies = None) -> None:
50
50
elif domain_name in _cookies:
51
51
_cookies.pop(domain_name)
52
52
53
def load_cookies_from_browsers(domain_name: str, raise_requirements_error: bool = True) -> Cookies:
53
def load_cookies_from_browsers(domain_name: str, raise_requirements_error: bool = True, single_browser: bool = False) -> Cookies:
54
54
"""
55
55
Helper function to load cookies from various browsers.
56
56
@@ -73,6 +73,8 @@ def load_cookies_from_browsers(domain_name: str, raise_requirements_error: bool
73
73
for cookie in cookie_jar:
74
74
if cookie.name not in cookies:
75
75
cookies[cookie.name] = cookie.value
76
if single_browser and len(cookie_jar):
77
break
76
78
except BrowserCookieError:
77
79
pass
78
80
except Exception as e:
@@ -65,7 +65,8 @@ def get_browser(
65
65
options=options,
66
66
user_data_dir=user_data_dir,
67
67
driver_executable_path=driver,
68
headless=headless
68
headless=headless,
69
patcher_force_close=True
69
70
)
70
71
71
72
def get_driver_cookies(driver: WebDriver) -> Cookies: