summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--README.md4
-rw-r--r--ora/README.md5
-rw-r--r--ora/__init__.py16
-rw-r--r--requirements.txt3
-rw-r--r--streamlit_app.py43
-rw-r--r--testing/ora_gpt4.py43
6 files changed, 90 insertions, 24 deletions
diff --git a/README.md b/README.md
index d7f825d3..45eb0621 100644
--- a/README.md
+++ b/README.md
@@ -58,6 +58,7 @@ By the way, thank you so much for `2k` stars and all the support!!
- [`/ora`](./ora/README.md)
- here is proof / test: [`ora_gpt4_proof.py`](./testing/ora_gpt4_proof.py)
- why ?, no streaming compared to poe.com but u can send more than 1 message
+- update: you need to use session token now and there is a limit, accounts are only google so no creator for now
#### gpt-3.5
- [`/sqlchat`](./sqlchat/README.md)
@@ -74,6 +75,9 @@ install requirements with:
```sh
pip3 install -r requirements.txt
```
+## To start gpt4free GUI
+To start gpt4free GUI run the following command :
+`streamlit run streamlit_app.py`
## ChatGPT clone
> currently implementing new features and trying to scale it, please be patient it may be unstable
diff --git a/ora/README.md b/ora/README.md
index b4ae0878..fb9f5974 100644
--- a/ora/README.md
+++ b/ora/README.md
@@ -5,6 +5,10 @@
more gpt4 models in `/testing/ora_gpt4.py`
```python
+# if using CompletionModel.load set these
+ora.user_id = '...'
+ora.session_token = '...'
+
# normal gpt-4: b8b12eaa-5d47-44d3-92a6-4d706f2bcacf
model = ora.CompletionModel.load(chatbot_id, 'gpt-4') # or gpt-3.5
```
@@ -14,6 +18,7 @@ model = ora.CompletionModel.load(chatbot_id, 'gpt-4') # or gpt-3.5
# import ora
import ora
+
# create model
model = ora.CompletionModel.create(
system_prompt = 'You are ChatGPT, a large language model trained by OpenAI. Answer as concisely as possible',
diff --git a/ora/__init__.py b/ora/__init__.py
index b6389f64..36e14cd5 100644
--- a/ora/__init__.py
+++ b/ora/__init__.py
@@ -4,18 +4,23 @@ from requests import post
from time import time
from random import randint
+user_id = None
+session_token = None
+
class Completion:
def create(
model : CompletionModel,
prompt: str,
includeHistory: bool = True,
conversationId: str or None = None) -> OraResponse:
-
extra = {
'conversationId': conversationId} if conversationId else {}
- response = post('https://ora.sh/api/conversation',
- headers = {
+ cookies = {
+ "cookie" : f"__Secure-next-auth.session-token={session_token}"} if session_token else {}
+
+ response = post('https://ora.sh/api/conversation',
+ headers = cookies | {
"host" : "ora.sh",
"authorization" : f"Bearer AY0{randint(1111, 9999)}",
"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",
@@ -25,10 +30,13 @@ class Completion:
json = extra | {
'chatbotId': model.id,
'input' : prompt,
- 'userId' : model.createdBy,
+ 'userId' : user_id if user_id else model.createdBy,
'model' : model.modelName,
'provider' : 'OPEN_AI',
'includeHistory': includeHistory}).json()
+
+ if response.get('error'):
+ raise Exception('''set ora.user_id and ora.session_token\napi response: %s''' % response['error'])
return OraResponse({
'id' : response['conversationId'],
diff --git a/requirements.txt b/requirements.txt
index f9d6351a..eb2ac24c 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -4,4 +4,5 @@ tls-client
pypasser
names
colorama
-curl_cffi \ No newline at end of file
+curl_cffi
+streamlit==1.21.0 \ No newline at end of file
diff --git a/streamlit_app.py b/streamlit_app.py
new file mode 100644
index 00000000..97bdf694
--- /dev/null
+++ b/streamlit_app.py
@@ -0,0 +1,43 @@
+import streamlit as st
+import phind
+
+def phind_get_answer(question:str)->str:
+ # set cf_clearance cookie
+ phind.cf_clearance = 'heguhSRBB9d0sjLvGbQECS8b80m2BQ31xEmk9ChshKI-1682268995-0-160'
+ phind.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'
+ result = phind.Completion.create(
+ model = 'gpt-4',
+ prompt = question,
+ results = phind.Search.create(question, actualSearch = True),
+ creative = False,
+ detailed = False,
+ codeContext = '')
+ return result.completion.choices[0].text
+
+
+st.set_page_config(
+ page_title="gpt4freeGUI",
+ initial_sidebar_state="expanded",
+ page_icon="🧠",
+ menu_items={
+ 'Get Help': 'https://github.com/xtekky/gpt4free/blob/main/README.md',
+ 'Report a bug': "https://github.com/xtekky/gpt4free/issues",
+ 'About': "### gptfree GUI"
+ }
+)
+
+st.header('GPT4free GUI')
+
+question_text_area = st.text_area('🤖 Ask Any Question :', placeholder='Explain quantum computing in 50 words')
+if st.button('🧠 Think'):
+ answer = phind_get_answer(question_text_area)
+ st.caption("Answer :")
+ st.markdown(answer)
+
+
+hide_streamlit_style = """
+ <style>
+ footer {visibility: hidden;}
+ </style>
+ """
+st.markdown(hide_streamlit_style, unsafe_allow_html=True) \ No newline at end of file
diff --git a/testing/ora_gpt4.py b/testing/ora_gpt4.py
index ab1fbf96..41f20876 100644
--- a/testing/ora_gpt4.py
+++ b/testing/ora_gpt4.py
@@ -1,27 +1,12 @@
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
+ora.user_id = '...'
+ora.session_token = '...'
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')
+model = ora.CompletionModel.load(chatbot_id, 'gpt-4')
response = ora.Completion.create(model, 'hello')
print(response.completion.choices[0].text)
@@ -37,4 +22,24 @@ while True:
includeHistory = True, # remember history
conversationId = conversation_id)
- print(response.completion.choices[0].text) \ No newline at end of file
+ print(response.completion.choices[0].text)
+
+
+# bots :
+# 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 \ No newline at end of file