التصفح التلقائي هو وكيل ذكاء اصطناعي مستقل يمكنه تصفح الويب. كل ما عليك فعله هو إعطاء AutoBrowse مهمة وسوف يكملها من خلال التفاعل مع متصفح الويب كما لو كان إنسانًا.
بعض الأمثلة على المهام التي يمكنك إعطاؤها لها:
انتقل إلى booking.com وابحث عن فندق لشخصين في مدريد لمدة ليلتين بدءًا من 2 نوفمبر بسعر أقل من 200 يورو في الليلة.
قم بالتسجيل في ryanair.com باستخدام البريد الإلكتروني: [email protected] وكلمة المرور C0mplexPassword!.
انتقل إلى Craigslist وابحث عن Nintendo DS. انقر على النتيجة الأولى.
https://drive.google.com/file/d/1Ind9z3mjHKTS-Q0vJl2FaHcPLrZtdEX0/view
إنشاء بيئة بايثون 3.9
conda create --name py39 python=3.9
تفعيل البيئة
conda activate py39
تثبيت التبعيات
pip install -r requirements.txt
ابدأ بيئة المتصفح
تحقق من الملف README ضمن browser-console/
للحصول على إرشادات حول كيفية تشغيله.
أنشئ ملف OAI_CONFIG_LIST
بالمحتوى التالي وأدخل مفتاح OpenAI API الخاص بك:
[
{
"model" : " gpt-4 " ,
"api_key" : " <your-api-key> "
},
{
"model" : " gpt-3.5-turbo " ,
"api_key" : " <your-api-key> "
},
{
"model" : " gpt-3.5-turbo-16k " ,
"api_key" : " <your-api-key> "
}
]
قم بتشغيل التصفح التلقائي
python autobrowse.py
سيُطلب منك بعد ذلك إعطاء مهمة للتصفح التلقائي.
يمكنك إجراء تعديلات على تكوينات الوكيل عن طريق تعديل ملف agent_config.py
. يمكنك تعديل مطالبات النظام وتغيير نماذج OpenAI المستخدمة وما إلى ذلك.
يستخدم التصفح التلقائي وكلاء autogen ووحدة تحكم المتصفح لتخطيط المهمة وتنفيذها.
يتكون التصميم من 3 وكلاء:
مساعد HTML يجيب على الأسئلة المتعلقة بـ HTML للصفحة الحالية المفتوحة في المتصفح.
وكيل منشئ الأكواد الذي يقوم بإنشاء كود puppeteer.js للتفاعل مع المتصفح (على سبيل المثال، انتقل إلى صفحة جديدة، وانقر على زر، واملأ عناصر النموذج)
وكيل مخطط يقوم بتنسيق استخدام الوكيلين أعلاه للوفاء بوصف المهمة عالية المستوى المقدم من قبل المستخدم.
يتفاعل الوكلاء مع المتصفح من خلال اتصال websocket ببيئة متصفح معزولة تحتوي على نقطة نهاية لقبول تعليمات puppeteer.js البرمجية للتنفيذ، بالإضافة إلى نقطة نهاية لإرجاع HTML المعروض للصفحة المفتوحة الحالية.
نظرًا لأن مستندات HTML يمكن أن تكون طويلة جدًا ويمكن أن تتجاوز حد الرمز المميز لـ OpenAI، يتم اتباع النهج التالي للإجابة على الاستفسارات حول HTML:
يتم تجريد HTML الذي يتم إرجاعه من بيئة المتصفح وتبسيطه لتقليل حجمه. يتم ذلك عن طريق الاحتفاظ فقط بالسمات الأكثر أهمية مثل المعرف والاسم والنوع والفئة. علاوة على ذلك، تتم إزالة meta
script
، style
، noscript
، img
، svg
، link
، تمامًا.
يتم تقسيم HTML المعالج إلى 15000 رمز مميز (حسب حساب OpenAI) بحيث يمكن احتواؤها بسهولة في نافذة سياق 16 كيلو بايت لـ gpt-3.5-turbo-16k
.
باستخدام RAG مع تضمينات OpenAI، يتم توفير الجزء الأكثر صلة كسياق للسؤال، ويمكن لـ gpt-3.5-turbo
بعد ذلك الإجابة على السؤال حول HTML.
يستخدم منشئ الأكواد gpt-4
لإنشاء كود puppeteer.js للتفاعل مع المتصفح. يرسل وكيل المستخدم الملحق بمولد الكود هذا الكود إلى بيئة المتصفح ليتم تنفيذه ويبلغ بالنتيجة، حتى يتمكن منشئ الكود من تعديل الكود في حالة وجود أي أخطاء. نظرًا لأن توليد التعليمات البرمجية يجب أن يكون دقيقًا قدر الإمكان، يتم استخدام نموذج gpt-4
الأكثر تكلفة لصالح gpt-3.5-turbo
الأرخص.
يتلقى المخطط وصف المهمة من المستخدم ويحاول إكماله عن طريق استدعاء مساعد HTML ومولد الأكواد حسب الضرورة. يمتلك المخطط، بالإضافة إلى تفكيره الخاص، القدرة على استدعاء وظيفتين:
ask_html_assistant()
لطرح سؤال على مساعد HTML حول HTML الحالي (على سبيل المثال، استخراج HTML لنموذج التسجيل)، و
ask_code_generator()
ليطلب من منشئ الكود إنتاج كود puppeteer.js لإرساله إلى المتصفح. قد يضيف المخطط أيضًا HTML تم استرداده من مساعد HTML لتوفير المزيد من السياق لمولد التعليمات البرمجية.