Skyvern:基于LLM和CV的开源RPA

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

在许多不同的网站上下载发票

自动化工作申请流程

Skyvern

制造公司实现物料采购自动化

运行演示:

./run_ui.sh finditparts

访问政府网站注册账户或填写表格

执行演示:

./run_ui.sh california_edd 

以任何语言从保险提供商处获取保险报价

执行演示:

./run_ui.sh bci_seguros

原文链接:Skyvern简明教程 - BimAnt

相关推荐
奥顺互联V2 小时前
深入理解 ThinkPHP:框架结构与核心概念详解
大数据·mysql·开源·php
soulteary3 小时前
使用 AI 辅助开发一个开源 IP 信息查询工具:一
人工智能·tcp/ip·开源·ip 查询
小华同学ai4 小时前
vue-office:Star 4.2k,款支持多种Office文件预览的Vue组件库,一站式Office文件预览方案,真心不错
前端·javascript·vue.js·开源·github·office
m0_748248948 小时前
WebChat——一个开源的聊天应用
开源
_oP_i12 小时前
Pinpoint 是一个开源的分布式追踪系统
java·分布式·开源
星就前端叭17 小时前
【开源】一款基于Vue3 + WebRTC + Node + SRS + FFmpeg搭建的直播间项目
前端·后端·开源·webrtc
Faith_xzc21 小时前
【Apache Doris】周FAQ集锦:第 26 期
大数据·数据仓库·开源·doris
vvw&1 天前
如何在 Ubuntu 22.04 上安装 Ansible 教程
linux·运维·服务器·ubuntu·开源·ansible·devops
vvw&1 天前
如何在 Ubuntu 22.04 上安装 Graylog 开源日志管理平台
linux·运维·服务器·ubuntu·开源·github·graylog
HelloGitHub1 天前
跟着 8.6k Star 的开源数据库,搞 RAG!
开源·github