Amazon Nova Act, Amazon Artificial General Intelligence (AGI) tarafından yayınlanan, geliştiricilerin web tarayıcılarında eylemler gerçekleştirebilen aracılar oluşturmasını sağlayan bir araştırma önizlemesidir. Bu teknoloji, web sitelerinde gezinmek, düğmelere tıklamak, formları doldurmak ve dinamik olarak veri çıkarmak için doğal dil talimatlarını Python betiği ve Playwright otomasyonu ile birleştirir.
Geleneksel web otomasyon araçlarının aksine, kırılgan betiklere ve web sitesine özel kodlara dayanan Nova Act, web siteleriyle daha uyarlanabilir bir şekilde etkileşim kurmak için yapay zeka kullanır ve web arayüzlerindeki değişiklikleri sürekli bakım gerektirmeden ele almasına yardımcı olur.

Sezgisel arayüzü, işbirliğine dayalı özellikleri ve güçlü otomasyon yetenekleriyle Apidog, API kalitesini artırırken geliştirme süresini önemli ölçüde azaltır.

Önkoşullar
Amazon Nova Act'e başlamadan önce şunlara ihtiyacınız var:
- İşletim Sistemi: MacOS veya Ubuntu (Windows şu anda desteklenmiyor)
- Python: Sürüm 3.10 veya üzeri
- Amazon Hesabı: Bir API anahtarı oluşturmak için
- Konum Gereksinimi: Amazon Nova Act şu anda yalnızca ABD'de bir araştırma önizlemesi olarak mevcuttur
Amazon Nova Act API Anahtarınızı Alma
Amazon Nova Act'i kullanmak için:
- nova.amazon.com/act adresine gidin ve Amazon hesabınızla oturum açın
- Gezinme bölmesinin Labs bölümünde "Act"i seçin
- Bir API anahtarı oluşturun
- Erişim hemen gerçekleşmezse, bir bekleme listesine alınabilir ve erişim izni verildiğinde e-postayla bilgilendirilebilirsiniz
Kurulum
API anahtarınızı aldıktan sonra:
# SDK'yı yükleyin
pip install nova-act
# API anahtarınızı bir ortam değişkeni olarak ayarlayın
export NOVA_ACT_API_KEY="your_api_key"
Not: Nova Act'i ilk çalıştırdığınızda, Playwright modüllerini yüklediği için başlaması 1-2 dakika sürebilir. Sonraki çalıştırmalar daha hızlı başlayacaktır.
Temel Kullanım
Doğrudan belgeden basit bir örnekle başlayalım:
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'")
Bu betik şunları yapacaktır:
- Chrome'u açın ve Amazon'a gidin
- Kahve makineleri arayın
- İlk sonucu seçin
- "Sepete Ekle" düğmesini bulun ve tıklayın
Etkileşimli Mod
Nova Act, deneme için etkileşimli olarak kullanılabilir:
# Python kabuğunu başlat
$ python
>>> from nova_act import NovaAct
>>> nova = NovaAct(starting_page="https://www.amazon.com")
>>> nova.start()
>>> nova.act("search for a coffee maker")
İlk eylem tamamlandıktan sonra, sonraki adımla devam edin:
>>> nova.act("select the first result")
Belgelere göre, Nova Act şu anda iPython'ı desteklemiyor; bunun yerine standart Python kabuğunu kullanın.
Etkili İsteme Stratejileri
Resmi belgeler, güvenilirlik için görevleri daha küçük adımlara ayırmayı vurgular:
1. Belirli ve Açık Olun
❌ YAPMAYIN
nova.act("From my order history, find my most recent order from India Palace and reorder it")
✅ YAPIN
nova.act("Click the hamburger menu icon, go to Order History, find my most recent order from India Palace and reorder it")
2. Karmaşık Görevleri Daha Küçük Adımlara Ayırın
❌ YAPMAYIN
nova.act("book me a hotel that costs less than $100 with the highest star rating")
✅ YAPIN
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}")
Web Sayfalarından Veri Çıkarma
Nova Act, Pydantic modellerini kullanarak yapılandırılmış veri çıkarmayı destekler:
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
Basit boole yanıtları için, yerleşik BOOL_SCHEMA
'yı kullanın:
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")
Birden Çok Tarayıcı Oturumuyla Paralel İşleme
GitHub belgeleri, Nova Act'in birden çok tarayıcı oturumuyla paralel işlemeyi desteklediğini doğrular:
from concurrent.futures import ThreadPoolExecutor, as_completed
from nova_act import NovaAct, ActError
# Sonuçları burada biriktirin
all_books = []
# Maksimum eşzamanlı tarayıcı oturumlarını ayarlayın
with ThreadPoolExecutor(max_workers=10) as executor:
# Birden çok yıldan kitap alın
future_to_books = {
executor.submit(get_books, year): year
for year in range(2010, 2025)
}
# Sonuçları topla
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}")
Kimlik Doğrulama ve Tarayıcı Durumu
Kimlik doğrulaması gerektiren web siteleri için Nova Act, mevcut Chrome profillerini kullanma seçenekleri sunar:
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...")
Bu amaç için yerleşik bir yardımcı betik de vardır:
python -m nova_act.samples.setup_chrome_user_data_dir
Hassas Bilgileri İşleme
Belgeler özellikle hassas verilerin işlenmesi konusunda uyarıyor:
# 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")
Güvenlik Uyarısı: Belgeler, yürütme sırasında çekilen ekran görüntülerinin görülebilir tüm hassas bilgileri yakalayacağını belirtir.
Ek Özellikler
Captchalarla Çalışma
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")
Dosya İndirme
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")
Oturumları Kaydetme
nova = NovaAct(
starting_page="https://example.com",
logs_directory="/path/to/logs",
record_video=True
)
Gerçek Dünya Örneği: Daire Araması
dev.to makalesi, bir tren istasyonuna yakın daire bulmaya yönelik gerçek dünya örneğini göstermektedir. İşte bu örneğin temel yapısı:
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)
Bu örnek, Nova Act'in nasıl şunları yapabileceğini gösterir:
- Web sitelerinden yapılandırılmış verileri çıkarma
- Birden çok tarayıcı oturumunu paralel olarak işleme
- Farklı kaynaklardan gelen bilgileri birleştirme
Bilinen Sınırlamalar
Belgelere göre, Nova Act'in şu sınırlamaları vardır:
- Yalnızca Tarayıcı: Tarayıcı dışı uygulamalarla etkileşim kuramaz
- Sınırlı Güvenilirlik: Üst düzey istemlerle zorlanabilir
- UI Kısıtlamaları: Fare hareketlerinin arkasına gizlenmiş öğelerle etkileşim kuramaz
- Tarayıcı Modalleri: İzin istekleri gibi tarayıcı penceresi modalleriyle etkileşim kuramaz
- Coğrafya Sınırlaması: Şu anda yalnızca ABD'de mevcuttur
- Araştırma Durumu: Bu, bir üretim hizmeti değil, deneysel bir önizlemedir
NovaAct Oluşturucu Seçenekleri
Belgeler, NovaAct'i başlatmak için şu parametreleri listeler:
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
)
Sonuç
Amazon Nova Act, yapay zekayı geleneksel otomasyon teknikleriyle birleştirerek tarayıcı otomasyonuna yenilikçi bir yaklaşım sunmaktadır. Hala bazı sınırlamaları olan bir araştırma önizlemesi olsa da, web otomasyonunu daha güvenilir ve uyarlanabilir hale getirmek için umut verici bir yön sunuyor.
Nova Act'in temel avantajı, karmaşık tarayıcı etkileşimlerini, esnek ve güçlü otomasyon iş akışları için Python koduyla birleştirilebilen doğal dil talimatlarını kullanarak ayrı, güvenilir adımlara ayırma yeteneğidir.
Bu, yalnızca ABD'de bulunan bir araştırma önizlemesi olduğundan, devam eden değişiklikler ve iyileştirmeler bekleyin. En güncel bilgiler için, her zaman GitHub ve nova.amazon.com/act adresindeki resmi belgelere bakın.