Project Icon

tarsier

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

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

眼镜猴

🙈 网页交互代理的视觉工具 🙈

Python 版本

🔗 主站   •   🐦 Twitter   •   📢 Discord

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}
}
项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号