diff options
author | Raju Komati <komatiraju032@gmail.com> | 2023-04-24 20:36:24 +0200 |
---|---|---|
committer | Raju Komati <komatiraju032@gmail.com> | 2023-04-24 20:36:24 +0200 |
commit | 98afd5b9854c242dd05808951935ef61ffc36e98 (patch) | |
tree | ca4d9b08f9aca88a4daf2fc0571699359c55824c | |
parent | added validation for model parameter (diff) | |
parent | userid and session_token (diff) | |
download | gpt4free-98afd5b9854c242dd05808951935ef61ffc36e98.tar gpt4free-98afd5b9854c242dd05808951935ef61ffc36e98.tar.gz gpt4free-98afd5b9854c242dd05808951935ef61ffc36e98.tar.bz2 gpt4free-98afd5b9854c242dd05808951935ef61ffc36e98.tar.lz gpt4free-98afd5b9854c242dd05808951935ef61ffc36e98.tar.xz gpt4free-98afd5b9854c242dd05808951935ef61ffc36e98.tar.zst gpt4free-98afd5b9854c242dd05808951935ef61ffc36e98.zip |
-rw-r--r-- | README.md | 37 | ||||
-rw-r--r-- | ora/README.md | 10 | ||||
-rw-r--r-- | ora/__init__.py | 16 | ||||
-rw-r--r-- | phind/README.md | 1 | ||||
-rw-r--r-- | phind/__init__.py | 20 | ||||
-rw-r--r-- | phind/phind_test.py (renamed from testing/phind_test.py) | 3 | ||||
-rw-r--r-- | requirements.txt | 1 | ||||
-rw-r--r-- | streamlit_app.py | 43 | ||||
-rw-r--r-- | testing/ora_gpt4.py | 36 |
9 files changed, 135 insertions, 32 deletions
@@ -1,24 +1,20 @@ -# Gpt4free - use chatgpt, for free !! +# GPT4free - use ChatGPT, for free!! <img width="1383" alt="image" src="https://user-images.githubusercontent.com/98614666/233799515-1a7cb6a3-b17f-42c4-956d-8d2a0664466f.png"> -Have you ever come across some amazing projects that you couldnt use **just because you didn't have an OpenAI API key ?** +Have you ever come across some amazing projects that you couldnt use **just because you didn't have an OpenAI API key?** -**We've got u covered !!** This repository offers **reverse-engineered** third-party APIs for `GPT-4/3.5`, sourced from various websites. You can simply **download** this repository and use the available modules, which are designed to be used **just like OpenAI's official package**. **Unleash ChatGpt's potential for your projects, now !** You are welcome ; ). +**We've got you covered!** This repository offers **reverse-engineered** third-party APIs for `GPT-4/3.5`, sourced from various websites. You can simply **download** this repository and use the available modules, which are designed to be used **just like OpenAI's official package**. **Unleash ChatGPT's potential for your projects, now!** You are welcome ; ). -By the way, thank you so much for `2k` stars and all the support !! - -## Chatgpt clone -> https://chat.chatbot.sex/chat -> This site was developed by me and includes **gpt-4/3.5**, **internet access** and **gpt-jailbreak's** like DAN -> run locally here: https://github.com/xtekky/chatgpt-clone +By the way, thank you so much for `2k` stars and all the support!! ## Table of Contents +- [To do list](#todo) - [Current Sites](#current-sites) - [Best Sites for gpt4](#best-sites) -- [How to intall](#install) +- [How to install](#install) - [Legal Notice](#legal-notice) - [Copyright](#copyright) @@ -31,6 +27,15 @@ By the way, thank you so much for `2k` stars and all the support !! - [`writesonic`](./writesonic/README.md) - [`you`](./you/README.md) - [`sqlchat`](./sqlchat/README.md) + +## Todo <a name="todo"></a> + +- [ ] add a GUI for the repo +- [ ] make a general package like `openai_rev`, instead of different folders +- [ ] live api status to know which are down and which can be used +- [ ] integrate more api's in `./unfinished` aswell as other ones in the lists +- [ ] make an api to use as proxy for other projects +- [ ] make a pypi package ## Current Sites <a name="current-sites"></a> @@ -53,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) @@ -63,12 +69,21 @@ By the way, thank you so much for `2k` stars and all the support !! - why ? its not sure if they use gpt, but rather claude but they have an amazing search and good reasoning model ## Install <a name="install"></a> -- download or clone this github repo +- download or clone this GitHub repo 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 +> https://chat.chatbot.sex/chat +> This site was developed by me and includes **gpt-4/3.5**, **internet access** and **gpt-jailbreak's** like DAN +> run locally here: https://github.com/xtekky/chatgpt-clone ## Legal Notice <a name="legal-notice"></a> diff --git a/ora/README.md b/ora/README.md index b4ae0878..36bc2806 100644 --- a/ora/README.md +++ b/ora/README.md @@ -4,7 +4,14 @@ more gpt4 models in `/testing/ora_gpt4.py` +find the userid by visiting https://ora.sh/api/auth/session ( must be logged in on the site ) +and session_token in the cookies, it should be: __Secure-next-auth.session-token + ```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 +21,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', @@ -38,4 +46,4 @@ while True: conversationId = init.id) print(response.completion.choices[0].text) -```
\ No newline at end of file +``` 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/phind/README.md b/phind/README.md index c9b85dbb..f17f487f 100644 --- a/phind/README.md +++ b/phind/README.md @@ -5,6 +5,7 @@ import phind # set cf_clearance cookie phind.cf_clearance = 'xx.xx-1682166681-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' # same as the one from browser you got cf_clearance from prompt = 'who won the quatar world cup' diff --git a/phind/__init__.py b/phind/__init__.py index 8bae9f17..629befa5 100644 --- a/phind/__init__.py +++ b/phind/__init__.py @@ -8,6 +8,7 @@ from re import findall from curl_cffi.requests import post cf_clearance = '' +user_agent = '' class PhindResponse: @@ -52,6 +53,9 @@ class PhindResponse: class Search: def create(prompt: str, actualSearch: bool = True, language: str = 'en') -> dict: # None = no search + if user_agent == '': + raise ValueError('user_agent must be set, refer to documentation') + if not actualSearch: return { '_type': 'SearchResponse', @@ -83,7 +87,7 @@ class Search: 'sec-fetch-dest': 'empty', 'sec-fetch-mode': 'cors', 'sec-fetch-site': 'same-origin', - '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', + 'user-agent': user_agent } return post('https://www.phind.com/api/bing/search', headers = headers, json = { @@ -102,6 +106,9 @@ class Completion: codeContext: str = '', language: str = 'en') -> PhindResponse: + if user_agent == '': + raise ValueError('user_agent must be set, refer to documentation') + if results is None: results = Search.create(prompt, actualSearch = True) @@ -141,7 +148,7 @@ class Completion: 'sec-fetch-dest': 'empty', 'sec-fetch-mode': 'cors', 'sec-fetch-site': 'same-origin', - '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', + 'user-agent': user_agent } completion = '' @@ -192,9 +199,7 @@ class StreamingCompletion: 'creative': creative } } - - print(cf_clearance) - + headers = { 'authority': 'www.phind.com', 'accept': '*/*', @@ -209,7 +214,7 @@ class StreamingCompletion: 'sec-fetch-dest': 'empty', 'sec-fetch-mode': 'cors', 'sec-fetch-site': 'same-origin', - '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', + 'user-agent': user_agent } response = post('https://www.phind.com/api/infer/answer', @@ -228,6 +233,9 @@ class StreamingCompletion: codeContext : str = '', language : str = 'en'): + if user_agent == '': + raise ValueError('user_agent must be set, refer to documentation') + if results is None: results = Search.create(prompt, actualSearch = True) diff --git a/testing/phind_test.py b/phind/phind_test.py index 3e9217e1..94354fd8 100644 --- a/testing/phind_test.py +++ b/phind/phind_test.py @@ -1,7 +1,8 @@ import phind # set cf_clearance cookie -phind.cf_clearance = 'hWfIdYKgcnxnU5ayolWe9t7eEmAbULywS.qfHkm1T_A-1682166681-0-160' +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' prompt = 'hello world' diff --git a/requirements.txt b/requirements.txt index 0f9413b6..3f5e9e69 100644 --- a/requirements.txt +++ b/requirements.txt @@ -5,5 +5,6 @@ pypasser names colorama curl_cffi +streamlit==1.21.0 selenium fake-useragent
\ 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 1191d0ad..41f20876 100644 --- a/testing/ora_gpt4.py +++ b/testing/ora_gpt4.py @@ -1,5 +1,31 @@ import ora +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') +response = ora.Completion.create(model, 'hello') + +print(response.completion.choices[0].text) +conversation_id = response.id + +while True: + # pass in conversationId to continue conversation + + prompt = input('>>> ') + response = ora.Completion.create( + model = model, + prompt = prompt, + includeHistory = True, # remember history + conversationId = conversation_id) + + print(response.completion.choices[0].text) + + +# bots : # 1 normal # 2 solidity contract helper # 3 swift project helper @@ -16,12 +42,4 @@ import ora # 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.completion.choices[0].text) +# 19 AI Ethicist and Philosopher
\ No newline at end of file |