| from __future__ import annotations |
|
|
| from aiohttp import ClientSession |
|
|
| from ..typing import AsyncGenerator |
| from .base_provider import AsyncGeneratorProvider |
|
|
|
|
| class Acytoo(AsyncGeneratorProvider): |
| url = 'https://chat.acytoo.com' |
| working = True |
| supports_gpt_35_turbo = True |
|
|
| @classmethod |
| async def create_async_generator( |
| cls, |
| model: str, |
| messages: list[dict[str, str]], |
| proxy: str = None, |
| **kwargs |
| ) -> AsyncGenerator: |
|
|
| async with ClientSession( |
| headers=_create_header() |
| ) as session: |
| async with session.post( |
| cls.url + '/api/completions', |
| proxy=proxy, |
| json=_create_payload(messages, **kwargs) |
| ) as response: |
| response.raise_for_status() |
| async for stream in response.content.iter_any(): |
| if stream: |
| yield stream.decode() |
|
|
|
|
| def _create_header(): |
| return { |
| 'accept': '*/*', |
| 'content-type': 'application/json', |
| } |
|
|
|
|
| def _create_payload(messages: list[dict[str, str]], temperature: float = 0.5, **kwargs): |
| return { |
| 'key' : '', |
| 'model' : 'gpt-3.5-turbo', |
| 'messages' : messages, |
| 'temperature' : temperature, |
| 'password' : '' |
| } |