ChatGPT is a reverse engineering of OpenAI's ChatGPT API
Project description
ChatGPT
Reverse Engineered ChatGPT API by OpenAI. Extensible for chatbots etc.
Connect with me on Linkedin to support this project. (Not open for commercial opportunities yet. Too busy)
You can also follow me on Twitter to stay up to date.
BingGPT is out! It's just like ChatGPT but with live internet access. Reverse engineered from the pre-release by Microsoft.
You need to be waitlisted by Microsoft/Bing
Discord community: https://discord.gg/WMNtbDUjUv
V2 Browserless ChatGPT
Using cloudflare bypass server (no browser on server either). Check out the server source code: https://github.com/acheong08/ChatGPT-Proxy-V2
Notices
It seems I wasn't clear enough in my explanations and lead to some misunderstandings:
- Your email and password are not sent to me. Authentication is done locally with https://github.com/acheong08/OpenAIAuth
- Unless you use
--insecure-auth
. This is meant for users who are blocked from accessing OpenAI websites- The server is open source: https://github.com/acheong08/ChatGPT-Proxy-V2 but with a
config.json
missing to avoid OpenAI detection.- Rate limits: 30 requests per minute
Usage
pip3 install --upgrade revChatGPT
$ python3 -m revChatGPT.V2 -h
ChatGPT - A command-line interface to OpenAI's ChatGPT (https://chat.openai.com/chat)
Repo: github.com/acheong08/ChatGPT
usage: V2.py [-h] -e EMAIL -p PASSWORD [--paid] [--proxy PROXY] [--insecure-auth]
options:
-h, --help show this help message and exit
-e EMAIL, --email EMAIL
Your OpenAI email address
-p PASSWORD, --password PASSWORD
Your OpenAI password
--paid Use the paid API
--proxy PROXY Use a proxy (e.g. socks5://IP:PORT)
--insecure-auth Use an insecure authentication method to bypass OpenAI's geo-blocking (not recommended)
Developers
Wiki: https://github.com/acheong08/ChatGPT/wiki/V2
Example code:
from revChatGPT.V2 import Chatbot
async def main():
chatbot = Chatbot(email="...", password="...")
async for line in chatbot.ask("Hello"):
print(line["choices"][0]["text"].replace("<|im_end|>", ""), end="")
sys.stdout.flush()
print()
if __name__ == "__main__":
import asyncio
asyncio.run(main())
Outdated V1 versions
V1.1 Proxy API
Update 2023/02/11 - I am getting DDOSed. I might not be able to keep hosting it. Use V1 or host a bypass server yourself
The proxy is identical to V1 but uses a proxy to bypass the browser automation. This is the recommended version. You can read up on the documentation below
Differences:
- Automatic session refresh on client side
- Browserless
from revChatGPT.Proxied import Chatbot
Notes
Proxy server is open source at https://github.com/acheong08/ChatGPT-Proxy
Usage
- Save your email and password to
$HOME/.config/revChatGPT/config.json
{"email": "<your username>", "password": "<your password>"}
python3 -m revChatGPT.Proxied
V1 Browser automation
Browser is required on startup to fetch cookies. Breaks terms of service.
Installation
pip3 install revChatGPT
Configuration
- Create account on OpenAI's ChatGPT
- Save your email and password
Required configuration:
{
"email": "<your email>",
"password": "your password",
}
Optional configuration:
{
"conversation_id": "UUID...",
"parent_id": "UUID...",
"proxy": "...",
"paid": false
}
- Save this as
$HOME/.config/revChatGPT/config.json
Usage
Command line
python3 -m revChatGPT.Unofficial
!help - Show this message
!reset - Forget the current conversation
!refresh - Refresh the session authentication
!config - Show the current configuration
!rollback x - Rollback the conversation (x being the number of messages to rollback)
!exit - Exit this program
Developer
from revChatGPT.Unofficial import Chatbot
chatbot = Chatbot({
"email": "<your email>",
"password": "your password"
}, conversation_id=None, parent_id=None) # You can start a custom conversation
response = chatbot.ask("Prompt", conversation_id=None, parent_id=None) # You can specify custom conversation and parent ids. Otherwise it uses the saved conversation (yes. conversations are automatically saved)
print(response)
# {
# "message": message,
# "conversation_id": self.conversation_id,
# "parent_id": self.parent_id,
# }
Refer to wiki for advanced developer usage
API
python3 -m revChatGPT.GPTserver
python3 -m revChatGPT.GPTserver
HTTP POST request:
{
"session_token": "eyJhbGciOiJkaXIiL...",
"prompt": "Your prompt here"
}
Optional:
{
"session_token": "eyJhbGciOiJkaXIiL...",
"prompt": "Your prompt here",
"conversation_id": "UUID...",
"parent_id": "UUID..."
}
- Rate limiting is enabled by default to prevent simultaneous requests
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-2.1.11-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 11ef8ae32f9388a5818c5ae294db27526adad5c8b2b3fb4db2777dec373d82a9 |
|
MD5 | 5dd58a29eb286e8d8be40180e26eed8c |
|
BLAKE2b-256 | dbac9f6d6d6f10a94d76ed619f1601c5f541002f71f878207208909ba0352e84 |