أمازون نوفا آكت هو معاينة بحثية أصدرتها أمازون للذكاء الاصطناعي العام (AGI) تتيح للمطورين بناء وكلاء قادرين على اتخاذ إجراءات ضمن متصفحات الويب. تجمع هذه التكنولوجيا بين تعليمات اللغة الطبيعية وبرمجة بايثون وأتمتة Playwright للتنقل في مواقع الويب، والنقر على الأزرار، وملء النماذج، واستخراج البيانات بشكل ديناميكي.
على عكس أدوات الأتمتة التقليدية التي تعتمد على نصوص هشة وشفرة محددة لمواقع الويب، يستخدم نوفا آكت الذكاء الاصطناعي للتفاعل مع مواقع الويب بشكل أكثر تكيفًا، مما يساعده على التعامل مع التغييرات في واجهات الويب دون الحاجة إلى صيانة مستمرة.

مع واجهته البديهية وميزاته التعاونية وقدرات الأتمتة القوية، يقلل أبدونغ بشكل كبير من وقت التطوير مع تحسين جودة واجهة برمجة التطبيقات.

المتطلبات الأساسية
قبل البدء باستخدام أمازون نوفا آكت، تحتاج إلى:
- نظام التشغيل: ماك أو إس أو أوبونتو (الويندوز غير مدعوم حاليًا)
- بايثون: الإصدار 3.10 أو أعلى
- حساب أمازون: لتوليد مفتاح واجهة برمجة التطبيقات
- متطلبات الموقع: أمازون نوفا آكت متاحة حاليًا فقط كمقدمة بحثية في الولايات المتحدة
الحصول على مفتاح واجهة برمجة التطبيقات الخاص بك من أمازون نوفا آكت
لاستخدام أمازون نوفا آكت:
- انتقل إلى nova.amazon.com/act وقم بتسجيل الدخول باستخدام حساب أمازون الخاص بك
- حدد "آكت" في قسم المعاملات في لوحة التنقل
- قم بتوليد مفتاح واجهة برمجة التطبيقات
- إذا لم يكن الوصول فوريًا، قد يتم وضعتك في قائمة الانتظار وسيتم إعلامك عبر البريد الإلكتروني عندما يتم منحك الوصول
التثبيت
بمجرد الحصول على مفتاح واجهة برمجة التطبيقات:
# تثبيت SDK
pip install nova-act
# تعيين مفتاح واجهة برمجة التطبيقات كمتغير بيئي
export NOVA_ACT_API_KEY="your_api_key"
ملاحظة: عند تشغيل نوفا آكت للمرة الأولى، قد يستغرق الأمر 1-2 دقيقة للبدء حيث يقوم بتثبيت وحدات Playwright. الجولات اللاحقة ستبدأ بشكل أسرع.
الاستخدام الأساسي
لنبدأ بمثال بسيط مباشرةً من الوثائق:
from nova_act import NovaAct
with NovaAct(starting_page="https://www.amazon.com") as nova:
nova.act("ابحث عن ماكينة قهوة")
nova.act("اختر النتيجة الأولى")
nova.act("قم بالتمرير لأسفل أو لأعلى حتى ترى 'أضف إلى السلة' ثم انقر على 'أضف إلى السلة'")
سيقوم هذا النص بما يلي:
- فتح كروم والتنقل إلى أمازون
- البحث عن ماكينات القهوة
- اختيار النتيجة الأولى
- العثور على زر "أضف إلى السلة" والنقر عليه
الوضع التفاعلي
يمكن استخدام نوفا آكت بطريقة تفاعلية للتجريب:
# بدء وحدة بايثون
$ python
>>> from nova_act import NovaAct
>>> nova = NovaAct(starting_page="https://www.amazon.com")
>>> nova.start()
>>> nova.act("ابحث عن ماكينة قهوة")
بعد إتمام الإجراء الأول، استمر مع الخطوة التالية:
>>> nova.act("اختر النتيجة الأولى")
لاحظ أنه وفقًا للوثائق، لا يدعم نوفا آكت حاليًا iPython؛ استخدم وحدة بايثون القياسية بدلاً من ذلك.
استراتيجيات التوجيه الفعالة
تؤكد الوثائق الرسمية على تقسيم المهام إلى خطوات أصغر لضمان الاعتمادية:
1. كن محددًا وواضحًا
❌ لا تفعل
nova.act("من سجل الطلبات الخاص بي، ابحث عن أحدث طلب لي من India Palace وأعد طلبه")
✅ افعل
nova.act("انقر على أيقونة قائمة الهامبورغر، انتقل إلى سجل الطلبات، ابحث عن أحدث طلب لي من India Palace وأعد طلبه")
2. قسم المهام المعقدة إلى خطوات أصغر
❌ لا تفعل
nova.act("احجز لي فندقًا يكلف أقل من 100 دولار مع أعلى تصنيف نجمي")
✅ افعل
nova.act(f"ابحث عن فنادق في هيوستن بين {startdate} و {enddate}")
nova.act("ترتيب حسب متوسط تقييم العملاء")
nova.act("اضغط على حجز أول فندق يكلف 100 دولار أو أقل")
nova.act(f"املأ اسمي، عنواني، وتاريخ ميلادي وفقًا لـ {blob}")
استخراج البيانات من صفحات الويب
يدعم نوفا آكت استخراج البيانات الهيكلية باستخدام نماذج 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:
"""احصل على أفضل الكتب من NYT في السنة وأعدها كقائمة كتب."""
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(
"أعد الكتب في قائمة الخيال",
schema=BookList.model_json_schema()
)
if not result.matches_schema:
# لم يتطابق استجابة الفعل مع المخطط
return None
# تحليل JSON إلى النموذج pydantic
book_list = BookList.model_validate(result.parsed_response)
return book_list
للحصول على استجابات بسيطة من نوع boolean، استخدم BOOL_SCHEMA المدمج:
result = nova.act("هل أنا مسجل الدخول؟"، schema=BOOL_SCHEMA)
if result.matches_schema:
if result.parsed_response:
print("أنت مسجل الدخول")
else:
print("أنت لست مسجل الدخول")
المعالجة المتوازية مع جلسات المتصفح المتعددة
تؤكد الوثائق على GitHub أن نوفا آكت يدعم المعالجة المتوازية مع جلسات المتصفح المتعددة:
from concurrent.futures import ThreadPoolExecutor, as_completed
from nova_act import NovaAct, ActError
# اجمع النتائج هنا
all_books = []
# تعيين الحد الأقصى لجلسات المتصفح المتزامنة
with ThreadPoolExecutor(max_workers=10) as executor:
# احصل على الكتب من عدة سنوات بشكل متوازي
future_to_books = {
executor.submit(get_books, year): year
for year in range(2010, 2025)
}
# جمع النتائج
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"تخطي السنة {year} بسبب الخطأ: {exc}")
المصادقة وحالة المتصفح
بالنسبة لمواقع الويب التي تتطلب مصادقة، يوفر نوفا آكت خيارات لاستخدام ملفات تعريف كروم الحالية:
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("قم بتسجيل الدخول إلى مواقع الويب الخاصة بك، ثم اضغط على enter...")
هناك أيضًا نص مساعد مدمج لهذا الغرض:
python -m nova_act.samples.setup_chrome_user_data_dir
التعامل مع المعلومات الحساسة
تحذر الوثائق بشكل محدد من التعامل مع البيانات الحساسة:
# قم بتسجيل الدخول بشكل صحيح
nova.act("أدخل اسم المستخدم janedoe وانقر على حقل كلمة المرور")
# استخدم Playwright مباشرة للبيانات الحساسة
nova.page.keyboard.type(getpass()) # getpass() يجمع كلمة المرور بشكل آمن
# استمر بعد إدخال بيانات الاعتماد
nova.act("تسجيل الدخول")
تحذير أمني: تلاحظ الوثائق أن لقطات الشاشة المأخوذة أثناء التنفيذ ستلتقط أي معلومات حساسة مرئية.
ميزات إضافية
العمل مع رموز التحقق (Captchas)
result = nova.act("هل هناك رمز تحقق على الشاشة؟"، schema=BOOL_SCHEMA)
if result.matches_schema and result.parsed_response:
input("يرجى حل رمز التحقق والضغط على return عند الانتهاء")
تنزيل الملفات
with nova.page.expect_download() as download_info:
nova.act("انقر على زر التنزيل")
# احفظ بشكل دائم
download_info.value.save_as("file_downloaded_my")
تسجيل الجلسات
nova = NovaAct(
starting_page="https://example.com",
logs_directory="/path/to/logs",
record_video=True
)
مثال من العالم الحقيقي: البحث عن شقة
يوضح مقال dev.to مثالًا من العالم الحقيقي للعثور على شقق بالقرب من محطة قطار. ها هي البنية الأساسية لذلك المثال:
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
# أولاً ابحث عن شقق
with NovaAct(starting_page="https://zumper.com/", headless=headless) as client:
client.act(
"أغلق أي لافتات ملفات تعريف الارتباط. "
f"ابحث عن شقق بالقرب من {caltrain_city}، كاليفورنيا، "
f"ثم قم بتصفية {bedrooms} غرفة نوم و {baths} حمامات."
)
# استخراج قوائم الشقق مع المخطط
result = client.act(
"أعد قائمة الشقق المرئية حاليًا",
schema=ApartmentList.model_json_schema()
)
# ثم تحقق من المسافات باستخدام الدراجات بشكل متوازي
with ThreadPoolExecutor() as executor:
# إرسال مهام متوازية للتحقق من مسافة القيادة إلى محطة القطار
future_to_apartment = {
executor.submit(add_biking_distance, apartment, caltrain_city, headless): apartment
for apartment in all_apartments
}
# عملية النتائج
for future in as_completed(future_to_apartment.keys()):
# جمع ومعالجة النتائج
pass
# فرز وعرض النتائج
apartments_df = pd.DataFrame(apartments_with_biking)
هذا المثال يوضح كيف يمكن لنوفا آكت:
- استخراج البيانات الهيكلية من مواقع الويب
- معالجة عدة جلسات متصفح بشكل متوازي
- دمج المعلومات من مصادر مختلفة
القيود المعروفة
وفقًا للوثائق، فإن نوفا آكت له هذه القيود:
- قاصر على المتصفح: لا يمكن التفاعل مع التطبيقات غير القائمة على المتصفح
- موثوقية محدودة: قد يواجه صعوبة مع التعليمات العليا
- قيود واجهة المستخدم: لا يمكن التفاعل مع العناصر المخفية خلف تحركات الماوس
- نوافذ النافذة الخاصة بالمتصفح: لا يمكن التفاعل مع نوافذ المتصفح المؤقتة مثل طلبات الإذن
- قيود جغرافية: متاحة حاليًا فقط في الولايات المتحدة
- حالة البحث: هذه معاينة تجريبية، ليست خدمة إنتاجية
خيارات باني NovaAct
تدرج الوثائق هذه المعلمات لتهيئة NovaAct:
NovaAct(
starting_page="https://example.com", # مطلوب: URL للتبدأ عنده
headless=False, # ما إذا كنت تريد تشغيل المتصفح بشكل مرئي أم لا
quiet=False, # ما إذا كنت تريد كتم السجلات
user_data_dir=None, # مسار ملف تعريف كروم
nova_act_api_key=None, # مفتاح واجهة برمجة التطبيقات (يمكن استخدام المتغير البيئي بدلاً من ذلك)
logs_directory=None, # حيث يتم تخزين السجلات
record_video=False, # ما إذا كنت تريد تسجيل الجلسة
# خيارات أخرى كما هو موثق
)
الخاتمة
يمثل أمازون نوفا آكت نهجًا مبتكرًا لأتمتة المتصفح من خلال دمج الذكاء الاصطناعي مع تقنيات الأتمتة التقليدية. على الرغم من أنه لا يزال في مرحلة المعاينة البحثية مع بعض القيود، إلا أنه يقدم اتجاهًا واعدًا لجعل أتمتة الويب أكثر موثوقية وتكيفًا.
الميزة الرئيسية لنوفا آكت هي قدرته على تقسيم التفاعلات المعقدة للمتصفح إلى خطوات موثوقة وفريدة باستخدام تعليمات اللغة الطبيعية، والتي يمكن دمجها مع كود بايثون لعمليات أتمتة مرنة وقوية.
نظرًا لأن هذه معاينة بحثية متاحة فقط في الولايات المتحدة، توقع تغييرات وتحسينات مستمرة. للحصول على أحدث المعلومات، يُرجى دائمًا الرجوع إلى الوثائق الرسمية على GitHub وnova.amazon.com/act.
