Awesome
Status
Currently chatgpt-api
is not working, since OpenAI started to use Cloudflare. Also, it changes almost every day.
See https://github.com/mbroton/chatgpt-api/issues/18
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.
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
- Open ChromeDevTools (F12).
- Click on "Application" tab.
- Click on "Cookies", on the left bar.
- Copy the value of
__Secure-next-auth.session-token
:
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.