Skip to content
This repository was archived by the owner on Nov 7, 2024. It is now read-only.

mbroton/chatgpt-api

Repository files navigation

💻 ChatGPT API

Unofficial API client and CLI for ChatGPT.

PyPI License Coverage


Short Demo GIF


This project is based on httpx (uses only HTTP) and uses Typer (with Rich) for CLI, so responses are looking good (markdown is supported). Also, It has almost 100% code coverage unlike other ChatGPT packages.

Long Demo GIF

Current status

This project was created before an API for GPT models existed, and it became deprecated just as quickly as it was developed. The implemented solution has not been operational since the end of 2022.

Installation

From Pypi

pip install chatgpt-api

Source code

pip install -r requirements.txt && pip install .

Usage

As a Command Line Interface

Setup

Required to authenticate. In this step you have to provide a path to the file containing the session key. A simple txt file with the key only is enough.

chatgpt setup

Tip: Use a file named .session_key in chatgpt-api top directory. It will be ignored by git - see .gitignore.

The key will be saved to

Path.home() / ".chatgpt_api" / "key.txt"

Session messages are logged to

Path.home() / ".chatgpt_api" / "logs"

Start chatting

chatgpt start

As an API

ChatGPT class inherits from httpx.Client

Recommended usage:

from chatgpt.api import ChatGPT

with ChatGPT(session_token="your-session-token") as chat:
    response = chat.send_message("Hello!")
    print(response.content)

Without context manager you have to explicitly authenticate:

from chatgpt.api import ChatGPT

chat = ChatGPT(session_token="your-session-token")
chat.authenticate()
response = chat.send_message("Hello!")
print(response.content)
chat.close()

How to acquire session key?

After you log in to ChatGPT in your browser, get value of __Secure-next-auth.session-token cookie. In this project, this is named as a "session key".

Chrome instruction

  1. Open ChromeDevTools (F12).
  2. Click on "Application" tab.
  3. Click on "Cookies", on the left bar.
  4. Copy the value of __Secure-next-auth.session-token:

Cookie value example

Now, you can use it in CLI or directly from Python code.

License

Distributed under the MIT License. See LICENSE for more information.

Disclaimer

This is a personal project, not affiliated in any way with OpenAI. If you have any objections, contact @mbroton.

About

ChatGPT HTTP API Client and CLI

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •  

Languages

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy