Tarsier: 为网页交互智能体赋予"眼睛"
在人工智能快速发展的今天,让AI系统能够自主浏览和操作网页已经成为一个备受关注的研究方向。然而,要实现这一目标,我们需要解决一个关键问题:如何让基于文本的语言模型"看懂"网页的视觉结构?Reworkd团队开发的开源工具Tarsier为这个问题提供了一个优雅的解决方案。
Tarsier的独特之处
Tarsier的名字来源于一种生活在东南亚的小型灵长类动物——眼镜猴。正如眼镜猴拥有巨大的眼睛一样,Tarsier的主要功能就是为网页交互智能体提供"视觉"能力。它的核心特性包括:
- 为网页元素添加可识别标签
- 将网页截图转换为结构化文本
- 支持多种OCR(光学字符识别)引擎
工作原理
Tarsier的工作流程可以概括为以下几个步骤:
-
元素标记: Tarsier会为网页上的可交互元素(如按钮、链接、输入框等)添加特殊标记。例如,一个按钮可能会被标记为
[$23]
,其中23是该元素的唯一ID。这样,语言模型就可以通过指令如"点击[$23]"来精确操作特定元素。 -
截图转文本: Tarsier使用OCR技术将网页截图转换为结构化的文本表示。这个过程会保留网页的大致布局,使得即使是没有视觉能力的语言模型也能理解页面结构。
-
标签映射: Tarsier会生成一个标签到XPath的映射,便于后续定位和操作网页元素。
通过这些步骤,Tarsier为语言模型提供了一个既保留视觉结构信息,又易于理解和操作的网页表示。
实际应用效果
Reworkd团队的内部测试显示,使用Tarsier处理后的文本输入,普通的GPT-4模型在网页交互任务上的表现甚至超过了具有视觉能力的GPT-4V。这一惊人的结果充分说明了Tarsier在弥合语言模型与网页交互之间鸿沟方面的巨大潜力。
使用Tarsier
要开始使用Tarsier,你需要先安装它:
pip install tarsier
然后,你可以参考以下示例代码:
import asyncio
from playwright.async_api import async_playwright
from tarsier import Tarsier, GoogleVisionOCRService
import json
async def main():
# 加载Google Cloud Vision凭证
with open('./google_service_acc_key.json') as f:
google_cloud_credentials = json.load(f)
ocr_service = GoogleVisionOCRService(google_cloud_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) # 标签到XPath的映射
print(page_text) # 页面的文本表示
if __name__ == '__main__':
asyncio.run(main())
未来展望
Tarsier目前仍处于积极开发阶段。未来的计划包括:
- 完善文档和示例
- 优化接口设计并增加单元测试
- 提高OCR文本处理性能
- 增加自定义标记样式的选项
- 支持更多浏览器驱动
随着这些改进的实现,Tarsier有望成为构建网页交互AI系统的重要工具。
结语
Tarsier的出现为解决网页交互智能体的视觉感知问题提供了一个创新的解决方案。通过将复杂的网页结构转化为语言模型可以理解的形式,Tarsier为未来更智能、更自主的网络交互系统铺平了道路。无论你是AI研究人员、开发者,还是对未来网络交互感兴趣的爱好者,Tarsier都值得你关注和尝试。
让我们共同期待Tarsier的发展,以及它在推动网页交互智能体技术进步方面所能发挥的重要作用。