diff options
Diffstat (limited to '')
-rw-r--r-- | README.md | 4 | ||||
-rw-r--r-- | ora/README.md | 5 | ||||
-rw-r--r-- | ora/__init__.py | 16 | ||||
-rw-r--r-- | requirements.txt | 3 | ||||
-rw-r--r-- | streamlit_app.py | 43 | ||||
-rw-r--r-- | testing/ora_gpt4.py | 43 |
6 files changed, 90 insertions, 24 deletions
@@ -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 |