import requests import json import hashlib import random import string from fake_useragent import UserAgent class ChatCompletion: @classmethod def md5(self, text): return hashlib.md5(text.encode()).hexdigest()[::-1] @classmethod def get_api_key(self, user_agent): part1 = str(random.randint(0, 10**11)) part2 = self.md5(user_agent+self.md5(user_agent+self.md5(user_agent+part1+"x"))) return f"tryit-{part1}-{part2}" @classmethod def create(self, messages): user_agent = UserAgent().random api_key = self.get_api_key(user_agent) headers = { "api-key": api_key, "user-agent": user_agent } files = { "chat_style": (None, "chat"), "chatHistory": (None, json.dumps(messages)) } r = requests.post("https://api.deepai.org/chat_response", headers=headers, files=files, stream=True) for chunk in r.iter_content(chunk_size=None): r.raise_for_status() yield chunk.decode() class Completion: @classmethod def create(self, prompt): return ChatCompletion.create([ { "role": "user", "content": prompt } ])