? Visi Utilitas untuk Agen Interaksi Web?
? Situs Utama • ? Twitter • ? Perselisihan
Jika Anda telah mencoba menggunakan LLM untuk mengotomatisasi interaksi web, Anda mungkin mengalami pertanyaan seperti:
Di REWORKD, kami mengulangi semua masalah ini di seluruh puluhan ribu tugas web nyata untuk membangun sistem persepsi yang kuat untuk agen web ... Tarsier! Dalam video di bawah ini, kami menggunakan Tarsier untuk memberikan persepsi halaman web untuk agen web Langchain GPT-4 minimalis.
Tarsier secara visual menandai elemen yang dapat diinteraksi pada halaman melalui tanda kurung + id mis. [23] . Dalam melakukan ini, kami menyediakan pemetaan antara elemen dan ID untuk LLM untuk mengambil tindakan (misalnya CLICK [23] ). Kami mendefinisikan elemen yang dapat diinteraksi sebagai tombol, tautan, atau bidang input yang terlihat pada halaman; Tarsier juga dapat menandai semua elemen tekstual jika Anda lulus tag_text_elements=True .
Selain itu, kami telah mengembangkan algoritma OCR untuk mengubah tangkapan layar halaman menjadi string spasi putih (hampir seperti ASCII Art) bahwa LLM bahkan tanpa penglihatan dapat memahami. Karena model penglihatan-penglihatan saat ini masih kekurangan representasi berbutir halus yang diperlukan untuk tugas interaksi web, ini sangat penting. Pada tolok ukur internal kami, unimodal GPT-4 + Tarsier-Text Beats GPT-4V + Tarsier-Screenshot sebesar 10-20%!
| Screenshot Tagged | Representasi teks yang ditandai |
|---|---|
![]() | ![]() |
pip install tarsierKunjungi Cookbook kami untuk Contoh Agen Menggunakan Tarsier:
Kami saat ini mendukung 2 mesin OCR: Google Vision dan Microsoft Azure. Untuk membuat kredensial akun layanan untuk Google, ikuti instruksi tentang ini jadi jawab https://stackoverflow.com/a/46290808/1780891
Kredensial untuk Microsoft Azure disimpan sebagai JSON sederhana yang terdiri dari kunci API dan titik akhir
{
"key" : " <enter_your_api_key> " ,
"endpoint" : " <enter_your_api_endpoint> "
}Nilai -nilai ini dapat ditemukan di bagian kunci dan titik akhir dari sumber daya visi komputer. Lihat instruksi di https://learn.microsoft.com/en-us/answers/questions/854952/dont-find-yur-key-and-your-endpoint
Kalau tidak, penggunaan tarsier dasar mungkin terlihat seperti berikut:
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 ())Perlu diingat bahwa Tarsier menandai berbagai jenis elemen secara berbeda untuk membantu LLM Anda mengidentifikasi tindakan apa yang dilakukan pada setiap elemen. Secara khusus:
[#ID] : Bidang yang diererikan teks (misalnya textarea , input dengan tipe tekstual)[@ID] : Hyperlinks ( <a> Tag)[$ID] : Elemen lain yang dapat berinteraksi (misalnya button , select )[ID] : Teks biasa (jika Anda lulus tag_text_elements=True ) Kami telah memberikan skrip pengaturan yang praktis untuk membuat Anda siap dan berjalan dengan pengembangan tarsier.
./script/setup.shJika Anda memodifikasi file naskah apa pun yang digunakan oleh Tarsier, Anda harus menjalankan perintah berikut. Ini mengkompilasi naskah menjadi JavaScript, yang kemudian dapat digunakan dalam paket Python.
npm run buildKami menggunakan Pytest untuk pengujian. Untuk menjalankan tes, cukup jalankan:
poetry run pytest .Sebelum mengirimkan PR potensial, silakan jalankan yang berikut untuk memformat kode Anda:
./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}
}