Amazon Nova Act API ve SDK'sının Nasıl Kullanılacağı

Amazon Nova Act, Amazon AGI tarafından geliştirilen, web tarayıcılarında eylem alabilen ajanlar oluşturmayı sağlayan bir araştırma önizlemesidir.

Efe Demir

Efe Demir

5 June 2025

Amazon Nova Act API ve SDK'sının Nasıl Kullanılacağı

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.

💡
API geliştirme iş akışınızı kolaylaştırmak mı istiyorsunuz? Apidog, API tasarımı, hata ayıklama, test etme ve dokümantasyon için kapsamlı bir araç paketi sunarak, hepsi tek bir birleşik platformda, öne çıkıyor. 
button

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.

\
button

Önkoşullar

Amazon Nova Act'e başlamadan önce şunlara ihtiyacınız var:

Amazon Nova Act API Anahtarınızı Alma

Amazon Nova Act'i kullanmak için:

  1. nova.amazon.com/act adresine gidin ve Amazon hesabınızla oturum açın
  2. Gezinme bölmesinin Labs bölümünde "Act"i seçin
  3. Bir API anahtarı oluşturun
  4. 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:

  1. Chrome'u açın ve Amazon'a gidin
  2. Kahve makineleri arayın
  3. İlk sonucu seçin
  4. "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:

Bilinen Sınırlamalar

Belgelere göre, Nova Act'in şu sınırlamaları vardır:

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.

Explore more

Fathom-R1-14B: Hindistan'dan Gelişmiş Yapay Zeka Muhakeme Modeli

Fathom-R1-14B: Hindistan'dan Gelişmiş Yapay Zeka Muhakeme Modeli

Yapay zeka hızla gelişiyor. FractalAIResearch/Fathom-R1-14B, 14.8 milyar parametreyle matematik ve genel akıl yürütmede başarılı.

5 June 2025

Mistral Code: İşletmeler için En Özelleştirilebilir Yapay Zeka Destekli Kodlama Asistanı

Mistral Code: İşletmeler için En Özelleştirilebilir Yapay Zeka Destekli Kodlama Asistanı

Mistral Code'u keşfedin: Kurumsal kullanıma özel, en özelleştirilebilir yapay zeka destekli kodlama asistanı.

5 June 2025

Claude Code'un 2025'te Yapay Zeka Kodlamasını Nasıl Dönüştürdüğü

Claude Code'un 2025'te Yapay Zeka Kodlamasını Nasıl Dönüştürdüğü

Claude Code, 2025'te yapay zeka destekli kodlamayı nasıl devrimleştiriyor? Özelliklerini, kullanımını ve Windsurf kısıtlamalarından sonra neden popüler olduğunu öğrenin. Geliştiriciler için okunması gereken!

5 June 2025

API Tasarım-Öncelikli Yaklaşımı Apidog'da Uygulayın

API'leri oluşturmanın ve kullanmanın daha kolay yolunu keşfedin