Reverse Engineered ChatGPT by OpenAI. Extensible for chatbots etc.
Note: This is a proof of concept. The goal here is to be able to write bots using the API.
- Scientific knowledge
- Has memory. It remembers the chat history and context
- No moderation
- Programmable
pip3 install revChatGPT --upgrade
Go to https://chat.openai.com/chat and log in or sign up
- Open console with
F12
- Open
Application
tab > Cookies - Copy the value for
__Secure-next-auth.session-token
and paste it intoconfig.json.example
undersession_token
. You do not need to fill outAuthorization
- Save the modified file to
config.json
(In the current working directory)
$ python3 -m revChatGPT
ChatGPT - A command-line interface to OpenAI's ChatGPT (https://chat.openai.com/chat)
Repo: github.com/acheong08/ChatGPT
Type '!help' to show commands
Press enter twice to submit your question.
You: !help
!help - Show this message
!reset - Forget the current conversation
!refresh - Refresh the session authentication
!exit - Exit the program
Make sure you run !refresh
if you are only using the session_token
.
Refresh every so often in case the token expires.
You can pass the output through a processor using command line arguments.
Example:
Use python3 -m revChatGPT say
to make a Mac speak the output
pip3 install revChatGPT --upgrade
from revChatGPT.revChatGPT import Chatbot
import json
# Get your config in JSON
config = {
"Authorization": "<Your Bearer Token Here>", # This is optional
"session_token": "<Your Session Token here>" # This is used to refresh the authentication
}
chatbot = Chatbot(config, conversation_id=None)
chatbot.reset_chat() # Forgets conversation
chatbot.refresh_session() # Uses the session_token to get a new bearer token
resp = chatbot.get_chat_response(prompt) # Sends a request to the API and returns the response by OpenAI
resp['message'] # The message sent by the response
resp['conversation_id'] # The current conversation id
resp['parent_id'] # The ID of the response
This can be imported to projects for bots and much more. You can have multiple independent conversations by keeping track of the conversation_id.