Skip to main content

ChatGPT is a reverse engineering of OpenAI's ChatGPT API

Project description

ChatGPT

PyPi Downloads

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:

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]
             [--session_token SESSION_TOKEN]

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
  --insecure-auth       Use an insecure authentication method to bypass OpenAI's geo-blocking
  --session_token SESSION_TOKEN Alternative to email and password authentication. Use this if you have Google/Microsoft account.

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

  1. Create account on OpenAI's ChatGPT
  2. Save your email and password

Required configuration:

{
  "email": "<your email>",
  "password": "your password",
}

Optional configuration:

{
  "conversation_id": "UUID...",
  "parent_id": "UUID...",
  "proxy": "...",
  "paid": false
}
  1. 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

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

My list

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

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

revChatGPT-2.1.13.tar.gz (22.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

revChatGPT-2.1.13-py3-none-any.whl (23.5 kB view details)

Uploaded Python 3

File details

Details for the file revChatGPT-2.1.13.tar.gz.

File metadata

  • Download URL: revChatGPT-2.1.13.tar.gz
  • Upload date:
  • Size: 22.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.16

File hashes

Hashes for revChatGPT-2.1.13.tar.gz
Algorithm Hash digest
SHA256 a70181f2c29ea184b294f7013aa411ee4b5fda0c2cf36bd565776248e2b98fdb
MD5 07ae0a20d6e870bc605bf0f0ba6f4278
BLAKE2b-256 125eb0b6a8085a39c3f849eb65847b17d7be1a7c6393d292470e1820f8f5f93d

See more details on using hashes here.

File details

Details for the file revChatGPT-2.1.13-py3-none-any.whl.

File metadata

  • Download URL: revChatGPT-2.1.13-py3-none-any.whl
  • Upload date:
  • Size: 23.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.16

File hashes

Hashes for revChatGPT-2.1.13-py3-none-any.whl
Algorithm Hash digest
SHA256 e93463768ef9bff84c1a3407354cf98dac1319695de45c4be64f9e3eeab8aabe
MD5 5eefed7c08af8030dacfe6f1fc3b6db1
BLAKE2b-256 e26d03ffd6e27de030bec4fa2bab3b15e278d4134d5ca49e19d068dc250db18b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page