README.md

    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 (Assumes Python PyPi in PATH)

    Developer

    Further Documentation

    In wiki

    Example

    from revChatGPT.Official import Chatbot
    
    def main():
        def get_input(prompt):
            """
            Multi-line input function
            """
            # Display the prompt
            print(prompt, end="")
    
            # Initialize an empty list to store the input lines
            lines = []
    
            # Read lines of input until the user enters an empty line
            while True:
                line = input()
                if line == "":
                    break
                lines.append(line)
    
            # Join the lines, separated by newlines, and store the result
            user_input = "\n".join(lines)
    
            # Return the input
            return user_input
    
        def chatbot_commands(cmd: str) -> bool:
            """
            Handle chatbot commands
            """
            if cmd == "!help":
                print(
                    """
                !help - Display this message
                !rollback - Rollback chat history
                !reset - Reset chat history
                !exit - Quit chat
                """
                )
            elif cmd == "!exit":
                exit()
            elif cmd == "!rollback":
                chatbot.rollback(1)
            elif cmd == "!reset":
                chatbot.reset()
            else:
                return False
            return True
    
        import argparse
    
        # Get API key from command line
        parser = argparse.ArgumentParser()
        parser.add_argument(
            "--api_key",
            type=str,
            required=True,
            help="OpenAI API key",
        )
        args = parser.parse_args()
        # Initialize chatbot
        chatbot = Chatbot(api_key=args.api_key)
        # Start chat
        while True:
            PROMPT = get_input("\nUser:\n")
            if PROMPT.startswith("!"):
                if chatbot_commands(PROMPT):
                    continue
            response = chatbot.ask(PROMPT)
            print("ChatGPT: " + response["choices"][0]["text"])
    
    
    if __name__ == "__main__":
        main()

    Unofficial API (Browser required, free)

    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

    项目简介

    Lightweight package for interacting with ChatGPT's API by OpenAI. Uses reverse engineered official API.

    🚀 Github 镜像仓库 🚀

    源项目地址

    https://github.com/acheong08/ChatGPT

    发行版本

    当前项目没有发行版本

    贡献者 50

    全部贡献者

    开发语言

    • Python 100.0 %