|
import json |
|
import os |
|
import requests |
|
import js2py |
|
from ...typing import sha256, Dict, get_type_hints |
|
|
|
|
|
url = "https://api.deepai.org/" |
|
model = ['gpt-3.5-turbo'] |
|
supports_stream = True |
|
needs_auth = False |
|
working = True |
|
|
|
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("") |
|
} |
|
}(); |
|
|
|
"tryit-" + h + "-" + f(agent + f(agent + f(agent + h + "x"))); |
|
""" |
|
|
|
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();""" |
|
|
|
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]]) |