From 5048f01e26f8e542f7e9bf8aeb7ed55dd521f8fe Mon Sep 17 00:00:00 2001 From: Heiner Lohaus Date: Thu, 12 Oct 2023 21:02:51 +0200 Subject: Deprecate ChatForAi --- g4f/Provider/ChatForAi.py | 54 ----------------------------------- g4f/Provider/__init__.py | 1 - g4f/Provider/deprecated/ChatForAi.py | 55 ++++++++++++++++++++++++++++++++++++ g4f/Provider/deprecated/__init__.py | 1 + 4 files changed, 56 insertions(+), 55 deletions(-) delete mode 100644 g4f/Provider/ChatForAi.py create mode 100644 g4f/Provider/deprecated/ChatForAi.py (limited to 'g4f/Provider') diff --git a/g4f/Provider/ChatForAi.py b/g4f/Provider/ChatForAi.py deleted file mode 100644 index f2fe0335..00000000 --- a/g4f/Provider/ChatForAi.py +++ /dev/null @@ -1,54 +0,0 @@ -from __future__ import annotations - -from ..typing import AsyncResult, Messages -from ..requests import StreamSession -from .base_provider import AsyncGeneratorProvider - - -class ChatForAi(AsyncGeneratorProvider): - url = "https://chatforai.com" - supports_gpt_35_turbo = True - working = True - - @classmethod - async def create_async_generator( - cls, - model: str, - messages: Messages, - proxy: str = None, - timeout: int = 120, - **kwargs - ) -> AsyncResult: - async with StreamSession(impersonate="chrome107", proxies={"https": proxy}, timeout=timeout) as session: - prompt = messages[-1]["content"] - data = { - "conversationId": "temp", - "conversationType": "chat_continuous", - "botId": "chat_continuous", - "globalSettings":{ - "baseUrl": "https://api.openai.com", - "model": model if model else "gpt-3.5-turbo", - "messageHistorySize": 5, - "temperature": 0.7, - "top_p": 1, - **kwargs - }, - "botSettings": {}, - "prompt": prompt, - "messages": messages, - } - async with session.post(f"{cls.url}/api/handle/provider-openai", json=data) as response: - response.raise_for_status() - async for chunk in response.iter_content(): - yield chunk.decode() - - @classmethod - @property - def params(cls): - params = [ - ("model", "str"), - ("messages", "list[dict[str, str]]"), - ("stream", "bool"), - ] - param = ", ".join([": ".join(p) for p in params]) - return f"g4f.provider.{cls.__name__} supports: ({param})" \ No newline at end of file diff --git a/g4f/Provider/__init__.py b/g4f/Provider/__init__.py index a584f66e..86346851 100644 --- a/g4f/Provider/__init__.py +++ b/g4f/Provider/__init__.py @@ -9,7 +9,6 @@ from .AItianhu import AItianhu from .AItianhuSpace import AItianhuSpace from .Bing import Bing from .ChatBase import ChatBase -from .ChatForAi import ChatForAi from .Chatgpt4Online import Chatgpt4Online from .ChatgptAi import ChatgptAi from .ChatgptDemo import ChatgptDemo diff --git a/g4f/Provider/deprecated/ChatForAi.py b/g4f/Provider/deprecated/ChatForAi.py new file mode 100644 index 00000000..ab4cd89c --- /dev/null +++ b/g4f/Provider/deprecated/ChatForAi.py @@ -0,0 +1,55 @@ +from __future__ import annotations + +from ...typing import AsyncResult, Messages +from ...requests import StreamSession +from ..base_provider import AsyncGeneratorProvider + + +class ChatForAi(AsyncGeneratorProvider): + url = "https://chatforai.com" + supports_gpt_35_turbo = True + + @classmethod + async def create_async_generator( + cls, + model: str, + messages: Messages, + proxy: str = None, + timeout: int = 120, + **kwargs + ) -> AsyncResult: + async with StreamSession(impersonate="chrome107", proxies={"https": proxy}, timeout=timeout) as session: + prompt = messages[-1]["content"] + data = { + "conversationId": "temp", + "conversationType": "chat_continuous", + "botId": "chat_continuous", + "globalSettings":{ + "baseUrl": "https://api.openai.com", + "model": model if model else "gpt-3.5-turbo", + "messageHistorySize": 5, + "temperature": 0.7, + "top_p": 1, + **kwargs + }, + "botSettings": {}, + "prompt": prompt, + "messages": messages, + } + async with session.post(f"{cls.url}/api/handle/provider-openai", json=data) as response: + response.raise_for_status() + async for chunk in response.iter_content(): + if b"https://chatforai.store" in chunk: + raise RuntimeError(f"Response: {chunk.decode()}") + yield chunk.decode() + + @classmethod + @property + def params(cls): + params = [ + ("model", "str"), + ("messages", "list[dict[str, str]]"), + ("stream", "bool"), + ] + param = ", ".join([": ".join(p) for p in params]) + return f"g4f.provider.{cls.__name__} supports: ({param})" \ No newline at end of file diff --git a/g4f/Provider/deprecated/__init__.py b/g4f/Provider/deprecated/__init__.py index 10f5e4ad..0644dc52 100644 --- a/g4f/Provider/deprecated/__init__.py +++ b/g4f/Provider/deprecated/__init__.py @@ -11,3 +11,4 @@ from .Equing import Equing from .Wuguokai import Wuguokai from .V50 import V50 from .FastGpt import FastGpt +from .ChatForAi import ChatForAi \ No newline at end of file -- cgit v1.2.3