Coder Social home page Coder Social logo

revchatgpt's Introduction

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.

Discord community: https://discord.gg/WMNtbDUjUv

V1 Standard ChatGPT

Update 2023/02/14 9:00 PM GMT+8: It is working. Use this.

Installation

pip3 install revChatGPT

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

!help - Show this message
!reset - Forget the current conversation
!config - Show the current configuration
!rollback x - Rollback the conversation (x being the number of messages to rollback)
!exit - Exit this program

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.

V2 Fast ChatGPT API

Under maintenance

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: 180 requests per minute (IP based)
  • I am running the server right now

IMPORTANT

You must either define --paid in command line or paid=True in code if you have a plus subscription.

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       (Deprecated)
  --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="", flush = True)
    print()

if __name__ == "__main__":
    import asyncio
    asyncio.run(main())

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

revchatgpt's People

Contributors

harry-jing avatar skippyyy avatar snowmeow2 avatar robbiebusinessacc avatar scottleibrand avatar diamonddemon669 avatar pyro1121 avatar jamminroot avatar monsterdruide1 avatar f33rni avatar penut85420 avatar viralrupani avatar lukaevet avatar ojdev avatar superswan avatar ukenn2112 avatar lss233 avatar dong-zeyu avatar zwa73 avatar jianwang-ntu avatar suzhiba avatar sunneydev avatar sunlanchang avatar sryu1 avatar nieziqi123 avatar monadmonami avatar ahmedivy avatar xymeng16 avatar ewouth avatar amitmy avatar

Stargazers

Andy avatar ciaran avatar  avatar  avatar  avatar  avatar MasterMonster avatar Andrey avatar  avatar Cydiar avatar

Watchers

Andrey avatar Yuting Lyu avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.