؟ مرافق الرؤية لوكلاء التفاعل على الويب؟
؟ الموقع الرئيسي • ؟ تويتر • ؟ خلاف
إذا حاولت استخدام LLM لأتمتة تفاعلات الويب ، فمن المحتمل أنك تواجه أسئلة مثل:
في REWWORWD ، كررنا جميع هذه المشكلات عبر عشرات الآلاف من مهام الويب الحقيقية لبناء نظام تصور قوي لوكلاء الويب ... Tarsier! في الفيديو أدناه ، نستخدم Tarsier لتوفير تصور صفحة الويب لوكيل ويب GPT-4 Langchain الحد الأدنى.
Tarsier بصريًا ، يعلق عناصر قابلة للتفاعل على صفحة عبر قوسين + معرف على سبيل المثال [23] . عند القيام بذلك ، نقدم رسم خرائط بين العناصر والمعرفات لـ LLM لاتخاذ إجراءات عليها (على سبيل المثال ، CLICK [23] ). نحدد عناصر قابلة للتفاعل كأزرار أو روابط أو حقول إدخال مرئية على الصفحة ؛ يمكن أيضًا وضع علامة على جميع العناصر النصية إذا قمت بتمرير tag_text_elements=True .
علاوة على ذلك ، قمنا بتطوير خوارزمية OCR لتحويل لقطة شاشة للصفحة إلى سلسلة من المنظمات البيضاء (مثل ASCII ART) التي يمكن أن يفهمها LLM حتى بدون رؤية . نظرًا لأن نماذج اللغة الحالية لا تزال تفتقر إلى التمثيلات الدقيقة المطلوبة لمهام التفاعل على الويب ، فهذا أمر بالغ الأهمية. على معاييرنا الداخلية ، يتفوق GPT-4 + Tarsier-Tex على GPT-4V + Tarsier-Screenshot بنسبة 10-20 ٪!
| لقطة الشاشة الموسومة | تمثيل النص الموسومة |
|---|---|
![]() | ![]() |
pip install tarsierقم بزيارة كتاب الطبخ الخاص بنا لأمثلة الوكيل باستخدام Tarsier:
نحن ندعم حاليًا محركي OCR: Google Vision و Microsoft Azure. لإنشاء بيانات اعتماد حساب الخدمة لـ Google ، اتبع الإرشادات الموجودة على هذا ، لذا أجب على https://stackoverflow.com/a/46290808/1780891
يتم تخزين بيانات الاعتماد الخاصة بـ Microsoft Azure باعتبارها JSON بسيطة تتكون من مفتاح API ونقطة نهاية
{
"key" : " <enter_your_api_key> " ,
"endpoint" : " <enter_your_api_endpoint> "
}يمكن العثور على هذه القيم في قسم المفاتيح وقسم نقطة النهاية لمورد رؤية الكمبيوتر. راجع التعليمات على https://learn.microsoft.com/en-us/answers/questions
خلاف ذلك ، قد يبدو استخدام Tarsier الأساسي كما يلي:
import asyncio
from playwright . async_api import async_playwright
from tarsier import Tarsier , GoogleVisionOCRService , MicrosoftAzureOCRService
import json
def load_ocr_credentials ( json_file_path ):
with open ( json_file_path ) as f :
credentials = json . load ( f )
return credentials
async def main ():
# To create the service account key, follow the instructions on this SO answer https://stackoverflow.com/a/46290808/1780891
google_cloud_credentials = load_ocr_credentials ( './google_service_acc_key.json' )
#microsoft_azure_credentials = load_ocr_credentials('./microsoft_azure_credentials.json')
ocr_service = GoogleVisionOCRService ( google_cloud_credentials )
#ocr_service = MicrosoftAzureOCRService(microsoft_azure_credentials)
tarsier = Tarsier ( ocr_service )
async with async_playwright () as p :
browser = await p . chromium . launch ( headless = False )
page = await browser . new_page ()
await page . goto ( "https://news.ycombinator.com" )
page_text , tag_to_xpath = await tarsier . page_to_text ( page )
print ( tag_to_xpath ) # Mapping of tags to x_paths
print ( page_text ) # My Text representation of the page
if __name__ == '__main__' :
asyncio . run ( main ())ضع في اعتبارك أن Tarsier يعلق أنواعًا مختلفة من العناصر بشكل مختلف لمساعدة LLM على تحديد الإجراءات القابلة للأداء على كل عنصر. خاصة:
[#ID] textarea input[@ID] : ارتباطات تشعبية ( <a> علامات)[$ID] : عناصر أخرى قابلة للتفاعل ( button على سبيل المثال ، select )[ID] : نص عادي (إذا قمت بتمرير tag_text_elements=True ) لقد قدمنا نصًا مفيدًا الإعداد لنقلك وتشغيله مع تطوير Tarsier.
./script/setup.shإذا قمت بتعديل أي ملفات TypeScript التي تستخدمها Tarsier ، فستحتاج إلى تنفيذ الأمر التالي. هذا يجمع TypeScript في JavaScript ، والتي يمكن استخدامها بعد ذلك في حزمة Python.
npm run buildنحن نستخدم pytest للاختبار. لتشغيل الاختبارات ، ما عليك سوى التشغيل:
poetry run pytest .قبل تقديم العلاقات العامة المحتملة ، يرجى تشغيل ما يلي لتنسيق الرمز الخاص بك:
./script/format.sh bibtex
@misc{reworkd2023tarsier,
title = {Tarsier},
author = {Rohan Pandey and Adam Watkins and Asim Shrestha and Srijan Subedi},
year = {2023},
howpublished = {GitHub},
url = {https://github.com/reworkd/tarsier}
}