Skip to main content

An unofficial Python wrapper for OpenAI's ChatGPT API for HEROKU

Project description

pyChatGPTH

PyPi License PyPi

An unofficial Python wrapper for OpenAI's ChatGPT API

Features

  • Cloudflare's anti-bot protection bypass using undetected_chromedriver
  • OpenAI / Google / Microsoft login support (experimental)
  • Captcha solvers support (2Captcha, PyPasser)
  • Headless machines support
  • Proxy support (only without basic auth)

Getting Started

Since version 0.3.0, this library is using only the undetected_chromedriver to bypass Cloudflare's anti-bot protection. requests module is no longer used due to the complexity of the protection. Please make sure you have Google Chrome / Chromium before using this wrapper.

Installation

pip install -U pyChatGPTH

Usage

Obtaining session_token

  1. Go to https://chat.openai.com/chat and open the developer tools by F12.
  2. Find the __Secure-next-auth.session-token cookie in Application > Storage > Cookies > https://chat.openai.com.
  3. Copy the value in the Cookie Value field.

image

Interactive mode

python3 -m pyChatGPT

Import as a module

from pyChatGPT import ChatGPT

session_token = 'abc123'  # `__Secure-next-auth.session-token` cookie from https://chat.openai.com/chat
api = ChatGPT(session_token)  # auth with session token
api = ChatGPT(session_token, conversation_id='some-random-uuid')  # specify conversation id
api = ChatGPT(session_token, proxy='https://proxy.example.com:8080')  # specify proxy
api = ChatGPT(session_token, chrome_args=['--window-size=1920,768'])  # specify chrome args
api = ChatGPT(session_token, moderation=False)  # disable moderation
api = ChatGPT(session_token, verbose=True)  # verbose mode (print debug messages)

# auth with google login
api = ChatGPT(auth_type='google', email='example@gmail.com', password='password')
# auth with microsoft login
api = ChatGPT(auth_type='microsoft', email='example@gmail.com', password='password')
# auth with openai login (captcha solving using speech-to-text engine)
api = ChatGPT(auth_type='openai', email='example@gmail.com', password='password')
# auth with openai login (manual captcha solving)
api = ChatGPT(
    auth_type='openai', captcha_solver=None,
    email='example@gmail.com', password='password'
)
# auth with openai login (2captcha for captcha solving)
api = ChatGPT(
    auth_type='openai', captcha_solver='2captcha', solver_apikey='abc',
    email='example@gmail.com', password='password'
)
# reuse cookies generated by successful login before login,
# if `login_cookies_path` does not exist, it will process logining  with `auth_type`, and save cookies to `login_cookies_path`
# only works when `auth_type` is `openai` or `google`
api = ChatGPT(auth_type='openai', email='example@xxx.com', password='password',
    login_cookies_path='your_cookies_path',
)

resp = api.send_message('Hello, world!')
print(resp['message'])

api.reset_conversation()  # reset the conversation
api.clear_conversations()  # clear all conversations
api.refresh_chat_page()  # refresh the chat page

Frequently Asked Questions

How do I get it to work on headless linux server?

# install chromium & X virtual framebuffer
sudo apt install chromium-browser xvfb

# start your script
python3 your_script.py

How do I get it to work on Google Colab?

It is normal for the seession to be crashed when installing dependencies. Just ignore the error and run your script.

# install dependencies
!apt install chromium-browser xvfb
!pip install -U selenium_profiles pyChatGPT

# install chromedriver
from selenium_profiles.utils.installer import install_chromedriver
install_chromedriver()
# start your script as normal
!python3 -m pyChatGPT

Insipration

This project is inspired by

Disclaimer

This project is not affiliated with OpenAI in any way. Use at your own risk. I am not responsible for any damage caused by this project. Please read the OpenAI Terms of Service before using this project.

License

This project is licensed under the GPLv3 License - see the LICENSE file for details.

Project details


Release history Release notifications | RSS feed

This version

2.0

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyChatGPTH-2.0.tar.gz (24.3 kB view details)

Uploaded Source

Built Distribution

pyChatGPTH-2.0-py3-none-any.whl (23.3 kB view details)

Uploaded Python 3

File details

Details for the file pyChatGPTH-2.0.tar.gz.

File metadata

  • Download URL: pyChatGPTH-2.0.tar.gz
  • Upload date:
  • Size: 24.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.2

File hashes

Hashes for pyChatGPTH-2.0.tar.gz
Algorithm Hash digest
SHA256 23d464c0574b11313935ba83c96da352dc77c68e3cd48097f342ebd2c1a13b02
MD5 058a3f152d0b952c5a4f6ec411a0f858
BLAKE2b-256 8e50fc781122443498c7f9c737fef783f46ac4b6efb377d8ac0d10cd7c29d323

See more details on using hashes here.

File details

Details for the file pyChatGPTH-2.0-py3-none-any.whl.

File metadata

  • Download URL: pyChatGPTH-2.0-py3-none-any.whl
  • Upload date:
  • Size: 23.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.2

File hashes

Hashes for pyChatGPTH-2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 68d17f2496bef3caf12bad535ee4bb71b11677fafac5e6407b4f43541b7568e9
MD5 2602f41d4fe73cb8ba3830e1c7ddfeb7
BLAKE2b-256 0d86ec0b29325def730cef013dd519d0d7ea240f964d109d9199a62b1b2ead35

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page