Skip to main content

Added backtracking chat on the basis of [terry3041/pyChatGPT]

Project description

pyChatGPTLoop

PyPi License PyPi

Added backtracking chat on the basis of terry3041/pyChatGPT

Extra Features

  • can go back to a conversational moment in the past
  • increase the function of initializing personality
  • set local chromedriver
  • optimized the output, removing two newlines

backtracking chat

pSurC8S.png

initializing personality

pSurS4f.png

Getting Started

This library is using only the undetected_chromedriver to bypass Cloudflare's anti-bot protection. Please make sure you have Google Chrome / Chromium before using this wrapper.

Installation

git clone https://github.com/nek0us/pyChatGPTLoop.git
pip install .

# or

pip install pyChatGPTLoop --upgrade

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 pyChatGPTLoop

Import as a module

from pyChatGPTLoop.pyChatGPTLoop 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)

api = ChatGPT(session_token, driver_path="C:\\yourdriverpath\\chromedriver.exe") # set local chromedriver if you don't wish it update in windows
api = ChatGPT(session_token, driver_path="/yourpath/chromedriver") # set local chromedriver if you don't wish it update in linux

# 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

loop_text = "some words"
api.backtrack_chat(loop_text)  # return the loop_text conversation

personality_definition = [{"content":r'Now you are going to pretend to be a math teacher called "nothing" to help me with my math',"AI_verify":True}]
api.init_personality(True,personality_definition)

Frequently Asked Questions

How do i initializing personality?

# An example of initializing the vocabulary format, the vocabulary content is not representative
personality_definition = [
        {
            "content":r'Now you are going to pretend to be a math teacher called "nothing" to help me with my math',
            "AI_verify":True
            },
        {
            "content":r"You will be very strict in pointing out my mistakes",
            "AI_verify":False
            }
    ]

new_conversation = True
api.backtrack_chat(new_conversation,personality_definition)
# new_conversation : Whether to open a new session for personality initialization, the default is true
# personality_definition: Personality initialization phrase is a list, a single element is a dict, 
# content is the content of the phrase, and AI_verify is a successful detection of personality
# returns a boolean result

How do i go back to the conversation i had?

# You said some words to chatGPT
loop_text = 'some words'

# Go back to the dialogue where these words last appeared
api.backtrack_chat(loop_text)
#return an boolen result

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

image

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 pyChatGPTLoop

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


Download files

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

Source Distribution

pyChatGPTLoop-0.0.5.tar.gz (14.3 kB view hashes)

Uploaded Source

Built Distribution

pyChatGPTLoop-0.0.5-py3-none-any.whl (25.8 kB view hashes)

Uploaded Python 3

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