diff options
author | Heiner Lohaus <heiner@lohaus.eu> | 2023-09-12 00:47:03 +0200 |
---|---|---|
committer | Heiner Lohaus <heiner@lohaus.eu> | 2023-09-12 00:47:03 +0200 |
commit | d6382a2145e7e1c90b3795e3116e3c574e787868 (patch) | |
tree | 52e10e6314c9b9643ac91171dce58d5273cca575 /g4f/Provider/You.py | |
parent | ~ | 0.0.2.8 (diff) | |
download | gpt4free-d6382a2145e7e1c90b3795e3116e3c574e787868.tar gpt4free-d6382a2145e7e1c90b3795e3116e3c574e787868.tar.gz gpt4free-d6382a2145e7e1c90b3795e3116e3c574e787868.tar.bz2 gpt4free-d6382a2145e7e1c90b3795e3116e3c574e787868.tar.lz gpt4free-d6382a2145e7e1c90b3795e3116e3c574e787868.tar.xz gpt4free-d6382a2145e7e1c90b3795e3116e3c574e787868.tar.zst gpt4free-d6382a2145e7e1c90b3795e3116e3c574e787868.zip |
Diffstat (limited to '')
-rw-r--r-- | g4f/Provider/You.py | 40 |
1 files changed, 20 insertions, 20 deletions
diff --git a/g4f/Provider/You.py b/g4f/Provider/You.py index 121d1dbd..4f49f15e 100644 --- a/g4f/Provider/You.py +++ b/g4f/Provider/You.py @@ -2,39 +2,39 @@ from __future__ import annotations import json -from aiohttp import ClientSession +from curl_cffi.requests import AsyncSession from ..typing import AsyncGenerator -from .base_provider import AsyncGeneratorProvider, format_prompt, get_cookies +from .base_provider import AsyncGeneratorProvider, format_prompt class You(AsyncGeneratorProvider): url = "https://you.com" working = True supports_gpt_35_turbo = True - supports_stream = True + supports_stream = False - @staticmethod + + @classmethod async def create_async_generator( + cls, model: str, messages: list[dict[str, str]], - cookies: dict = None, + proxy: str = None, **kwargs, ) -> AsyncGenerator: - if not cookies: - cookies = get_cookies("you.com") - headers = { - "Accept": "text/event-stream", - "Referer": "https://you.com/search?fromSearchBar=true&tbm=youchat", - "User-Agent": "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/116.0" - } - async with ClientSession(headers=headers, cookies=cookies) as session: - async with session.get( + async with AsyncSession(proxies={"https": proxy}, impersonate="chrome107") as session: + headers = { + "Accept": "text/event-stream", + "Referer": "https://you.com/search?fromSearchBar=true&tbm=youchat", + } + response = await session.get( "https://you.com/api/streamingSearch", params={"q": format_prompt(messages), "domain": "youchat", "chat": ""}, - ) as response: - start = 'data: {"youChatToken": ' - async for line in response.content: - line = line.decode('utf-8') - if line.startswith(start): - yield json.loads(line[len(start): -2])
\ No newline at end of file + headers=headers + ) + response.raise_for_status() + start = 'data: {"youChatToken": ' + for line in response.text.splitlines(): + if line.startswith(start): + yield json.loads(line[len(start): -1])
\ No newline at end of file |