Mở khóa Đại lý Web AI: GPT-4V và Puppeteer Tăng cường Duyệt web Tự động

Mở khóa các tác nhân web AI mạnh mẽ với GPT-4V và Puppeteer! Khám phá trình duyệt tự động, trình thu thập dữ liệu web và nghiên cứu web được điều khiển bởi AI tinh vi. Khám phá cách các trợ lý AI tiên tiến này có thể cách mạng hóa các nhiệm vụ, từ RPA đến hỗ trợ khách hàng.

14 tháng 2, 2025

party-gif

Mở khóa sức mạnh của tự động hóa web dẫn động bởi AI với cách tiếp cận sáng tạo này kết hợp GPT-4V và Puppeteer. Khám phá cách bạn có thể xây dựng một tác nhân AI có thể duyệt web, trích xuất dữ liệu và hoàn thành các nhiệm vụ phức tạp một cách dễ dàng, cách mạng hóa quy trình công việc của bạn và mở khóa những khả năng mới.

Trường hợp sử dụng và cơ hội thị trường cho Đại lý Web AI

Một cách để xem xét các trường hợp sử dụng tiềm năng và cơ hội thị trường cho các tác nhân web AI là xem xét các nỗ lực trước đây trong việc xây dựng các hệ thống tương tự, những hạn chế của chúng và cách các công nghệ mới hoặc những thay đổi có thể tiềm năng thay đổi động lực.

Một danh mục thị trường trực tiếp là Tự động hóa Quy trình Robotic (RPA), là một danh mục phần mềm giúp các doanh nghiệp xây dựng các bot tự động để xử lý các nhiệm vụ lặp đi lặp lại và tiêu chuẩn như xử lý hóa đơn hoặc nhập dữ liệu. Tuy nhiên, những hạn chế của các giải pháp RPA là rất rõ ràng - chúng gặp khó khăn với các quy trình không tiêu chuẩn hoặc thay đổi liên tục và yêu cầu chi phí thiết lập cao cho mỗi tự động hóa cụ thể.

Trái lại, các tác nhân web AI có thể trực tiếp kiểm soát máy tính và trình duyệt rất hấp dẫn vì họ có thể lý thuyết xử lý được nhiều tình huống phức tạp hơn với chi phí thiết lập ít hơn nhiều. Thay vì xây dựng các tự động hóa cụ thể, tác nhân có thể đơn giản là điều hướng các trang web, trích xuất dữ liệu và hoàn thành các nhiệm vụ bất kể thay đổi về định dạng, vì tác nhân có thể đưa ra các quyết định cần thiết.

Ngoài việc chỉ tự động hóa, những tác nhân AI này cũng có thể vượt ra ngoài RPA truyền thống để hoàn thành các nhiệm vụ thông minh hơn như hỗ trợ khách hàng, bán hàng và tiếp thị. Bằng cách truy cập nhiều hệ thống hơn và khai thác khả năng ra quyết định của chúng, những "công nhân" AI này có thể được triển khai cho một loạt các trường hợp sử dụng rộng hơn, bao gồm cả các ứng dụng dành cho người tiêu dùng với khối lượng thấp hơn.

Tuy nhiên, một thách thức chính trong việc cung cấp các giải pháp công nhân AI hữu ích không chỉ là hiểu biết kỹ thuật, mà còn là kiến thức về quy trình làm việc từ đầu đến cuối cho các chức năng công việc cụ thể. Một báo cáo nghiên cứu gần đây của Hotspot đã khảo sát hơn 1.400 lãnh đạo bán hàng toàn cầu và cung cấp những hiểu biết quý giá về quy trình bán hàng hiện đại và các trường hợp sử dụng AI, điều này có thể rất hữu ích cho việc xây dựng các tác nhân AI dành cho các chức năng bán hàng.

Tóm lại, các cơ hội chính cho các tác nhân web AI bao gồm:

  • Xử lý các nhiệm vụ phức tạp hơn, không tiêu chuẩn so với RPA truyền thống
  • Giảm chi phí thiết lập cho các tự động hóa
  • Mở rộng ra ngoài chỉ tự động hóa để thực hiện các nhiệm vụ thông minh hơn như hỗ trợ khách hàng và bán hàng
  • Khai thác kiến thức sâu về quy trình làm việc cho các chức năng công việc cụ thể để xây dựng các tác nhân AI hiệu quả hơn

Hai phương pháp xây dựng Đại lý Web AI

Phương pháp 1: Trình Quét Web Được Cung Cấp bởi GPT-4V

  1. Sử dụng một thư viện Node.js như Puppeteer để chụp ảnh màn hình các trang web và kiểm soát trình duyệt web.
  2. Tạo một tập lệnh Python gọi tệp JavaScript để chụp ảnh màn hình và sau đó sử dụng GPT-4V để trích xuất dữ liệu từ các ảnh chụp màn hình.
  3. Tập lệnh Python định nghĩa các hàm để chuyển đổi hình ảnh sang base64, chụp ảnh màn hình và sử dụng GPT-4V để trích xuất thông tin từ các ảnh chụp màn hình.
  4. Tập lệnh kết nối các hàm này lại với nhau để tạo ra một trình quét web mạnh mẽ có thể truy cập các trang web thường chặn các dịch vụ quét.

Phương pháp 2: Xây dựng một Tác Nhân Web AI

  1. Tạo một tệp Node.js nhập các thư viện khác nhau và thiết lập một phiên bản OpenAI và một giao diện dòng lệnh.
  2. Triển khai một hàm highlightLinks để xác định tất cả các phần tử tương tác trên một trang web và thêm một thuộc tính đặc biệt vào chúng.
  3. Định nghĩa một hàm chính tạo một trình duyệt Puppeteer, thiết lập một thông điệp hệ thống cho GPT-4V và nhập vào một vòng lặp nơi nó:
    • Nhận phản hồi từ GPT-4V dựa trên lời nhắc của người dùng và trạng thái hiện tại của trang web.
    • Nếu phản hồi cho biết một liên kết nên được nhấp, nó tìm phần tử tương ứng và nhấp vào nó.
    • Nếu phản hồi cho biết một URL mới nên được truy cập, nó điều hướng đến URL đó và đánh dấu các liên kết.
    • Nếu phản hồi là một thông điệp thông thường, nó hiển thị kết quả cho người dùng.
  4. Tác nhân web AI này có thể điều hướng qua nhiều trang web, nhấp vào các liên kết và hoàn thành các nhiệm vụ nghiên cứu phức tạp bằng cách khai thác khả năng của GPT-4V.

Cả hai phương pháp đều cho thấy cách bạn có thể khai thác các mô hình ngôn ngữ lớn như GPT-4V để xây dựng các công cụ tự động hóa web và nghiên cứu mạnh mẽ. Phương pháp đầu tiên tập trung vào quét web, trong khi phương pháp thứ hai tạo ra một tác nhân web tương tác hơn có thể điều hướng và hoàn thành các nhiệm vụ trên web.

Xây dựng Trình quét Web được cung cấp bởi GPT-4V

Để xây dựng một trình quét web được cung cấp bởi GPT-4V, chúng ta sẽ sử dụng một thư viện Node.js gọi là Puppeteer để kiểm soát trình duyệt web và chụp ảnh màn hình. Dưới đây là hướng dẫn từng bước:

  1. Tạo một tệp mới có tên screenshot.js và nhập các thư viện cần thiết:
const puppeteer = require('puppeteer');
const puppeteerExtra = require('puppeteer-extra');
  1. Định nghĩa URL bạn muốn quét và một giá trị thời gian chờ:
const url = 'https://en.wikipedia.org/wiki/Main_Page';
const timeout = 60000; // 60 giây
  1. Tạo một hàm bất đồng bộ để khởi chạy trình duyệt, điều hướng đến URL và chụp ảnh màn hình:
async function takeScreenshot() {
  const browser = await puppeteerExtra.launch();
  const page = await browser.newPage();
  await page.setViewport({ width: 1920, height: 1080 });
  await page.goto(url, { waitUntil: 'networkidle0' });
  await page.screenshot({ path: 'screenshot.jpg', fullPage: true });
  await browser.close();
}
  1. Trong ví dụ này, chúng tôi đang sử dụng plugin puppeteer-extra để làm cho trình duyệt ít bị phát hiện hơn bởi các trang web.

  2. Chạy hàm takeScreenshot() để chụp ảnh màn hình:

takeScreenshot();

Bây giờ, bạn có thể chạy tập lệnh với node screenshot.js và nó sẽ lưu ảnh chụp màn hình của trang chủ Wikipedia vào tệp screenshot.jpg.

Tiếp theo, chúng ta sẽ tạo một tập lệnh Python sử dụng ảnh chụp màn hình và GPT-4V để trích xuất dữ liệu từ trang web:

  1. Tạo một tệp mới có tên vision_scraper.py và nhập các thư viện cần thiết:
import os
import subprocess
import base64
import openai
from dotenv import load_dotenv

load_dotenv()
openai.api_key = os.getenv("OPENAI_API_KEY")
  1. Định nghĩa các hàm để chuyển đổi hình ảnh sang base64 và chụp ảnh màn hình bằng cách sử dụng tập lệnh screenshot.js:
def image_to_b64(image_path):
    with open(image_path, "rb") as image_file:
        return base64.b64encode(image_file.read()).decode("utf-8")

def url_to_screenshot(url):
    if os.path.exists("screenshot.jpg"):
        os.remove("screenshot.jpg")
    try:
        subprocess.run(["node", "screenshot.js"], check=True)
        return "screenshot.jpg"
    except subprocess.CalledProcessError:
        return None
  1. Tạo một hàm để sử dụng GPT-4V để trích xuất thông tin từ ảnh chụp màn hình:
def vision_extract(image_b64, prompt):
    response = openai.ChatCompletion.create(
        model="gpt-4",
        messages=[
            {"role": "system", "content": "You are a web scraper. Your job is to extract information based on a screenshot of a website and user instructions."},
            {"role": "user", "content": prompt},
            {"role": "user", "content": image_b64}
        ],
        max_tokens=2048,
        n=1,
        stop=None,
        temperature=0.7,
    )
    return response.choices[0].message.content.strip()
  1. Kết nối tất cả lại với nhau trong một hàm vision_query():
def vision_query(url, prompt):
    screenshot_path = url_to_screenshot(url)
    if screenshot_path:
        image_b64 = image_to_b64(screenshot_path)
        return vision_extract(image_b64, prompt)
    else:
        return "Error: Unable to capture screenshot."
  1. Bây giờ bạn có thể sử dụng hàm vision_query() để trích xuất thông tin từ một trang web:
result = vision_query("https://www.linkedin.com/in/your-profile-url", "Extract the work experience section from the profile.")
print(result)

Ví dụ này sẽ chụp ảnh màn hình của hồ sơ LinkedIn được chỉ định và sử dụng GPT-4V để trích xuất phần kinh nghiệm làm việc. Bạn có thể tùy chỉnh lời nhắc để trích xuất các loại thông tin khác nhau từ trang web.

Câu hỏi thường gặp