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.

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.

Đ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:
- Đi đến nova.amazon.com/act và đăng nhập bằng tài khoản Amazon của bạn
- Chọn "Act" trong phần Labs của bảng điều hướng
- Tạo một khóa API
- 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ẽ:
- Mở Chrome và truy cập vào Amazon
- Tìm kiếm máy pha cà phê
- Chọn kết quả đầu tiên
- 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 GitHub và nova.amazon.com/act.