summaryrefslogblamecommitdiffstats
path: root/g4f/Provider/Providers/DeepAi.py
blob: 27618cbb43600bdb724e061e5ce0644c632d586e (plain) (tree)
1
2
3
4
5
6
7
8
           
         
               
            

                                                  

                               


                         

              





















                                                                                                                                                                                                                                                                                                                                    
 

                                                              
 








                                                                                                             
 

                                                    
 

                                                                                                                                                    
 

                                                                           
 


                                                                                 
 


                                                                                                                                                                        
 


                                                                                        

                            


                                                                                                                                                                       
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]])