From 88d2cbff099df00944ed6dfb6c73b1b5e8dfc7f9 Mon Sep 17 00:00:00 2001 From: Heiner Lohaus Date: Thu, 5 Oct 2023 05:13:37 +0200 Subject: Add AiAsk, Chatgpt4Online, ChatgptDemo and ChatgptX Provider Fix Bing, Liaobots and ChatgptAi Provider Add "gpt_35_long" model and custom timeout --- g4f/Provider/AItianhu.py | 17 ++++- g4f/Provider/AItianhuSpace.py | 33 ++++++--- g4f/Provider/AiAsk.py | 43 ++++++++++++ g4f/Provider/Aibn.py | 3 +- g4f/Provider/Aichat.py | 3 +- g4f/Provider/Aivvm.py | 8 ++- g4f/Provider/Bing.py | 89 +++++++++---------------- g4f/Provider/ChatForAi.py | 3 +- g4f/Provider/Chatgpt4Online.py | 39 +++++++++++ g4f/Provider/ChatgptAi.py | 62 ++++++++--------- g4f/Provider/ChatgptDemo.py | 62 +++++++++++++++++ g4f/Provider/ChatgptDuo.py | 8 ++- g4f/Provider/ChatgptX.py | 66 ++++++++++++++++++ g4f/Provider/DeepAi.py | 11 +++ g4f/Provider/FreeGpt.py | 3 +- g4f/Provider/GptGo.py | 3 +- g4f/Provider/Liaobots.py | 35 +++++++--- g4f/Provider/Myshell.py | 3 +- g4f/Provider/Vitalentum.py | 3 +- g4f/Provider/Ylokh.py | 4 +- g4f/Provider/You.py | 21 +++--- g4f/Provider/Yqcloud.py | 3 +- g4f/Provider/__init__.py | 61 +++++++++-------- g4f/Provider/deprecated/PerplexityAi.py | 101 ---------------------------- g4f/Provider/deprecated/__init__.py | 1 - g4f/Provider/needs_auth/OpenaiChat.py | 3 +- g4f/Provider/retry_provider.py | 9 ++- g4f/Provider/unfinished/Komo.py | 44 ++++++++++++ g4f/Provider/unfinished/MikuChat.py | 97 +++++++++++++++++++++++++++ g4f/Provider/unfinished/PerplexityAi.py | 100 ++++++++++++++++++++++++++++ g4f/Provider/unfinished/__init__.py | 3 + g4f/__init__.py | 7 +- g4f/debug.py | 1 + g4f/models.py | 31 +++++---- tool/create_provider.py | 114 ++++++++++++++++++++++++++++++++ 35 files changed, 817 insertions(+), 277 deletions(-) create mode 100644 g4f/Provider/AiAsk.py create mode 100644 g4f/Provider/Chatgpt4Online.py create mode 100644 g4f/Provider/ChatgptDemo.py create mode 100644 g4f/Provider/ChatgptX.py delete mode 100644 g4f/Provider/deprecated/PerplexityAi.py create mode 100644 g4f/Provider/unfinished/Komo.py create mode 100644 g4f/Provider/unfinished/MikuChat.py create mode 100644 g4f/Provider/unfinished/PerplexityAi.py create mode 100644 g4f/Provider/unfinished/__init__.py create mode 100644 g4f/debug.py create mode 100644 tool/create_provider.py diff --git a/g4f/Provider/AItianhu.py b/g4f/Provider/AItianhu.py index 1d8653b7..c6e4dbad 100644 --- a/g4f/Provider/AItianhu.py +++ b/g4f/Provider/AItianhu.py @@ -4,7 +4,7 @@ import json from ..typing import AsyncGenerator from ..requests import StreamSession -from .base_provider import AsyncGeneratorProvider, format_prompt +from .base_provider import AsyncGeneratorProvider, format_prompt, get_cookies class AItianhu(AsyncGeneratorProvider): @@ -18,8 +18,12 @@ class AItianhu(AsyncGeneratorProvider): model: str, messages: list[dict[str, str]], proxy: str = None, + cookies: dict = None, + timeout: int = 30, **kwargs ) -> AsyncGenerator: + if not cookies: + cookies = get_cookies("www.aitianhu.com") data = { "prompt": format_prompt(messages), "options": {}, @@ -34,12 +38,19 @@ class AItianhu(AsyncGeneratorProvider): "Origin": cls.url, "Referer": f"{cls.url}/" } - async with StreamSession(headers=headers, proxies={"https": proxy}, impersonate="chrome107", verify=False) as session: + async with StreamSession( + headers=headers, + cookies=cookies, + timeout=timeout, + proxies={"https": proxy}, + impersonate="chrome107", + verify=False + ) as session: async with session.post(f"{cls.url}/api/chat-process", json=data) as response: response.raise_for_status() async for line in response.iter_lines(): if line == b"