Home / Sharenewshort / API FREE ChatGPT Bằng Selenium

API FREE ChatGPT Bằng Selenium

Giới thiệu

Trong thời đại AI phát triển mạnh mẽ, nhu cầu tích hợp các mô hình như ChatGPT vào quy trình làm việc hoặc thử nghiệm tự động ngày càng tăng. Dự án chatgptseleniumautomation của tác giả Michelangelo27 là một bằng chứng thú vị (PoC – Proof of Concept) cho thấy cách tự động hóa việc tương tác với ChatGPT thông qua trình duyệt web bằng công cụ Selenium.

Bài viết này sẽ đi sâu phân tích cấu trúc dự án, chức năng từng phần, kỹ thuật nổi bật được sử dụng, cùng với những giá trị thực tiễn mà repo này mang lại.


Tổng quan dự án

Dự án tập trung vào việc tự động hóa giao tiếp với ChatGPT thông qua trình duyệt web thay vì sử dụng API chính thức. Điều này có ý nghĩa đặc biệt trong các tình huống:

  • Muốn tương tác với giao diện gốc của ChatGPT (https://chat.openai.com/)
  • Bị giới hạn truy cập API hoặc không muốn sử dụng token
  • Thử nghiệm hành vi người dùng thật trong UI để mô phỏng hoặc kiểm thử hệ thống

Cấu trúc dự án

Dưới đây là các file chính trong repo:

1. chatgpt.py

Đây là tập tin cốt lõi của dự án, chứa lớp ChatGPT xử lý các thao tác sau:

  • Đăng nhập vào ChatGPT: Hỗ trợ bằng cookie hoặc mở trình duyệt và chờ người dùng đăng nhập thủ công.
  • Gửi prompt: Điền prompt vào textbox, nhấn nút gửi và chờ đợi phản hồi.
  • Lấy nội dung phản hồi: Quét nội dung trả lời cuối cùng từ ChatGPT UI.

Các bước thực hiện được điều khiển thông qua Selenium WebDriver (Chrome), đảm bảo tương tác tương đương với người dùng thật.

2. config.yaml

Tập tin cấu hình để người dùng có thể điều chỉnh các tham số như:

  • URL ChatGPT
  • Đường dẫn tới cookie lưu sẵn
  • Thời gian timeout tối đa khi chờ phản hồi

3. cookie.json

Dùng để lưu cookie của người dùng sau khi đăng nhập thành công. Nếu file này tồn tại, hệ thống sẽ sử dụng cookie để tự động đăng nhập mà không cần thao tác thủ công.

4. main.py

Tập tin khởi động quá trình chạy demo:

  • Khởi tạo đối tượng ChatGPT
  • Gửi một hoặc nhiều câu hỏi mẫu
  • In kết quả phản hồi ra màn hình

Kỹ thuật nổi bật

Dự án sử dụng một số kỹ thuật đáng chú ý:

Tự động hóa thông minh bằng Selenium

  • Không chỉ click đơn giản, hệ thống chờ đến khi phần tử DOM tương ứng xuất hiện, giúp quá trình tương tác ổn định hơn.
  • Sử dụng WebDriverWaitExpectedConditions để đảm bảo đồng bộ UI trước khi thao tác.

Lưu và tái sử dụng Cookie

  • Giảm thiểu thao tác đăng nhập lại nhiều lần.
  • Cho phép tích hợp vào các hệ thống CI/CD hoặc auto-test hiệu quả hơn.

Lọc nội dung phản hồi mới nhất

  • Sử dụng các selector cụ thể để lấy đúng đoạn văn bản ChatGPT vừa trả lời, tránh nhầm lẫn với các message cũ.

Lợi ích thực tiễn khi sử dụng PoC này

Dự án có nhiều ứng dụng và giá trị trong thực tế:

🧪 Thử nghiệm giao diện và hành vi ChatGPT

  • Tự động gửi hàng loạt prompt để kiểm thử mô hình AI.
  • So sánh phản hồi trước/sau khi cập nhật hệ thống.

🤖 Tích hợp vào pipeline AI/ML

  • Dễ dàng tích hợp vào các pipeline xử lý tự động mà không cần truy cập OpenAI API.

🧩 Học tập kỹ thuật tự động hóa UI

  • Là ví dụ điển hình về cách làm việc với Selenium để tương tác với các hệ thống có UI phức tạp.
  • Tìm hiểu về xử lý bất đồng bộ trong DOM, timeout, và session management.

Ví dụ giao diện cấu hình

Tập tin config.yaml có cấu trúc đơn giản, ví dụ như sau:

chat_gpt_url: "https://chat.openai.com/"
cookie_path: "cookie.json"
timeout: 60

Ý nghĩa:

  • chat_gpt_url: URL chính thức của ChatGPT.
  • cookie_path: File chứa session cookie để tự động đăng nhập.
  • timeout: Thời gian chờ tối đa khi lấy phản hồi từ ChatGPT.

Kết luận

Dự án chatgpt_selenium_automation là một ví dụ hữu ích cho bất kỳ ai đang nghiên cứu về:

  • Tự động hóa quy trình AI
  • Tương tác với giao diện người dùng qua trình duyệt
  • Khai thác hành vi mô hình AI theo hướng không truyền thống (non-API)

Dù đơn giản, nhưng đây là bước đệm rất tốt để xây dựng các hệ thống tự động kiểm thử, giám sát, hoặc xử lý nội dung AI một cách linh hoạt hơn.


Source link: link

Leave a Reply

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *