selenium webdriver
とundetectable chromedriver
を使用した OpenAI GPT API レプリケーション。
注: Chrome を使用します。
公式 ChatGPT Web サイトと対話し、(公式 API とは対照的に) 完全に無料で呼び出し元に応答を送り返します。
エンドポイント ( forefront
、 theb
など) は使用しません。
このプログラムは教育目的のみに作成されました。このプログラムを使用して行われる行為については、ユーザーが単独で責任を負います。このプログラムの作成者は、このプログラムの悪用、またはこのプログラムの使用から生じる可能性のある損害に対して、一切の責任を負いません。
このセクションでは、 SlymeGPT
のセットアップ プロセスについて説明します。
(必ず最初にhttps://github.com/mache102/SlymeGPT.git
を使用してリポジトリのクローンを作成し、パッケージpip install -r requirements.txt
をダウンロードしてください)
Chrome -> Settings -> About Chrome
Chrome のバージョンを確認します (最新の場合は更新してください)。
次に、https://chromedriver.chromium.org/downloads に移動し、対応するバージョンをダウンロードします。
Chrome WebDriver をシステムの PATH 変数に追加します。
1. Move the downloaded Chrome WebDriver executable to a folder of your choice.
2. Open your computer's "System Properties" settings.
3. Click on the "Advanced" tab and then click on the "Environment Variables" button.
4. Under "System Variables", find the "Path" variable and click "Edit".
5. Click "New" and add the folder path where the Chrome WebDriver executable is located.
6. Click "OK" on all open windows to save the changes.
ディレクトリをSlymeGPT
に変更します。 open_browser.py
で、 profile_name
選択した Chrome プロファイルに変更するか、そのままにしてデフォルトのプロファイルを使用します。
プロファイルは Chrome ディレクトリにあります。
C:/Users/[username]/AppData/Local/Google/Chrome/User Data/
~/.config/google-chrome/
~/Library/Application Support/Google/Chrome/
プロファイルを選択した後、 python open_browser.py
を実行して、Selenium で制御されるブラウザを開きます。
次の画面が表示されるはずです。
そこから、ChatGPT にログインし (「ログイン状態を維持」を必ず有効にしてください)、初回ログイン通知をクリックしてスルーします。
完了したら、ウィンドウを閉じて CLI で ENTER キーを押します (または単にopen_browser.py
を終了します)。
セットアップが完了しました。
from slyme import SlymeDriver
をインポートすることで、プログラムでモジュールを使用できるようになりました。デモについては、 example.py
参照してください。これは、ユーザーの入力を受け取り、それを ChatGPT に転送し、応答をユーザーに送り返す単純なプログラムです。
表示される UI (ヘッドレスではない)でモジュールを実行してください。ブラウザ ウィンドウは数秒後に自動的に最小化されます。
モジュールをヘッドレス モードで実行しようとしたり、ブラウザ ウィンドウを手動で最小化しようとすると、問題が発生する可能性があります (Selenium/UC の問題の可能性があります)。
インターネット/読み込み速度に応じて、Web ページを開いた後、少し待つことをお勧めします。
from slyme import SlymeDriver
import time
def main ():
slyme = SlymeDriver ( pfname = 'Default' )
time . sleep ( 5 )
# driver.implicitly_wait() doesn't account for element loading
# - attempting to instantly access elements may result in a StaleElement error
# perform actions
slyme . select_latest_chat ()
#...
以下は、モジュールに付属する各機能を示して説明するコード スニペットです。
from slyme import SlymeDriver
import time
def main ():
slyme = SlymeDriver ( pfname = 'Default' )
time . sleep ( 5 )
# 1.
# Selects the latest accessed chat from the user's chat history.
slyme . select_latest_chat ()
# 2.
# Sends a prompt to ChatGPT and returns its response.
output = slyme . completion ( prompt = 'What does shutil.rmdir("C:/") do?' )
print ( output )
# 3.
# Renames a past chat.
slyme . rename_chat ( chat_name = 'Arch Linux' , new_name = 'I use Arch btw' )
# 4.
# Selects the chat with a matching name.
slyme . select_chat ( chat_name = 'I use Arch btw' )
# 5.
# Create a new chat.
slyme . new_chat ()
# 6.
# End the driver session.
slyme . end_session ()
if __name__ == "__main__" :
main ()