From d7ea4f90a8fa1be0fbbaa715426caf1c819d12a8 Mon Sep 17 00:00:00 2001
From: "t.me/xtekky" <98614666+xtekky@users.noreply.github.com>
Date: Sun, 16 Apr 2023 17:37:07 +0100
Subject: [PATCH] ora.sh load model ( to use gpt-4 )

---
 ora/__init__.py     |  4 ++--
 ora/model.py        | 16 +++++++++++++++-
 testing/ora_gpt4.py | 27 +++++++++++++++++++++++++++
 3 files changed, 44 insertions(+), 3 deletions(-)
 create mode 100644 testing/ora_gpt4.py

diff --git a/ora/__init__.py b/ora/__init__.py
index 928f4af..b6389f6 100644
--- a/ora/__init__.py
+++ b/ora/__init__.py
@@ -26,10 +26,10 @@ class Completion:
                 'chatbotId': model.id,
                 'input'    : prompt,
                 'userId'   : model.createdBy,
-                'model'    : 'gpt-3.5-turbo',
+                'model'    : model.modelName,
                 'provider' : 'OPEN_AI',
                 'includeHistory': includeHistory}).json()
-        
+
         return OraResponse({
             'id'     : response['conversationId'], 
             'object' : 'text_completion', 
diff --git a/ora/model.py b/ora/model.py
index 69eca52..a0f0e93 100644
--- a/ora/model.py
+++ b/ora/model.py
@@ -8,6 +8,7 @@ class CompletionModel:
     createdAt     = None
     slug          = None
     id            = None
+    model         = 'gpt-3.5-turbo'
     
     def create(
         system_prompt: str = 'You are ChatGPT, a large language model trained by OpenAI. Answer as concisely as possible', 
@@ -18,6 +19,7 @@ class CompletionModel:
         CompletionModel.description   = description
         CompletionModel.slug          = name
         
+        
         response = post('https://ora.sh/api/assistant', json = {
             'prompt'     : system_prompt,
             'userId'     : f'auto:{uuid4()}',
@@ -29,4 +31,16 @@ class CompletionModel:
         CompletionModel.createdAt = response.json()['createdAt']
         
         return CompletionModel
-    
\ No newline at end of file
+    
+    def load(chatbotId: str, modelName: str = 'gpt-3.5-turbo', userId: str = None):
+        if userId is None: userId = f'{uuid4()}'
+
+        CompletionModel.system_prompt = None
+        CompletionModel.description   = None
+        CompletionModel.slug          = None
+        CompletionModel.id        = chatbotId
+        CompletionModel.createdBy = userId
+        CompletionModel.createdAt = None
+        CompletionModel.modelName = modelName
+        
+        return CompletionModel
\ No newline at end of file
diff --git a/testing/ora_gpt4.py b/testing/ora_gpt4.py
new file mode 100644
index 0000000..aa22d73
--- /dev/null
+++ b/testing/ora_gpt4.py
@@ -0,0 +1,27 @@
+import ora
+
+# 1 normal
+# 2 solidity contract helper
+# 3 swift project helper
+# 4 developer  gpt
+# 5 lawsuit bot for spam call
+# 6 p5.js code help bot
+# 8 AI professor, for controversial topics
+# 9 HustleGPT, your entrepreneurial AI
+# 10 midjourney prompts bot
+# 11 AI philosophy professor
+# 12 TypeScript and JavaScript code review bot
+# 13 credit card transaction details to merchant and location bot
+# 15 Chemical Compound Similarity and Purchase Tool bot
+# 16 expert full-stack developer AI
+# 17 Solana development bot
+# 18 price guessing game bot
+# 19 AI Ethicist and Philosopher
+
+gpt4_chatbot_ids = ['b8b12eaa-5d47-44d3-92a6-4d706f2bcacf', 'fbe53266-673c-4b70-9d2d-d247785ccd91', 'bd5781cf-727a-45e9-80fd-a3cfce1350c6', '993a0102-d397-47f6-98c3-2587f2c9ec3a', 'ae5c524e-d025-478b-ad46-8843a5745261', 'cc510743-e4ab-485e-9191-76960ecb6040', 'a5cd2481-8e24-4938-aa25-8e26d6233390', '6bca5930-2aa1-4bf4-96a7-bea4d32dcdac', '884a5f2b-47a2-47a5-9e0f-851bbe76b57c', 'd5f3c491-0e74-4ef7-bdca-b7d27c59e6b3', 'd72e83f6-ef4e-4702-844f-cf4bd432eef7', '6e80b170-11ed-4f1a-b992-fd04d7a9e78c', '8ef52d68-1b01-466f-bfbf-f25c13ff4a72', 'd0674e11-f22e-406b-98bc-c1ba8564f749', 'a051381d-6530-463f-be68-020afddf6a8f', '99c0afa1-9e32-4566-8909-f4ef9ac06226', '1be65282-9c59-4a96-99f8-d225059d9001', 'dba16bd8-5785-4248-a8e9-b5d1ecbfdd60', '1731450d-3226-42d0-b41c-4129fe009524', '8e74635d-000e-4819-ab2c-4e986b7a0f48', 'afe7ed01-c1ac-4129-9c71-2ca7f3800b30', 'e374c37a-8c44-4f0e-9e9f-1ad4609f24f5']
+chatbot_id       = gpt4_chatbot_ids[0]
+
+model = ora.CompletionModel.load(chatbot_id, 'gpt-4')
+response = ora.Completion.create(model, 'hello')
+
+print(response)