Apidog

Nền tảng phát triển API hợp tác tất cả trong một

Thiết kế API

Tài liệu API

Gỡ lỗi API

Giả lập API

Kiểm thử API tự động

Cách Sử Dụng API và SDK Amazon Nova Act

中村 拓也

中村 拓也

Updated on tháng 4 3, 2025

Amazon Nova Act là một bản xem trước nghiên cứu được phát hành bởi Amazon Trí tuệ Nhân tạo Tổng quát (AGI) cho phép các nhà phát triển xây dựng các tác nhân có khả năng thực hiện hành động trong trình duyệt web. Công nghệ này kết hợp các hướng dẫn bằng ngôn ngữ tự nhiên với mã Python và tự động hóa Playwright để duyệt web, nhấp vào các nút, điền vào các biểu mẫu và trích xuất dữ liệu một cách động.

Khác với các công cụ tự động hóa web truyền thống dựa vào mã yếu ớt và mã cụ thể cho từng trang web, Nova Act sử dụng AI để tương tác với các trang web một cách thích ứng hơn, giúp nó xử lý các thay đổi trong giao diện web mà không cần bảo trì liên tục.

💡
Bạn có muốn tối ưu hóa quy trình phát triển API của mình không? Apidog nổi bật như một sự thay thế hoàn hảo cho Postman, cung cấp một bộ công cụ toàn diện cho thiết kế API, gỡ lỗi, kiểm tra và tài liệu - tất cả trên một nền tảng thống nhất. 
button

Với giao diện thân thiện, các tính năng hợp tác và khả năng tự động hóa mạnh mẽ, Apidog giảm đáng kể thời gian phát triển trong khi cải thiện chất lượng API.

\
button

Điều Kiện Tiên Quyết

Trước khi bắt đầu với Amazon Nova Act, bạn cần:

  • Hệ Điều Hành: MacOS hoặc Ubuntu (Windows hiện không được hỗ trợ)
  • Python: Phiên bản 3.10 trở lên
  • Tài Khoản Amazon: Để tạo một khóa API
  • Yêu Cầu Về Địa Điểm: Amazon Nova Act hiện chỉ khả dụng dưới dạng bản xem trước nghiên cứu tại Mỹ

Lấy Khóa API Amazon Nova Act của Bạn

Để sử dụng Amazon Nova Act:

  1. Đi đến nova.amazon.com/act và đăng nhập bằng tài khoản Amazon của bạn
  2. Chọn "Act" trong phần Labs của bảng điều hướng
  3. Tạo một khóa API
  4. Nếu việc truy cập không xảy ra ngay lập tức, bạn có thể được đưa vào danh sách chờ và nhận thông báo qua email khi được cấp quyền truy cập

Cài Đặt

Khi bạn đã có khóa API của mình:

# Cài đặt SDK
pip install nova-act

# Đặt khóa API của bạn thành biến môi trường
export NOVA_ACT_API_KEY="your_api_key"

Lưu ý: Lần đầu tiên bạn chạy Nova Act, nó có thể mất 1-2 phút để khởi động khi nó cài đặt các mô-đun Playwright. Các lần chạy sau sẽ khởi động nhanh hơn.

Sử Dụng Cơ Bản

Chúng ta hãy bắt đầu với một ví dụ đơn giản từ tài liệu:

from nova_act import NovaAct

with NovaAct(starting_page="https://www.amazon.com") as nova:
    nova.act("tìm kiếm một máy pha cà phê")
    nova.act("chọn kết quả đầu tiên")
    nova.act("cuộn xuống hoặc lên cho đến khi bạn thấy 'thêm vào giỏ hàng' và sau đó nhấp vào 'thêm vào giỏ hàng'")

Tập lệnh này sẽ:

  1. Mở Chrome và truy cập vào Amazon
  2. Tìm kiếm máy pha cà phê
  3. Chọn kết quả đầu tiên
  4. Tìm và nhấp vào nút "Thêm vào giỏ hàng"

Chế Độ Tương Tác

Nova Act có thể được sử dụng tương tác cho việc thử nghiệm:

# Khởi động shell Python
$ python
>>> from nova_act import NovaAct
>>> nova = NovaAct(starting_page="https://www.amazon.com")
>>> nova.start()
>>> nova.act("tìm kiếm một máy pha cà phê")

Sau khi hành động đầu tiên hoàn tất, tiếp tục với bước tiếp theo:

>>> nova.act("chọn kết quả đầu tiên")

Lưu ý rằng theo tài liệu, Nova Act hiện không hỗ trợ iPython; hãy sử dụng shell Python tiêu chuẩn thay vào đó.

Chiến Lược Gợi Ý Hiệu Quả

Tài liệu chính thức nhấn mạnh việc chia nhỏ các nhiệm vụ thành các bước nhỏ hơn để đáng tin cậy:

1. Hãy Cụ Thể và Rõ Ràng

KHÔNG

nova.act("Từ lịch sử đơn hàng của tôi, tìm đơn hàng gần đây nhất của tôi từ India Palace và đặt lại nó")

HÃY

nova.act("Nhấp vào biểu tượng menu hamburger, vào Lịch sử Đơn hàng, tìm đơn hàng gần đây nhất của tôi từ India Palace và đặt lại nó")

2. Chia Nhỏ Các Nhiệm Vụ Phức Tạp Thành Các Bước Nhỏ Hơn

KHÔNG

nova.act("đặt cho tôi một khách sạn có giá dưới $100 với đánh giá sao cao nhất")

HÃY

nova.act(f"tìm kiếm khách sạn ở Houston giữa {startdate} và {enddate}")
nova.act("sắp xếp theo đánh giá trung bình của khách hàng")
nova.act("nhấn đặt trên khách sạn đầu tiên có giá $100 trở xuống")
nova.act(f"điền tên, địa chỉ và ngày sinh của tôi theo {blob}")

Trích Xuất Dữ Liệu Từ Các Trang Web

Nova Act hỗ trợ trích xuất dữ liệu có cấu trúc bằng cách sử dụng các mô hình Pydantic:

from pydantic import BaseModel
from nova_act import NovaAct, BOOL_SCHEMA

class Book(BaseModel):
    title: str
    author: str

class BookList(BaseModel):
    books: list[Book]

def get_books(year: int) -> BookList | None:
    """Lấy danh sách sách NYT hàng đầu của năm và trả về dưới dạng BookList."""
    with NovaAct(starting_page=f"https://en.wikipedia.org/wiki/List_of_The_New_York_Times_number-one_books_of_{year}#Fiction") as nova:
        result = nova.act(
            "Trả về các sách trong danh sách hư cấu",
            schema=BookList.model_json_schema()
        )
        
        if not result.matches_schema:
            # Phản hồi của hành động không khớp với lược đồ
            return None
            
        # Phân tích JSON vào mô hình pydantic
        book_list = BookList.model_validate(result.parsed_response)
        return book_list

Đối với phản hồi boolean đơn giản, hãy sử dụng BOOL_SCHEMA được tích hợp sẵn:

result = nova.act("Tôi có đang đăng nhập không?", schema=BOOL_SCHEMA)
if result.matches_schema:
    if result.parsed_response:
        print("Bạn đang đăng nhập")
    else:
        print("Bạn không đăng nhập")

Xử Lý Song Song Với Nhiều Phiên Trình Duyệt

Tài liệu trên GitHub xác nhận rằng Nova Act hỗ trợ xử lý song song với nhiều phiên trình duyệt:

from concurrent.futures import ThreadPoolExecutor, as_completed
from nova_act import NovaAct, ActError

# Tích lũy kết quả ở đây
all_books = []

# Đặt số phiên trình duyệt đồng thời tối đa
with ThreadPoolExecutor(max_workers=10) as executor:
    # Lấy sách từ nhiều năm một cách song song
    future_to_books = {
        executor.submit(get_books, year): year
        for year in range(2010, 2025)
    }
    
    # Thu thập kết quả
    for future in as_completed(future_to_books.keys()):
        try:
            year = future_to_books[future]
            book_list = future.result()
            if book_list is not None:
                all_books.extend(book_list.books)
        except ActError as exc:
            print(f"Bỏ qua năm {year} do lỗi: {exc}")

Xác Thực và Trạng Thái Trình Duyệt

Đối với các trang web yêu cầu xác thực, Nova Act cung cấp tùy chọn để sử dụng các hồ sơ Chrome hiện có:

import os
from nova_act import NovaAct

user_data_dir = "path/to/my/chrome_profile"
os.makedirs(user_data_dir, exist_ok=True)

with NovaAct(
    starting_page="https://amazon.com/", 
    user_data_dir=user_data_dir,
    clone_user_data_dir=False
) as nova:
    input("Đăng nhập vào các trang web của bạn, sau đó nhấn Enter...")

Cũng có một tập lệnh hỗ trợ tích hợp cho mục đích này:

python -m nova_act.samples.setup_chrome_user_data_dir

Xử Lý Thông Tin Nhạy Cảm

Tài liệu cảnh báo cụ thể về việc xử lý dữ liệu nhạy cảm:

# Đăng nhập đúng cách
nova.act("nhập tên người dùng janedoe và nhấp vào trường mật khẩu")

# Sử dụng Playwright trực tiếp cho dữ liệu nhạy cảm
nova.page.keyboard.type(getpass())  # getpass() thu thập mật khẩu một cách an toàn

# Tiếp tục sau khi nhập thông tin xác thực
nova.act("đăng nhập")

Cảnh Báo An Ninh: Tài liệu lưu ý rằng các ảnh chụp màn hình được thực hiện trong quá trình thực thi sẽ ghi lại bất kỳ thông tin nhạy cảm nào nhìn thấy được.

Các Tính Năng Bổ Sung

Làm Việc Với Captchas

result = nova.act("Có captcha nào trên màn hình không?", schema=BOOL_SCHEMA)
if result.matches_schema and result.parsed_response:
    input("Vui lòng giải captcha và nhấn return khi xong")

Tải Xuống Tập Tin

with nova.page.expect_download() as download_info:
    nova.act("nhấp vào nút tải xuống")
    
# Lưu lại vĩnh viễn
download_info.value.save_as("my_downloaded_file")

Ghi Lại Các Phiên

nova = NovaAct(
    starting_page="https://example.com",
    logs_directory="/path/to/logs",
    record_video=True
)

Ví Dụ Thực Tế: Tìm Kiếm Căn Hộ

Bài viết dev.to trình bày một ví dụ thực tế về việc tìm các căn hộ gần ga tàu. Đây là cấu trúc cốt lõi của ví dụ đó:

from concurrent.futures import ThreadPoolExecutor, as_completed
import pandas as pd
from pydantic import BaseModel
from nova_act import NovaAct

class Apartment(BaseModel):
    address: str
    price: str
    beds: str
    baths: str

class ApartmentList(BaseModel):
    apartments: list[Apartment]

class CaltrainBiking(BaseModel):
    biking_time_hours: int
    biking_time_minutes: int
    biking_distance_miles: float

# Đầu tiên tìm các căn hộ
with NovaAct(starting_page="https://zumper.com/", headless=headless) as client:
    client.act(
        "Đóng bất kỳ bảng quảng cáo cookie nào. "
        f"Tìm kiếm các căn hộ gần {caltrain_city}, CA, "
        f"rồi lọc cho {bedrooms} phòng ngủ và {baths} phòng tắm."
    )
    
    # Trích xuất danh sách căn hộ với lược đồ
    result = client.act(
        "Trả về danh sách căn hộ đang nhìn thấy hiện tại",
        schema=ApartmentList.model_json_schema()
    )
    
# Sau đó kiểm tra khoảng cách đi xe đạp song song
with ThreadPoolExecutor() as executor:
    # Gửi các tác vụ song song để kiểm tra khoảng cách đi xe đạp đến ga tàu
    future_to_apartment = {
        executor.submit(add_biking_distance, apartment, caltrain_city, headless): apartment 
        for apartment in all_apartments
    }
    
    # Xử lý kết quả
    for future in as_completed(future_to_apartment.keys()):
        # Thu thập và xử lý kết quả
        pass

# Sắp xếp và hiển thị kết quả
apartments_df = pd.DataFrame(apartments_with_biking)

Ví dụ này cho thấy cách Nova Act có thể:

  • Trích xuất dữ liệu có cấu trúc từ các trang web
  • Xử lý nhiều phiên trình duyệt song song
  • Kết hợp thông tin từ các nguồn khác nhau

Hạn Chế Đã Biết

Theo tài liệu, Nova Act có các hạn chế sau:

  • Chỉ Trình Duyệt: Không thể tương tác với các ứng dụng không phải trình duyệt
  • Độ Tin Cậy Có Giới Hạn: Có thể gặp khó khăn với các gợi ý cấp cao
  • Ràng Buộc Giao Diện Người Dùng: Không thể tương tác với các phần tử bị ẩn sau các thao tác chuột
  • Hộp Thoại Trình Duyệt: Không thể tương tác với các hộp thoại của trình duyệt như yêu cầu cấp quyền
  • Hạn Chế Địa Lý: Hiện chỉ khả dụng tại Mỹ
  • Tình Trạng Nghiên Cứu: Đây là một bản xem trước thử nghiệm, không phải dịch vụ sản xuất

Tùy Chọn Khởi Tạo NovaAct

Tài liệu liệt kê các tham số này để khởi tạo NovaAct:

NovaAct(
    starting_page="https://example.com",  # Bắt buộc: URL để bắt đầu
    headless=False,                       # Có chạy trình duyệt một cách rõ ràng hay không
    quiet=False,                          # Có  подавить Журнал или нет
    user_data_dir=None,                   # Đường dẫn đến hồ sơ Chrome
    nova_act_api_key=None,                # Khóa API (có thể sử dụng biến môi trường thay thế)
    logs_directory=None,                  # Nơi lưu trữ nhật ký
    record_video=False,                   # Có ghi lại phiên hay không
    # Các tùy chọn khác theo tài liệu
)

Kết Luận

Amazon Nova Act đại diện cho một cách tiếp cận đổi mới đối với tự động hóa trình duyệt bằng cách kết hợp AI với các kỹ thuật tự động hóa truyền thống. Mặc dù vẫn đang trong bản xem trước nghiên cứu với một số hạn chế, nó cung cấp một hướng đi hứa hẹn cho việc làm cho tự động hóa web đáng tin cậy và thích ứng hơn.

Điểm mạnh chính của Nova Act là khả năng chia nhỏ các tương tác trình duyệt phức tạp thành các bước riêng biệt, đáng tin cậy bằng cách sử dụng các hướng dẫn ngôn ngữ tự nhiên, có thể kết hợp với mã Python để tạo ra các quy trình tự động hóa linh hoạt và mạnh mẽ.

Vì đây là một bản xem trước nghiên cứu chỉ có tại Mỹ, hãy mong đợi các thay đổi và cải tiến liên tục. Để biết thông tin hiện tại nhất, hãy luôn tham khảo tài liệu chính thức tại GitHubnova.amazon.com/act.