From 197f491d43ef3b34fbb5837337bb2bb2998e96ea Mon Sep 17 00:00:00 2001 From: kqlio67 <> Date: Mon, 3 Feb 2025 16:17:41 +0200 Subject: Disabled provider 'GPROChat' --- g4f/Provider/GPROChat.py | 69 ------------------------------------ g4f/Provider/__init__.py | 1 - g4f/Provider/not_working/GPROChat.py | 60 +++++++++++++++++++++++++++++++ g4f/Provider/not_working/__init__.py | 1 + 4 files changed, 61 insertions(+), 70 deletions(-) delete mode 100644 g4f/Provider/GPROChat.py create mode 100644 g4f/Provider/not_working/GPROChat.py (limited to 'g4f/Provider') diff --git a/g4f/Provider/GPROChat.py b/g4f/Provider/GPROChat.py deleted file mode 100644 index 71465ecf..00000000 --- a/g4f/Provider/GPROChat.py +++ /dev/null @@ -1,69 +0,0 @@ -from __future__ import annotations - -import time -import hashlib -from aiohttp import ClientSession - -from ..typing import AsyncResult, Messages -from .base_provider import AsyncGeneratorProvider, ProviderModelMixin -from .helper import format_prompt - -class GPROChat(AsyncGeneratorProvider, ProviderModelMixin): - url = "https://gprochat.com" - api_endpoint = "https://gprochat.com/api/generate" - - working = True - supports_stream = True - supports_message_history = True - default_model = 'gemini-1.5-pro' - - @staticmethod - def generate_signature(timestamp: int, message: str) -> str: - secret_key = "2BC120D4-BB36-1B60-26DE-DB630472A3D8" - hash_input = f"{timestamp}:{message}:{secret_key}" - signature = hashlib.sha256(hash_input.encode('utf-8')).hexdigest() - return signature - - @classmethod - def get_model(cls, model: str) -> str: - if model in cls.models: - return model - elif model in cls.model_aliases: - return cls.model_aliases[model] - else: - return cls.default_model - - @classmethod - async def create_async_generator( - cls, - model: str, - messages: Messages, - proxy: str = None, - **kwargs - ) -> AsyncResult: - model = cls.get_model(model) - timestamp = int(time.time() * 1000) - prompt = format_prompt(messages) - sign = cls.generate_signature(timestamp, prompt) - - headers = { - "accept": "*/*", - "origin": cls.url, - "referer": f"{cls.url}/", - "user-agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36", - "content-type": "text/plain;charset=UTF-8" - } - - data = { - "messages": [{"role": "user", "parts": [{"text": prompt}]}], - "time": timestamp, - "pass": None, - "sign": sign - } - - async with ClientSession(headers=headers) as session: - async with session.post(cls.api_endpoint, json=data, proxy=proxy) as response: - response.raise_for_status() - async for chunk in response.content.iter_any(): - if chunk: - yield chunk.decode() diff --git a/g4f/Provider/__init__.py b/g4f/Provider/__init__.py index 05788e86..a0f52fe4 100644 --- a/g4f/Provider/__init__.py +++ b/g4f/Provider/__init__.py @@ -29,7 +29,6 @@ from .Free2GPT import Free2GPT from .FreeGpt import FreeGpt from .GizAI import GizAI from .Glider import Glider -from .GPROChat import GPROChat from .ImageLabs import ImageLabs from .Jmuz import Jmuz from .Liaobots import Liaobots diff --git a/g4f/Provider/not_working/GPROChat.py b/g4f/Provider/not_working/GPROChat.py new file mode 100644 index 00000000..5274157c --- /dev/null +++ b/g4f/Provider/not_working/GPROChat.py @@ -0,0 +1,60 @@ +from __future__ import annotations + +import time +import hashlib +from aiohttp import ClientSession + +from ...typing import AsyncResult, Messages +from ..base_provider import AsyncGeneratorProvider, ProviderModelMixin +from ..helper import format_prompt + +class GPROChat(AsyncGeneratorProvider, ProviderModelMixin): + url = "https://gprochat.com" + api_endpoint = "https://gprochat.com/api/generate" + + working = False + supports_stream = True + supports_message_history = True + default_model = 'gemini-1.5-pro' + + @staticmethod + def generate_signature(timestamp: int, message: str) -> str: + secret_key = "2BC120D4-BB36-1B60-26DE-DB630472A3D8" + hash_input = f"{timestamp}:{message}:{secret_key}" + signature = hashlib.sha256(hash_input.encode('utf-8')).hexdigest() + return signature + + @classmethod + async def create_async_generator( + cls, + model: str, + messages: Messages, + proxy: str = None, + **kwargs + ) -> AsyncResult: + model = cls.get_model(model) + timestamp = int(time.time() * 1000) + prompt = format_prompt(messages) + sign = cls.generate_signature(timestamp, prompt) + + headers = { + "accept": "*/*", + "origin": cls.url, + "referer": f"{cls.url}/", + "user-agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36", + "content-type": "text/plain;charset=UTF-8" + } + + data = { + "messages": [{"role": "user", "parts": [{"text": prompt}]}], + "time": timestamp, + "pass": None, + "sign": sign + } + + async with ClientSession(headers=headers) as session: + async with session.post(cls.api_endpoint, json=data, proxy=proxy) as response: + response.raise_for_status() + async for chunk in response.content.iter_any(): + if chunk: + yield chunk.decode() diff --git a/g4f/Provider/not_working/__init__.py b/g4f/Provider/not_working/__init__.py index fa0b5dbb..978cd839 100644 --- a/g4f/Provider/not_working/__init__.py +++ b/g4f/Provider/not_working/__init__.py @@ -13,6 +13,7 @@ from .ChatgptFree import ChatgptFree from .DarkAI import DarkAI from .FlowGpt import FlowGpt from .FreeNetfly import FreeNetfly +from .GPROChat import GPROChat from .Koala import Koala from .MagickPen import MagickPen from .MyShell import MyShell -- cgit v1.2.3