Merge pull request #788 from omidima/main-1

Update DeepAi.py
This commit is contained in:
xtekky 2023-08-07 13:22:13 +02:00 committed by GitHub
commit 0ab742755e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1,48 +1,74 @@
import os
import json
import random
import hashlib
import os
import requests
import js2py
from ...typing import sha256, Dict, get_type_hints
url = 'https://deepai.org'
url = "https://api.deepai.org/"
model = ['gpt-3.5-turbo']
supports_stream = True
needs_auth = False
working = True
def _create_completion(model: str, messages: list, stream: bool, **kwargs):
def md5(text: str) -> str:
return hashlib.md5(text.encode()).hexdigest()[::-1]
def get_api_key(user_agent: str) -> str:
part1 = str(random.randint(0, 10**11))
part2 = md5(user_agent + md5(user_agent + md5(user_agent + part1 + "x")))
return f"tryit-{part1}-{part2}"
user_agent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36'
headers = {
"api-key": get_api_key(user_agent),
"user-agent": user_agent
token_js = """
var agent = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36'
var a, b, c, d, e, h, f, l, g, k, m, n, r, x, C, E, N, F, T, O, P, w, D, G, Q, R, W, I, aa, fa, na, oa, ha, ba, X, ia, ja, ka, J, la, K, L, ca, S, U, M, ma, B, da, V, Y;
h = Math.round(1E11 * Math.random()) + "";
f = function () {
for (var p = [], q = 0; 64 > q;) p[q] = 0 | 4294967296 * Math.sin(++q % Math.PI);
return function (t) {
var v, y, H, ea = [v = 1732584193, y = 4023233417, ~v, ~y],
Z = [],
A = unescape(encodeURI(t)) + "\u0080",
z = A.length;
t = --z / 4 + 2 | 15;
for (Z[--t] = 8 * z; ~z;) Z[z >> 2] |= A.charCodeAt(z) << 8 * z--;
for (q = A = 0; q < t; q += 16) {
for (z = ea; 64 > A; z = [H = z[3], v + ((H = z[0] + [v & y | ~v & H, H & v | ~H & y, v ^ y ^ H, y ^ (v | ~H)][z = A >> 4] + p[A] + ~~Z[q | [A, 5 * A + 1, 3 * A + 5, 7 * A][z] & 15]) << (z = [7, 12, 17, 22, 5, 9, 14, 20, 4, 11, 16, 23, 6, 10, 15, 21][4 * z + A++ % 4]) | H >>> -z), v, y]) v = z[1] | 0, y = z[2];
for (A = 4; A;) ea[--A] += z[A]
}
for (t = ""; 32 > A;) t += (ea[A >> 3] >> 4 * (1 ^ A++) & 15).toString(16);
return t.split("").reverse().join("")
}
}();
files = {
"chat_style": (None, "chat"),
"chatHistory": (None, json.dumps(messages))
}
"tryit-" + h + "-" + f(agent + f(agent + f(agent + h + "x")));
"""
r = requests.post("https://api.deepai.org/chat_response", headers=headers, files=files, stream=True)
uuid4_js = """
function uuidv4() {
for (var a = [], b = 0; 36 > b; b++) a[b] = "0123456789abcdef".substr(Math.floor(16 * Math.random()), 1);
a[14] = "4";
a[19] = "0123456789abcdef".substr(a[19] & 3 | 8, 1);
a[8] = a[13] = a[18] = a[23] = "-";
return a.join("")
}
uuidv4();"""
for chunk in r.iter_content(chunk_size=None):
r.raise_for_status()
def create_session():
url = "https://api.deepai.org/save_chat_session"
payload = {'uuid': js2py.eval_js(uuid4_js), "title":"", "chat_style": "chat", "messages": '[]'}
headers = {"User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36"}
response = requests.request("POST", url, headers=headers, data=payload)
return response
def _create_completion(model: str, messages:list, stream: bool = True, **kwargs):
create_session()
url = "https://api.deepai.org/make_me_a_pizza"
payload = {'chas_style': "chat", "chatHistory": json.dumps(messages)}
api_key = js2py.eval_js(token_js)
headers = {"api-key": api_key, "User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36"}
response = requests.request("POST", url, headers=headers, data=payload, stream=True)
for chunk in response.iter_content(chunk_size=None):
response.raise_for_status()
yield chunk.decode()
params = f'g4f.Providers.{os.path.basename(__file__)[:-3]} supports: ' + \
'(%s)' % ', '.join(
[f"{name}: {get_type_hints(_create_completion)[name].__name__}" for name in _create_completion.__code__.co_varnames[:_create_completion.__code__.co_argcount]])