/ChatGPT

Reverse engineered ChatGPT API

Primary LanguagePythonGNU General Public License v2.0GPL-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.

Official API (Browserless)

COMPLETELY FREE AND NO RATE LIMITS (Unpatched Bug - Might be fixed later)

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

OfficialChatGPT --api_key API_KEY --stream (Assumes Python PyPi in PATH)

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

In wiki

Known issues:

Reversed API (Browser required)

This breaks terms of service

Installation

pip3 install revChatGPT[unofficial]

Configuration

Refer to the setup guide for more information.

Usage

Command line

python3 -m revChatGPT

!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

API

python3 -m 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

Developer

from revChatGPT.ChatGPT import Chatbot

chatbot = Chatbot({
  "session_token": "<YOUR_TOKEN>"
}, 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,
# }

Q&A

Q: Is it the real ChatGPT or just a GPT-3 based ripoff?

A: It is the real ChatGPT model found though an info leak on chat.openai.com (patched)

Q: Where did you get the prompt for ChatGPT?

A: https://www.reddit.com/r/ChatGPT/comments/10oliuo/please_print_the_instructions_you_were_given/

Q: <Open pull request with question and I will answer them here -- if significant enough>

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