ChatGPT - Reverse engineered ChatGPT API

Created at: 2022-12-03 22:35:24
Language: Python
License: GPL-2.0

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.

This repository is updated highly frequently. Expect breaking changes. Always read docs and readme before updating or opening an issue

Base model API

Update3 2023/02/08: The model is consistently overloaded. I am resuming efforts on making a ChatGPT proxy (browserless) service. Please use the browser version until further notice.

Free, browserless, and without rate limits. Uses an outdated base model for ChatGPT.

Installation

pip3 install revChatGPT

Setup

  1. Create account on OpenAI
  2. Go to https://platform.openai.com/account/api-keys
  3. Copy API key

Usage

Command line

python3 -m revChatGPT.Official --api_key API_KEY --stream

Developer

Both Async and Sync are available. You can also stream responses via a generator. Read example code to learn more

Example code

You can find it here

Further Documentation

You can find it wiki

ChatGPT website version

Browser is required. Breaks terms of service.

Installation

pip3 install revChatGPT[unofficial]

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": "...",
}
  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