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 的灵感来自 BabyAGI 和 AutoGPT 推广的任务驱动自主代理设计------还有一个主要优点:我们让 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.11:
poetry 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
在许多不同的网站上下载发票
自动化工作申请流程
制造公司实现物料采购自动化
运行演示:
./run_ui.sh finditparts
访问政府网站注册账户或填写表格
执行演示:
./run_ui.sh california_edd
以任何语言从保险提供商处获取保险报价
执行演示:
./run_ui.sh bci_seguros
原文链接:Skyvern简明教程 - BimAnt