Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Marc518/ChatGPT

Repository files navigation

ChatGPT

PyPi Downloads

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

Proxy server Rate limit: 15 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

  1. Create account on OpenAI's ChatGPT
  2. 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
}
  1. Save this as $HOME/.config/revChatGPT/config.json
  2. 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

Get API key from https://platform.openai.com/account/api-keys

Command line

python3 -m revChatGPT.V3 --api_key <api_key>

 $ python3 -m revChatGPT.V3 -h
 ChatGPT - Official ChatGPT API
 Repo: github.com/acheong08/ChatGPT
Type '!help' to show a full list of commands
Press Esc followed by Enter or Alt+Enter to send a message.
usage: V3.py [-h] --api_key API_KEY [--temperature TEMPERATURE] [--no_stream] [--base_prompt BASE_PROMPT]
 [--proxy PROXY] [--top_p TOP_P] [--reply_count REPLY_COUNT] [--enable-internet]
options:
 -h, --help show this help message and exit
 --api_key API_KEY OpenAI API key
 --temperature TEMPERATURE
 Temperature for response
 --no_stream Disable streaming
 --base_prompt BASE_PROMPT
 Base prompt for chatbot
 --proxy PROXY Proxy address
 --top_p TOP_P Top p for response
 --reply_count REPLY_COUNT
 Number of replies for each prompt
 --enable-internet Allow ChatGPT to access the internet (beta)

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

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

About

Reverse engineered ChatGPT API

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%

AltStyle によって変換されたページ (->オリジナル) /