t.me/xtekky
commited on
Commit
·
8350bc6
1
Parent(s):
600525e
added ora x-signed-token header
Browse files- ora/__init__.py +12 -7
- ora/_jwt.py +75 -0
- ora/model.py +7 -5
- testing/ora_test.py +15 -0
ora/__init__.py
CHANGED
@@ -3,6 +3,7 @@ from ora.typing import OraResponse
|
|
3 |
from requests import post
|
4 |
from time import time
|
5 |
from random import randint
|
|
|
6 |
|
7 |
user_id = None
|
8 |
session_token = None
|
@@ -19,6 +20,15 @@ class Completion:
|
|
19 |
cookies = {
|
20 |
"cookie" : f"__Secure-next-auth.session-token={session_token}"} if session_token else {}
|
21 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
22 |
response = post('https://ora.sh/api/conversation',
|
23 |
headers = cookies | {
|
24 |
"host" : "ora.sh",
|
@@ -26,14 +36,9 @@ class Completion:
|
|
26 |
"user-agent" : "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36",
|
27 |
"origin" : "https://ora.sh",
|
28 |
"referer" : "https://ora.sh/chat/",
|
|
|
29 |
},
|
30 |
-
json =
|
31 |
-
'chatbotId': model.id,
|
32 |
-
'input' : prompt,
|
33 |
-
'userId' : user_id if user_id else model.createdBy,
|
34 |
-
'model' : model.modelName,
|
35 |
-
'provider' : 'OPEN_AI',
|
36 |
-
'includeHistory': includeHistory}).json()
|
37 |
|
38 |
if response.get('error'):
|
39 |
raise Exception('''set ora.user_id and ora.session_token\napi response: %s''' % response['error'])
|
|
|
3 |
from requests import post
|
4 |
from time import time
|
5 |
from random import randint
|
6 |
+
from ora._jwt import do_jwt
|
7 |
|
8 |
user_id = None
|
9 |
session_token = None
|
|
|
20 |
cookies = {
|
21 |
"cookie" : f"__Secure-next-auth.session-token={session_token}"} if session_token else {}
|
22 |
|
23 |
+
json_data = extra | {
|
24 |
+
'chatbotId': model.id,
|
25 |
+
'input' : prompt,
|
26 |
+
'userId' : user_id if user_id else model.createdBy,
|
27 |
+
'model' : model.modelName,
|
28 |
+
'provider' : 'OPEN_AI',
|
29 |
+
'includeHistory': includeHistory}
|
30 |
+
|
31 |
+
|
32 |
response = post('https://ora.sh/api/conversation',
|
33 |
headers = cookies | {
|
34 |
"host" : "ora.sh",
|
|
|
36 |
"user-agent" : "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36",
|
37 |
"origin" : "https://ora.sh",
|
38 |
"referer" : "https://ora.sh/chat/",
|
39 |
+
"x-signed-token": do_jwt(json_data)
|
40 |
},
|
41 |
+
json = json_data).json()
|
|
|
|
|
|
|
|
|
|
|
|
|
42 |
|
43 |
if response.get('error'):
|
44 |
raise Exception('''set ora.user_id and ora.session_token\napi response: %s''' % response['error'])
|
ora/_jwt.py
ADDED
@@ -0,0 +1,75 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import jwt
|
2 |
+
from datetime import datetime, timedelta
|
3 |
+
# from cryptography.hazmat.primitives import serialization
|
4 |
+
# from cryptography.hazmat.primitives.serialization import load_pem_private_key
|
5 |
+
# from cryptography.hazmat.backends import default_backend
|
6 |
+
|
7 |
+
|
8 |
+
def do_jwt(json_data: dict):
|
9 |
+
|
10 |
+
private_key = b'''-----BEGIN RSA PRIVATE KEY-----
|
11 |
+
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
|
60 |
+
-----END RSA PRIVATE KEY-----'''
|
61 |
+
|
62 |
+
header = {
|
63 |
+
'alg': 'RS256',
|
64 |
+
'typ': 'JWT',
|
65 |
+
'kid': '0d1bb0d7-45e4-445c-889e-57419470a570'
|
66 |
+
}
|
67 |
+
|
68 |
+
payload = {
|
69 |
+
**json_data,
|
70 |
+
'iat': int(datetime.now().timestamp()),
|
71 |
+
'exp': int((datetime.now() + timedelta(minutes=10)).timestamp()),
|
72 |
+
'iss': 'https://ora.sh'
|
73 |
+
}
|
74 |
+
|
75 |
+
return jwt.encode(payload, private_key, algorithm='RS256', headers=header)
|
ora/model.py
CHANGED
@@ -20,6 +20,12 @@ class CompletionModel:
|
|
20 |
CompletionModel.description = description
|
21 |
CompletionModel.slug = name
|
22 |
|
|
|
|
|
|
|
|
|
|
|
|
|
23 |
headers = {
|
24 |
'Origin' : 'https://ora.sh',
|
25 |
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.4 Safari/605.1.15',
|
@@ -27,11 +33,7 @@ class CompletionModel:
|
|
27 |
'Host' : 'ora.sh',
|
28 |
}
|
29 |
|
30 |
-
response = post('https://ora.sh/api/assistant', headers = headers, json =
|
31 |
-
'prompt' : system_prompt,
|
32 |
-
'userId' : f'auto:{uuid4()}',
|
33 |
-
'name' : name,
|
34 |
-
'description': description})
|
35 |
|
36 |
print(response.json())
|
37 |
|
|
|
20 |
CompletionModel.description = description
|
21 |
CompletionModel.slug = name
|
22 |
|
23 |
+
json_data = {
|
24 |
+
'prompt' : system_prompt,
|
25 |
+
'userId' : f'auto:{uuid4()}',
|
26 |
+
'name' : name,
|
27 |
+
'description': description}
|
28 |
+
|
29 |
headers = {
|
30 |
'Origin' : 'https://ora.sh',
|
31 |
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.4 Safari/605.1.15',
|
|
|
33 |
'Host' : 'ora.sh',
|
34 |
}
|
35 |
|
36 |
+
response = post('https://ora.sh/api/assistant', headers = headers, json = json_data)
|
|
|
|
|
|
|
|
|
37 |
|
38 |
print(response.json())
|
39 |
|
testing/ora_test.py
ADDED
@@ -0,0 +1,15 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import ora
|
2 |
+
|
3 |
+
|
4 |
+
# create model
|
5 |
+
model = ora.CompletionModel.create(
|
6 |
+
system_prompt = 'You are ChatGPT, a large language model trained by OpenAI. Answer as concisely as possible',
|
7 |
+
description = 'ChatGPT Openai Language Model',
|
8 |
+
name = 'gpt-3.5')
|
9 |
+
|
10 |
+
# init conversation (will give you a conversationId)
|
11 |
+
init = ora.Completion.create(
|
12 |
+
model = model,
|
13 |
+
prompt = 'hello world')
|
14 |
+
|
15 |
+
print(init.completion.choices[0].text)
|