tarsier

tarsier

网页交互感知系统赋能AI代理执行网络任务

Tarsier是一个为网络交互AI代理开发的视觉工具包。它利用智能标记和OCR技术将网页内容转化为结构化文本,使AI能够理解网页布局。该工具支持多种OCR引擎,提供易用的API,帮助开发者为AI代理增添网页感知能力,提高自动化网络任务的效率。

Tarsier网页交互OCRLLM自动化Github开源项目
<p align="center"> <img src="https://yellow-cdn.veclightyear.com/835a84d5/263d8aa3-ff6d-44fc-9baa-c7853ecb7275.png" height="300" alt="眼镜猴" /> </p> <p align="center"> <em>🙈 网页交互代理的视觉工具 🙈</em> </p> <p align="center"> <a href="https://pypi.org/project/tarsier/" target="_blank"> <img alt="Python" src="https://img.shields.io/badge/python-3670A0?style=for-the-badge&logo=python&logoColor=ffdd54" /> <img alt="版本" src="https://img.shields.io/pypi/v/tarsier?style=for-the-badge&color=3670A0"> </a> </p> <p align="center"> <a href="https://reworkd.ai/">🔗 主站</a> <span>&nbsp;&nbsp;•&nbsp;&nbsp;</span> <a href="https://twitter.com/khoomeik/status/1723432848739483976">🐦 Twitter</a> <span>&nbsp;&nbsp;•&nbsp;&nbsp;</span> <a href="https://discord.gg/gcmNyAAFfV">📢 Discord</a> </p>

Tarsier

如果你尝试过使用LLM来自动化网页交互,你可能遇到过以下问题:

  • 如何将网页输入到LLM中?(例如HTML、可访问性树、截图)
  • 如何将LLM的响应映射回网页元素?
  • 如何向仅支持文本的LLM传达页面的视觉结构?

在Reworkd,我们通过数万个真实的网页任务迭代解决了所有这些问题,为网页代理构建了一个强大的感知系统...Tarsier! 在下面的视频中,我们使用Tarsier为一个简约的GPT-4 LangChain网页代理提供网页感知能力。

https://github.com/reworkd/tarsier/assets/50181239/af12beda-89b5-4add-b888-d780b353304b

它是如何工作的?

Tarsier通过方括号和ID(例如[23])在页面上为可交互元素添加视觉标签。 通过这种方式,我们为LLM提供了元素和ID之间的映射,以便执行操作(例如CLICK [23])。 我们将可交互元素定义为页面上可见的按钮、链接或输入字段;如果传递tag_text_elements=True,Tarsier还可以标记所有文本元素。

此外,我们开发了一种OCR算法,可以将页面截图转换为空白结构化字符串(类似ASCII艺术),即使是没有视觉能力的LLM也能理解。 由于当前的视觉语言模型仍然缺乏网页交互任务所需的细粒度表示,这一点至关重要。 在我们的内部基准测试中,单模态GPT-4 + Tarsier-Text比GPT-4V + Tarsier-Screenshot的性能高出10-20%!

标记截图标记文本表示
标记标记

安装

pip install tarsier

使用方法

访问我们的教程获取使用Tarsier的代理示例:

我们目前支持两种OCR引擎:Google Vision和Microsoft Azure。 要为Google创建服务账户凭证,请按照这个Stack Overflow回答中的说明操作 https://stackoverflow.com/a/46290808/1780891

Microsoft Azure的凭证以简单的JSON格式存储,包含API密钥和端点

{ "key": "<输入你的API密钥>", "endpoint": "<输入你的API端点>" }

这些值可以在计算机视觉资源的密钥和端点部分找到。请参阅以下说明 https://learn.microsoft.com/en-us/answers/questions/854952/dont-find-your-key-and-your-endpoint

否则,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(): # 要创建服务账户密钥,请按照这个Stack Overflow回答中的说明操作 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) # 标签到x_paths的映射 print(page_text) # 页面的文本表示 if __name__ == '__main__': asyncio.run(main())

请记住,Tarsier以不同方式标记不同类型的元素,以帮助LLM识别每个元素可执行的操作。具体来说:

  • [#ID]:可插入文本的字段(例如textarea,带文本类型的input
  • [@ID]:超链接(<a>标签)
  • [$ID]:其他可交互元素(例如buttonselect
  • [ID]:纯文本(如果传递tag_text_elements=True

本地开发

设置

我们提供了一个方便的设置脚本,帮助你快速开始Tarsier开发。

./script/setup.sh

如果你修改了Tarsier使用的任何TypeScript文件,你需要执行以下命令。 这将把TypeScript编译成JavaScript,然后可以在Python包中使用。

npm run build

测试

我们使用pytest进行测试。要运行测试,只需执行:

poetry run pytest .

代码格式化

在提交潜在的PR之前,请运行以下命令来格式化你的代码:

./script/format.sh

支持的OCR服务

路线图

  • 添加文档和示例
  • 清理接口并添加单元测试
  • 发布
  • 改进OCR文本性能
  • 添加自定义标记样式的选项
  • 根据需要添加对其他浏览器驱动程序的支持

引用

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}
}

编辑推荐精选

博思AIPPT

博思AIPPT

AI一键生成PPT,就用博思AIPPT!

博思AIPPT,新一代的AI生成PPT平台,支持智能生成PPT、AI美化PPT、文本&链接生成PPT、导入Word/PDF/Markdown文档生成PPT等,内置海量精美PPT模板,涵盖商务、教育、科技等不同风格,同时针对每个页面提供多种版式,一键自适应切换,完美适配各种办公场景。

热门AI工具AI办公办公工具智能排版AI生成PPT博思AIPPT海量精品模板AI创作
潮际好麦

潮际好麦

AI赋能电商视觉革命,一站式智能商拍平台

潮际好麦深耕服装行业,是国内AI试衣效果最好的软件。使用先进AIGC能力为电商卖家批量提供优质的、低成本的商拍图。合作品牌有Shein、Lazada、安踏、百丽等65个国内外头部品牌,以及国内10万+淘宝、天猫、京东等主流平台的品牌商家,为卖家节省将近85%的出图成本,提升约3倍出图效率,让品牌能够快速上架。

iTerms

iTerms

企业专属的AI法律顾问

iTerms是法大大集团旗下法律子品牌,基于最先进的大语言模型(LLM)、专业的法律知识库和强大的智能体架构,帮助企业扫清合规障碍,筑牢风控防线,成为您企业专属的AI法律顾问。

SimilarWeb流量提升

SimilarWeb流量提升

稳定高效的流量提升解决方案,助力品牌曝光

稳定高效的流量提升解决方案,助力品牌曝光

Sora2视频免费生成

Sora2视频免费生成

最新版Sora2模型免费使用,一键生成无水印视频

最新版Sora2模型免费使用,一键生成无水印视频

Transly

Transly

实时语音翻译/同声传译工具

Transly是一个多场景的AI大语言模型驱动的同声传译、专业翻译助手,它拥有超精准的音频识别翻译能力,几乎零延迟的使用体验和支持多国语言可以让你带它走遍全球,无论你是留学生、商务人士、韩剧美剧爱好者,还是出国游玩、多国会议、跨国追星等等,都可以满足你所有需要同传的场景需求,线上线下通用,扫除语言障碍,让全世界的语言交流不再有国界。

讯飞绘文

讯飞绘文

选题、配图、成文,一站式创作,让内容运营更高效

讯飞绘文,一个AI集成平台,支持写作、选题、配图、排版和发布。高效生成适用于各类媒体的定制内容,加速品牌传播,提升内容营销效果。

AI助手热门AI工具AI创作AI辅助写作讯飞绘文内容运营个性化文章多平台分发
TRAE编程

TRAE编程

AI辅助编程,代码自动修复

Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。

热门AI工具生产力协作转型TraeAI IDE
商汤小浣熊

商汤小浣熊

最强AI数据分析助手

小浣熊家族Raccoon,您的AI智能助手,致力于通过先进的人工智能技术,为用户提供高效、便捷的智能服务。无论是日常咨询还是专业问题解答,小浣熊都能以快速、准确的响应满足您的需求,让您的生活更加智能便捷。

imini AI

imini AI

像人一样思考的AI智能体

imini 是一款超级AI智能体,能根据人类指令,自主思考、自主完成、并且交付结果的AI智能体。

下拉加载更多