monra's picture
Adds all providers from the original API
d4adf88
raw
history blame
1.26 kB
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
}
])