การจำลอง OpenAI GPT API ด้วย selenium webdriver
และ undetectable chromedriver
หมายเหตุ: ใช้ Chrome
โต้ตอบกับเว็บไซต์อย่างเป็นทางการของ ChatGPT และส่งคำตอบกลับไปยังผู้โทรโดยไม่มีค่าใช้จ่ายใดๆ ทั้งสิ้น (ตรงข้ามกับ 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 (อย่าลืมเปิดใช้งาน 'คงอยู่ในระบบ') และคลิกผ่านการแจ้งเตือนการเข้าสู่ระบบครั้งแรก
เมื่อเสร็จแล้ว ให้ปิดหน้าต่างแล้วกด ENTER ใน CLI (หรือเพียงแค่ยุติ open_browser.py
)
การตั้งค่าเสร็จสมบูรณ์
ตอนนี้คุณสามารถใช้โมดูลในโปรแกรมของคุณได้โดยการนำเข้า from slyme import SlymeDriver
สำหรับการสาธิต โปรดดู example.py
ซึ่งเป็นโปรแกรมง่ายๆ ที่รับอินพุตของผู้ใช้ ส่งต่อไปยัง ChatGPT และส่งการตอบกลับกลับไปยังผู้ใช้
โปรดเรียกใช้โมดูลด้วย UI ที่มองเห็นได้ (ไม่ใช่แบบไม่มีหัว) หน้าต่างเบราว์เซอร์จะ ย่อเล็กสุดโดยอัตโนมัติ หลังจากผ่านไปไม่กี่วินาที
ความพยายามที่จะรันโมดูลในโหมด headless หรือย่อขนาดหน้าต่างเบราว์เซอร์ด้วยตนเองอาจทำให้เกิดปัญหา (ปัญหา Selenium/UC ที่เป็นไปได้)
แนะนำให้รอสักครู่หลังจากเปิดหน้าเว็บ ทั้งนี้ขึ้นอยู่กับอินเทอร์เน็ต/ความเร็วในการโหลด
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 ()