Skyvern简明教程

Skyvern 使用 LLM 和计算机视觉来自动化基于浏览器的工作流程。它提供了一个简单的 API 端点,可以完全自动化大量网站上的手动工作流程,从而取代脆弱或不可靠的自动化解决方案。

传统的浏览器自动化方法需要为网站编写自定义脚本,通常依赖于 DOM 解析和基于 XPath 的交互,而这些交互会在网站布局发生变化时中断。

Skyvern 不仅仅依赖代码定义的 XPath 交互,还依赖于提示以及计算机视觉和 LLM 来实时解析视口中的项目,创建交互计划并与它们交互。

这种方法给我们带来了一些优势:

a) Skyvern 可以在它从未见过的网站上运行,因为它能够将视觉元素映射到完成工作流所需的操作,而无需任何自定义代码

b) Skyvern 不受网站布局变化的影响,因为我们的系统在尝试导航时没有预先确定的 XPath 或其他选择器

c) Skyvern 能够采用单一工作流并将其应用于大量网站,因为它能够推理完成工作流所需的交互

d) Skyvern 利用 LLM 推理交互,以确保我们能够涵盖复杂的情况。示例包括:

  • 如果你想从 Geico 获得汽车保险报价,那么一个常见问题的答案是“你是否有资格在 18 岁时开车?”可以从驾驶员在 16 岁时获得驾照的情况推断出来
  • 如果你在进行竞争对手分析,就会明白 7/11 的 Arnold Palmer 22 盎司罐装啤酒几乎肯定与 Gopuff 的 23 盎司罐装啤酒是同一种产品(尽管尺寸略有不同,这可能是舍入误差!)

想看看 Skyvern 的实际应用示例吗?跳转到 real-world-examples-of-skyvern

1、工作原理

Skyvern 的灵感来自 BabyAGIAutoGPT 推广的任务​​驱动自主代理设计——还有一个主要优点:我们让 Skyvern 能够使用 Playwright 等浏览器自动化库与网站进行交互。

点击这里查看Skyvern演示视频 。

2、快速入门

本快速入门指南将引导你在本地机器上启动并运行 Skyvern。

2.1 Docker Compose 设置(推荐)

  • 确保你已在计算机上安装并运行 Docker Desktop
  • 确保你没有在本地运行 postgres(运行 docker ps 进行检查)
  • 克隆存储库并导航到根目录
  • docker-compose.yml 上填写 LLM 提供程序密钥
  • 通过命令行运行以下命令:
docker compose up -d
  • 在浏览器中导航到 http://localhost:8080 以开始使用 UI

2.2 完整设置(贡献者)- 先决条件

⚠️⚠️确保您使用的是 PYTHON 3.11⚠️⚠️

开始之前,请确保已安装以下内容:

注意:我们的安装脚本为你完成了这两个操作,但它们在此处仅供参考。

  • Python 3.11poetry env use 3.11
  • PostgreSQL 14 :如果你使用的是 Mac,并且安装了 homebrew,安装脚本将为你安装它。 brew install postgresql

2.3 设置(贡献者)

  • 克隆存储库并导航到根目录
  • 打开 Docker Desktop(适用于 Windows、macOS 和 Linux)或运行 Docker Daemon
  • 运行安装脚本以安装必要的依赖项并设置您的环境:
./setup.sh
  • 启动服务器
./run_skyvern.sh
  • 你可以开始向服务器发送请求,但我们构建了一个简单的 UI 来帮助你入门。要启动 UI,请运行以下命令:
./run_ui.sh
  • 浏览器中导航到 http://localhost:8080 以开始使用 UI

2.4 贡献者的额外设置

如果你希望为 Skyvern 做出贡献,则需要安装预提交挂钩以确保代码质量和一致性。你可以通过运行以下命令来执行此操作:

pre-commit install

3、运行第一个自动化

执行任务(UI)

一旦 UI 运行,你可以通过填写 UI 中显示的字段并单击“执行”来启动自动化

执行任务(cURL)
curl -X POST -H 'Content-Type: application/json' -H 'x-api-key: {Your local API key}' -d '{
    "url": "https://www.geico.com",
    "webhook_callback_url": "",
    "navigation_goal": "Navigate through the website until you generate an auto insurance quote. Do not generate a home insurance quote. If this page contains an auto insurance quote, consider the goal achieved",
    "data_extraction_goal": "Extract all quote information in JSON format including the premium amount, the timeframe for the quote.",
    "navigation_payload": "{Your data here}",
    "proxy_location": "NONE"
}' http://0.0.0.0:8000/api/v1/tasks

3、调试 Skyvern

Skyvern 的可视化工具允许你调试 Skyvern 在网络上进行的每一次交互。点击这里查看演示视频。

4、任务、步骤和操作

你发送给 Skyvern 的每个 API 请求都称为“任务”。每个任务由“步骤”组成,这些步骤是 Skyvern 为完成任务而采取的单独操作。每个步骤由“操作”组成,这些操作是 Skyvern 在特定网站上采取的单独交互。

每次调用 API 时,你都会获得一个 task_id,你可以使用它来在可视化工具中查找任务。在每个任务中,你将能够与每个步骤进行交互,并查看 Skyvern 为完成任务而采取的具体操作。

在下面的屏幕截图中,我们导航到 finditparts.com 并搜索卡车零件。您将看到它采取的每个操作都列在那里,以及每个操作背后的原因。

除了 LLM 以文本形式建议的操作外,Skyvern 的可视化工具还会显示操作时的屏幕状态,并以 1:1 的操作到屏幕截图进行映射。这样你就可以准确地看到 Skyvern 在做出决定时看到的内容,并调试可能出现的任何问题。

5、Skyvern 的真实案例

我们很高兴看到 Skyvern 是如何在实际中被使用的。以下是一些 Skyvern 如何在现实世界中用于自动化工作流程的示例。请打开 PR 以添加您自己的示例!

如果你想尝试这些示例,则需要在本地运行 Skyvern。请在阅读快速入门指南后运行以下命令:

./run_skyvern.sh
在许多不同的网站上下载发票
自动化工作申请流程
https://app.skyvern.com/
制造公司实现物料采购自动化

运行演示:

./run_ui.sh finditparts
访问政府网站注册账户或填写表格

执行演示:

./run_ui.sh california_edd 
以任何语言从保险提供商处获取保险报价

执行演示:

./run_ui.sh bci_seguros

原文链接:Automate browser-based workflows with LLMs and Computer Vision

BimAnt翻译整理,转载请标明出处