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

XFEstudio/gpt4free

Read cookies from config in Gemini Fixes for OpenaiChat Provider

af204c31
Heiner Lohaus <hlohaus@users.noreply.github.com>
提交于

代码差异

5 个文件 +14 -9
Modified g4f/Provider/CreateImagesBing.py +2 -2
@@ -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"})
Modified g4f/Provider/needs_auth/Gemini.py +3 -2
@@ -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)
Modified g4f/Provider/needs_auth/OpenaiChat.py +2 -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:
Modified g4f/cookies.py +5 -3
@@ -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:
Modified g4f/webdriver.py +2 -1
@@ -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: