Reverse Engineered ChatGPT API by OpenAI. Extensible for chatbots etc.
Make a pull request and fix my bad code.
pip3 install --upgrade revChatGPT
Uses a proxy to chat.openai.com
which bypasses cloudflare
- Free
A third party API is used to access the chat. Be aware that it could be malicious and steal your access token. Use at your own risk. I am not responsible for any damages caused by this API. (Nothing malicious reported so far. Let me know if you face any security issues with it)
- I recently deprecated my own API due to excessive costs that I am unable to afford.
Uses a proxy to chat.openai.com
which bypasses cloudflare
- Free
A third party API is used to access the chat. Be aware that it could be malicious and steal your access token. Use at your own risk. I am not responsible for any damages caused by this API. (Nothing malicious reported so far. Let me know if you face any security issues with it)
- I recently deprecated my own API due to excessive costs that I am unable to afford.
- Create account on OpenAI's ChatGPT
- Save your email and password
Not supported for Google/Microsoft accounts
{
"email": "email",
"password": "your password"
}
Comes from cookies on chat.openai.com as "__Secure-next-auth.session-token"
{
"session_token": "..."
}
https://chat.openai.com/api/auth/session
{
"access_token": "<access_token>"
}
{
"conversation_id": "UUID...",
"parent_id": "UUID...",
"proxy": "...",
"paid": false
}
- Save this as
$HOME/.config/revChatGPT/config.json
- If you are using Windows, you will need to create an environment variable named
HOME
and set it to your home profile for the script to be able to locate the config.json file.
python3 -m revChatGPT.V1
ChatGPT - A command-line interface to OpenAI's ChatGPT (https://chat.openai.com/chat)
Repo: github.com/acheong08/ChatGPT
Type '!help' to show a full list of commands
Logging in...
You:
(Press Esc followed by Enter to finish)
The command line interface supports multi-line inputs and allows navigation using arrow keys. Besides, you can also edit history inputs by arrow keys when the prompt is empty. It also completes your input if it finds matched previous prompts. To finish input, press Esc
and then Enter
as solely Enter
itself is used for creating new line in multi-line mode.
Set the environment variable NO_COLOR
to true
to disable color output.
from revChatGPT.V1 import Chatbot
chatbot = Chatbot(config={
"email": "<your email>",
"password": "<your password>"
})
print("Chatbot: ")
prev_text = ""
for data in chatbot.ask(
"Hello world",
):
message = data["message"][len(prev_text) :]
print(message, end="", flush=True)
prev_text = data["message"]
print()
from revChatGPT.V1 import Chatbot
chatbot = Chatbot(config={
"email": "<your email>",
"password": "<your password>"
})
prompt = "how many beaches does portugal have?"
response = ""
for data in chatbot.ask(
prompt
):
response = data["message"]
print(response)
Refer to the wiki for advanced developer usage.
Recently released by OpenAI
- Paid
Recently released by OpenAI
- Paid
Get API key from https://platform.openai.com/account/api-keys
python3 -m revChatGPT.V3 --api_key <api_key>
$ python3 -m revChatGPT.V3 -h
ChatGPT - Official ChatGPT API
Repo: github.com/acheong08/ChatGPT
Type '!help' to show a full list of commands
Press Esc followed by Enter or Alt+Enter to send a message.
usage: V3.py [-h] --api_key API_KEY [--temperature TEMPERATURE] [--no_stream] [--base_prompt BASE_PROMPT]
[--proxy PROXY] [--top_p TOP_P] [--reply_count REPLY_COUNT] [--enable-internet]
options:
-h, --help show this help message and exit
--api_key API_KEY OpenAI API key
--temperature TEMPERATURE
Temperature for response
--no_stream Disable streaming
--base_prompt BASE_PROMPT
Base prompt for chatbot
--proxy PROXY Proxy address
--top_p TOP_P Top p for response
--reply_count REPLY_COUNT
Number of replies for each prompt
--enable_internet Allow ChatGPT to access the internet (beta)
--submit_key SUBMIT_KEY
Custom submit key for chatbot. For more information on keys, see:
https://python-prompt-toolkit.readthedocs.io/en/stable/pages/advanced_topics/key_bindings.html#list-of-special-keys
from revChatGPT.V3 import Chatbot
chatbot = Chatbot(api_key="<api_key>")
chatbot.ask("Hello world")
from revChatGPT.V3 import Chatbot
chatbot = Chatbot(api_key="<api_key>")
for data in chatbot.ask("Hello world"):
print(data, end="", flush=True)
If you have a cool project you want added to the list, open an issue.
This is not an official OpenAI product. This is a personal project and is not affiliated with OpenAI in any way. Don't sue me.
- virtualharby - Memes for emotional support
- @PawanOsman - V1 proxy (since 2023/03/08)
- All contributors - Pull requests