2023-09-03 08:26:26 +00:00
|
|
|
from __future__ import annotations
|
2023-07-28 10:07:17 +00:00
|
|
|
|
2023-09-03 08:26:26 +00:00
|
|
|
import json
|
|
|
|
|
|
|
|
import js2py
|
|
|
|
import requests
|
|
|
|
|
|
|
|
from ..typing import Any, CreateResult
|
2023-07-28 10:07:17 +00:00
|
|
|
from .base_provider import BaseProvider
|
|
|
|
|
|
|
|
|
|
|
|
class DeepAi(BaseProvider):
|
2023-08-27 15:37:44 +00:00
|
|
|
url: str = "https://deepai.org"
|
|
|
|
working = True
|
|
|
|
supports_stream = True
|
2023-07-28 10:07:17 +00:00
|
|
|
supports_gpt_35_turbo = True
|
|
|
|
|
|
|
|
@staticmethod
|
|
|
|
def create_completion(
|
|
|
|
model: str,
|
|
|
|
messages: list[dict[str, str]],
|
2023-08-27 15:37:44 +00:00
|
|
|
stream: bool, **kwargs: Any) -> CreateResult:
|
|
|
|
|
2023-07-28 10:07:17 +00:00
|
|
|
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")));
|
|
|
|
"""
|
|
|
|
|
|
|
|
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",
|
|
|
|
}
|
|
|
|
|
2023-08-27 15:37:44 +00:00
|
|
|
response = requests.post("https://api.deepai.org/make_me_a_pizza",
|
|
|
|
headers=headers, data=payload, stream=True)
|
|
|
|
|
2023-07-28 10:07:17 +00:00
|
|
|
for chunk in response.iter_content(chunk_size=None):
|
|
|
|
response.raise_for_status()
|
|
|
|
yield chunk.decode()
|