2023-07-28 13:07:17 +03:00
|
|
|
import time
|
|
|
|
|
|
|
|
import requests
|
|
|
|
|
|
|
|
from ..typing import Any, CreateResult
|
|
|
|
from .base_provider import BaseProvider
|
|
|
|
|
|
|
|
|
|
|
|
class Acytoo(BaseProvider):
|
|
|
|
url = "https://chat.acytoo.com/api/completions"
|
|
|
|
working = True
|
|
|
|
supports_gpt_35_turbo = True
|
|
|
|
|
|
|
|
@staticmethod
|
|
|
|
def create_completion(
|
|
|
|
model: str,
|
|
|
|
messages: list[dict[str, str]],
|
|
|
|
stream: bool,
|
|
|
|
**kwargs: Any,
|
|
|
|
) -> CreateResult:
|
|
|
|
headers = _create_header()
|
2023-08-22 09:59:58 +03:00
|
|
|
payload = _create_payload(messages, kwargs.get('temperature', 0.5))
|
2023-07-28 13:07:17 +03:00
|
|
|
|
|
|
|
url = "https://chat.acytoo.com/api/completions"
|
|
|
|
response = requests.post(url=url, headers=headers, json=payload)
|
|
|
|
response.raise_for_status()
|
2023-08-22 09:59:58 +03:00
|
|
|
response.encoding = "utf-8"
|
2023-07-28 13:07:17 +03:00
|
|
|
yield response.text
|
|
|
|
|
|
|
|
|
|
|
|
def _create_header():
|
|
|
|
return {
|
|
|
|
"accept": "*/*",
|
|
|
|
"content-type": "application/json",
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2023-08-22 09:59:58 +03:00
|
|
|
def _create_payload(messages: list[dict[str, str]], temperature):
|
2023-07-28 13:07:17 +03:00
|
|
|
payload_messages = [
|
|
|
|
message | {"createdAt": int(time.time()) * 1000} for message in messages
|
|
|
|
]
|
|
|
|
return {
|
|
|
|
"key": "",
|
|
|
|
"model": "gpt-3.5-turbo",
|
|
|
|
"messages": payload_messages,
|
2023-08-22 09:59:58 +03:00
|
|
|
"temperature": temperature,
|
2023-07-28 13:07:17 +03:00
|
|
|
"password": "",
|
|
|
|
}
|