ChatGPT is a reverse engineering of OpenAI's ChatGPT API
Project description
ChatGPT
Reverse Engineered ChatGPT API by OpenAI. Extensible for chatbots etc.
Support my work
Make a pull request and fix my bad code.
Installation
pip3 install --upgrade revChatGPT
V1 Standard ChatGPT
Uses chat.openai.com
- Free
Uses chat.openai.com
- Free
Proxy server Rate limit: 25 requests per 10 seconds (per IP)
OpenAI rate limit: 50 requests per hour on free accounts. You can get around it with multi-account cycling
Plus accounts has around 150 requests per hour rate limit
Configuration
- Create account on OpenAI's ChatGPT
- Save your email and password
Authentication method: (Choose 1)
- Email/Password
Not supported for Google/Microsoft accounts
{
"email": "email",
"password": "your password"
}
- Session token
Comes from cookies on chat.openai.com as "__Secure-next-auth.session-token"
{
"session_token": "..."
}
- Access token
https://chat.openai.com/api/auth/session
{
"access_token": "<access_token>"
}
- Optional configuration:
{
"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.
Usage
Command line
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.
Developer API
Basic example (streamed):
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()
Basic example (single result):
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)
All API methods
Refer to the wiki for advanced developer usage.
V3 Official Chat API
Recently released by OpenAI
- Costs money
Recently released by OpenAI
- Costs money
Command line
python3 -m revChatGPT.V3 --api_key <api_key>
ChatGPT - Official ChatGPT API
Repo: github.com/acheong08/ChatGPT
Type '!help' to show a full list of commands
Press enter twice to submit your question.
!help - Display this message
!rollback n - Rollback the conversation by n messages
!exit - Quit chat
Developer API
Basic example
from revChatGPT.V3 import Chatbot
chatbot = Chatbot(api_key="<api_key>")
chatbot.ask("Hello world")
Streaming example
from revChatGPT.V3 import Chatbot
chatbot = Chatbot(api_key="<api_key>")
for data in chatbot.ask("Hello world"):
print(data, end="", flush=True)
Awesome ChatGPT
If you have a cool project you want added to the list, open an issue.
Disclaimers
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.
Credits
- virtualharby - Memes for emotional support
- All contributors - Pull requests
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for revChatGPT-3.0.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | dc62c7609568146ed72f947b4ea54b56baf31ed2cbc68edcc1f2b6014b6b98d2 |
|
MD5 | c5db7ac7278ed00374701bc2fbc35414 |
|
BLAKE2b-256 | 363980944203917c4244067456c846b1a96c204d98cb0ea6a67e426b113b102e |