Amazon Nova Act adalah pratinjau penelitian yang dirilis oleh Amazon Artificial General Intelligence (AGI) yang memungkinkan pengembang untuk membangun agen yang mampu mengambil tindakan di dalam peramban web. Teknologi ini menggabungkan instruksi bahasa alami dengan skrip Python dan otomatisasi Playwright untuk menavigasi situs web, mengklik tombol, mengisi formulir, dan mengekstrak data secara dinamis.
Tidak seperti alat otomatisasi web tradisional yang bergantung pada skrip rapuh dan kode khusus situs web, Nova Act menggunakan AI untuk berinteraksi dengan situs web secara lebih adaptif, membantunya menangani perubahan antarmuka web tanpa memerlukan pemeliharaan yang konstan.

Dengan antarmuka yang intuitif, fitur kolaboratif, dan kemampuan otomatisasi yang kuat, Apidog secara signifikan mengurangi waktu pengembangan sambil meningkatkan kualitas API.

Prasyarat
Sebelum memulai dengan Amazon Nova Act, Anda memerlukan:
- Sistem Operasi: MacOS atau Ubuntu (Windows saat ini tidak didukung)
- Python: Versi 3.10 atau lebih tinggi
- Akun Amazon: Untuk menghasilkan kunci API
- Persyaratan Lokasi: Amazon Nova Act saat ini hanya tersedia sebagai pratinjau penelitian di AS
Mendapatkan Kunci API Amazon Nova Act Anda
Untuk menggunakan Amazon Nova Act:
- Buka nova.amazon.com/act dan masuk dengan akun Amazon Anda
- Pilih "Act" di bagian Labs pada panel navigasi
- Hasilkan kunci API
- Jika akses tidak langsung, Anda mungkin ditempatkan dalam daftar tunggu dan diberi tahu melalui email ketika akses diberikan
Instalasi
Setelah Anda memiliki kunci API Anda:
# Instal SDK
pip install nova-act
# Atur kunci API Anda sebagai variabel lingkungan
export NOVA_ACT_API_KEY="your_api_key"
Catatan: Pertama kali Anda menjalankan Nova Act, mungkin diperlukan waktu 1-2 menit untuk memulai karena menginstal modul Playwright. Proses selanjutnya akan dimulai lebih cepat.
Penggunaan Dasar
Mari kita mulai dengan contoh sederhana langsung dari dokumentasi:
from nova_act import NovaAct
with NovaAct(starting_page="https://www.amazon.com") as nova:
nova.act("search for a coffee maker")
nova.act("select the first result")
nova.act("scroll down or up until you see 'add to cart' and then click 'add to cart'")
Skrip ini akan:
- Buka Chrome dan navigasikan ke Amazon
- Cari pembuat kopi
- Pilih hasil pertama
- Temukan dan klik tombol "Tambahkan ke Keranjang"
Mode Interaktif
Nova Act dapat digunakan secara interaktif untuk eksperimen:
# Mulai shell Python
$ python
>>> from nova_act import NovaAct
>>> nova = NovaAct(starting_page="https://www.amazon.com")
>>> nova.start()
>>> nova.act("search for a coffee maker")
Setelah tindakan pertama selesai, lanjutkan dengan langkah berikutnya:
>>> nova.act("select the first result")
Perhatikan bahwa menurut dokumentasi, Nova Act saat ini tidak mendukung iPython; gunakan shell Python standar sebagai gantinya.
Strategi Prompting yang Efektif
Dokumentasi resmi menekankan pemecahan tugas menjadi langkah-langkah yang lebih kecil untuk keandalan:
1. Bersikap Spesifik dan Jelas
❌ JANGAN
nova.act("From my order history, find my most recent order from India Palace and reorder it")
✅ LAKUKAN
nova.act("Click the hamburger menu icon, go to Order History, find my most recent order from India Palace and reorder it")
2. Pecah Tugas Kompleks menjadi Langkah-Langkah yang Lebih Kecil
❌ JANGAN
nova.act("book me a hotel that costs less than $100 with the highest star rating")
✅ LAKUKAN
nova.act(f"search for hotels in Houston between {startdate} and {enddate}")
nova.act("sort by avg customer review")
nova.act("hit book on the first hotel that is $100 or less")
nova.act(f"fill in my name, address, and DOB according to {blob}")
Mengekstrak Data dari Halaman Web
Nova Act mendukung ekstraksi data terstruktur menggunakan model 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:
"""Get top NYT books of the year and return as a 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(
"Return the books in the Fiction list",
schema=BookList.model_json_schema()
)
if not result.matches_schema:
# Act response did not match the schema
return None
# Parse the JSON into the pydantic model
book_list = BookList.model_validate(result.parsed_response)
return book_list
Untuk respons boolean sederhana, gunakan BOOL_SCHEMA
bawaan:
result = nova.act("Am I logged in?", schema=BOOL_SCHEMA)
if result.matches_schema:
if result.parsed_response:
print("You are logged in")
else:
print("You are not logged in")
Pemrosesan Paralel dengan Beberapa Sesi Peramban
Dokumentasi GitHub mengonfirmasi bahwa Nova Act mendukung pemrosesan paralel dengan beberapa sesi peramban:
from concurrent.futures import ThreadPoolExecutor, as_completed
from nova_act import NovaAct, ActError
# Accumulate results here
all_books = []
# Set maximum concurrent browser sessions
with ThreadPoolExecutor(max_workers=10) as executor:
# Get books from multiple years in parallel
future_to_books = {
executor.submit(get_books, year): year
for year in range(2010, 2025)
}
# Collect results
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"Skipping year {year} due to error: {exc}")
Autentikasi dan Status Peramban
Untuk situs web yang memerlukan autentikasi, Nova Act menyediakan opsi untuk menggunakan profil Chrome yang ada:
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("Log into your websites, then press enter...")
Ada juga skrip pembantu bawaan untuk tujuan ini:
python -m nova_act.samples.setup_chrome_user_data_dir
Menangani Informasi Sensitif
Dokumentasi secara khusus memperingatkan tentang penanganan data sensitif:
# Sign in properly
nova.act("enter username janedoe and click on the password field")
# Use Playwright directly for sensitive data
nova.page.keyboard.type(getpass()) # getpass() collects password securely
# Continue after credentials are entered
nova.act("sign in")
Peringatan Keamanan: Dokumentasi mencatat bahwa tangkapan layar yang diambil selama eksekusi akan menangkap informasi sensitif yang terlihat.
Fitur Tambahan
Bekerja dengan Captcha
result = nova.act("Is there a captcha on the screen?", schema=BOOL_SCHEMA)
if result.matches_schema and result.parsed_response:
input("Please solve the captcha and hit return when done")
Mengunduh File
with nova.page.expect_download() as download_info:
nova.act("click on the download button")
# Save permanently
download_info.value.save_as("my_downloaded_file")
Merekam Sesi
nova = NovaAct(
starting_page="https://example.com",
logs_directory="/path/to/logs",
record_video=True
)
Contoh Dunia Nyata: Pencarian Apartemen
Artikel dev.to menunjukkan contoh dunia nyata tentang menemukan apartemen di dekat stasiun kereta api. Berikut adalah struktur inti dari contoh tersebut:
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
# First find apartments
with NovaAct(starting_page="https://zumper.com/", headless=headless) as client:
client.act(
"Close any cookie banners. "
f"Search for apartments near {caltrain_city}, CA, "
f"then filter for {bedrooms} bedrooms and {baths} bathrooms."
)
# Extract apartment listings with schema
result = client.act(
"Return the currently visible list of apartments",
schema=ApartmentList.model_json_schema()
)
# Then check biking distances in parallel
with ThreadPoolExecutor() as executor:
# Submit parallel tasks to check biking distance to train station
future_to_apartment = {
executor.submit(add_biking_distance, apartment, caltrain_city, headless): apartment
for apartment in all_apartments
}
# Process results
for future in as_completed(future_to_apartment.keys()):
# Collect and process results
pass
# Sort and display results
apartments_df = pd.DataFrame(apartments_with_biking)
Contoh ini menunjukkan bagaimana Nova Act dapat:
- Mengekstrak data terstruktur dari situs web
- Memproses beberapa sesi peramban secara paralel
- Menggabungkan informasi dari sumber yang berbeda
Keterbatasan yang Diketahui
Menurut dokumentasi, Nova Act memiliki keterbatasan ini:
- Hanya Peramban: Tidak dapat berinteraksi dengan aplikasi non-peramban
- Keandalan Terbatas: Mungkin kesulitan dengan perintah tingkat tinggi
- Batasan UI: Tidak dapat berinteraksi dengan elemen yang tersembunyi di balik mouseover
- Modal Peramban: Tidak dapat berinteraksi dengan modal jendela peramban seperti permintaan izin
- Batasan Geografis: Saat ini hanya tersedia di AS
- Status Penelitian: Ini adalah pratinjau eksperimental, bukan layanan produksi
Opsi Konstruktor NovaAct
Dokumentasi mencantumkan parameter ini untuk menginisialisasi NovaAct:
NovaAct(
starting_page="https://example.com", # Required: URL to start at
headless=False, # Whether to run browser visibly or not
quiet=False, # Whether to suppress logs
user_data_dir=None, # Path to Chrome profile
nova_act_api_key=None, # API key (can use env var instead)
logs_directory=None, # Where to store logs
record_video=False, # Whether to record session
# Other options as documented
)
Kesimpulan
Amazon Nova Act mewakili pendekatan inovatif untuk otomatisasi peramban dengan menggabungkan AI dengan teknik otomatisasi tradisional. Meskipun masih dalam pratinjau penelitian dengan beberapa keterbatasan, ini menawarkan arah yang menjanjikan untuk membuat otomatisasi web lebih andal dan mudah beradaptasi.
Keunggulan utama Nova Act adalah kemampuannya untuk memecah interaksi peramban yang kompleks menjadi langkah-langkah diskrit dan andal menggunakan instruksi bahasa alami, yang dapat digabungkan dengan kode Python untuk alur kerja otomatisasi yang fleksibel dan kuat.
Karena ini adalah pratinjau penelitian yang hanya tersedia di AS, harapkan perubahan dan peningkatan yang berkelanjutan. Untuk informasi terbaru, selalu rujuk ke dokumentasi resmi di GitHub dan nova.amazon.com/act.