diff options
Diffstat (limited to 'g4f/Provider/Aibn.py')
-rw-r--r-- | g4f/Provider/Aibn.py | 58 |
1 files changed, 0 insertions, 58 deletions
diff --git a/g4f/Provider/Aibn.py b/g4f/Provider/Aibn.py deleted file mode 100644 index 1f81a61e..00000000 --- a/g4f/Provider/Aibn.py +++ /dev/null @@ -1,58 +0,0 @@ -from __future__ import annotations - -import time -import hashlib - -from ..typing import AsyncResult, Messages -from ..requests import StreamSession -from .base_provider import AsyncGeneratorProvider - - -class Aibn(AsyncGeneratorProvider): - url = "https://aibn.cc" - working = False - supports_message_history = True - 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: - timestamp = int(time.time()) - data = { - "messages": messages, - "pass": None, - "sign": generate_signature(timestamp, messages[-1]["content"]), - "time": timestamp - } - async with session.post(f"{cls.url}/api/generate", 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"), - ("temperature", "float"), - ] - param = ", ".join([": ".join(p) for p in params]) - return f"g4f.provider.{cls.__name__} supports: ({param})" - - -def generate_signature(timestamp: int, message: str, secret: str = "undefined"): - data = f"{timestamp}:{message}:{secret}" - return hashlib.sha256(data.encode()).hexdigest()
\ No newline at end of file |