diff options
Diffstat (limited to 'g4f/Provider/Aichat.py')
-rw-r--r-- | g4f/Provider/Aichat.py | 59 |
1 files changed, 34 insertions, 25 deletions
diff --git a/g4f/Provider/Aichat.py b/g4f/Provider/Aichat.py index ddc9eb1d..d32c99e1 100644 --- a/g4f/Provider/Aichat.py +++ b/g4f/Provider/Aichat.py @@ -4,7 +4,8 @@ from aiohttp import ClientSession from ..typing import Messages from .base_provider import AsyncProvider, format_prompt - +from .helper import get_cookies +from ..requests import StreamSession class Aichat(AsyncProvider): url = "https://chat-gpt.org/chat" @@ -15,27 +16,34 @@ class Aichat(AsyncProvider): async def create_async( model: str, messages: Messages, - proxy: str = None, - **kwargs - ) -> str: + proxy: str = None, **kwargs) -> str: + + cookies = get_cookies('chat-gpt.org') if not kwargs.get('cookies') else kwargs.get('cookies') + if not cookies: + raise RuntimeError(f"g4f.provider.Aichat requires cookies, [refresh https://chat-gpt.org on chrome]") + headers = { - "authority": "chat-gpt.org", - "accept": "*/*", - "cache-control": "no-cache", - "content-type": "application/json", - "origin": "https://chat-gpt.org", - "pragma": "no-cache", - "referer": "https://chat-gpt.org/chat", - "sec-ch-ua-mobile": "?0", - "sec-ch-ua-platform": '"macOS"', - "sec-fetch-dest": "empty", - "sec-fetch-mode": "cors", - "sec-fetch-site": "same-origin", - "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36", + 'authority': 'chat-gpt.org', + 'accept': '*/*', + 'accept-language': 'en,fr-FR;q=0.9,fr;q=0.8,es-ES;q=0.7,es;q=0.6,en-US;q=0.5,am;q=0.4,de;q=0.3', + 'content-type': 'application/json', + 'origin': 'https://chat-gpt.org', + 'referer': 'https://chat-gpt.org/chat', + 'sec-ch-ua': '"Chromium";v="118", "Google Chrome";v="118", "Not=A?Brand";v="99"', + 'sec-ch-ua-mobile': '?0', + 'sec-ch-ua-platform': '"macOS"', + 'sec-fetch-dest': 'empty', + 'sec-fetch-mode': 'cors', + 'sec-fetch-site': 'same-origin', + 'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36', } - async with ClientSession( - headers=headers - ) as session: + + async with StreamSession(headers=headers, + cookies=cookies, + timeout=6, + proxies={"https": proxy} if proxy else None, + impersonate="chrome110", verify=False) as session: + json_data = { "message": format_prompt(messages), "temperature": kwargs.get('temperature', 0.5), @@ -43,13 +51,14 @@ class Aichat(AsyncProvider): "top_p": kwargs.get('top_p', 1), "frequency_penalty": 0, } - async with session.post( - "https://chat-gpt.org/api/text", - proxy=proxy, - json=json_data - ) as response: + + async with session.post("https://chat-gpt.org/api/text", + json=json_data) as response: + response.raise_for_status() result = await response.json() + if not result['response']: raise Exception(f"Error Response: {result}") + return result["message"] |