Skip to content

工作流自动化:通过LLM和计算机视觉自动化基于浏览器的工作流程

License

Notifications You must be signed in to change notification settings

yuanzhongqiao/skyvern

 
 

Repository files navigation

🐉 使用法学硕士和计算机视觉自动化基于浏览器的工作流程 🐉

Skyvern使用法学硕士和计算机视觉自动化基于浏览器的工作流程。它提供了一个简单的 API 端点来完全自动化手动工作流程,取代脆弱或不可靠的自动化解决方案。

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

Skyvern 不仅仅依赖于代码定义的 XPath 交互,而是添加了计算机视觉和 LLM,以实时解析视口中的项目、创建交互计划并与它们进行交互。

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

  1. Skyvern 可以在以前从未见过的网站上运行,因为它能够将视觉元素映射到完成工作流程所需的操作,而无需任何自定义代码
  2. Skyvern 能够抵抗网站布局更改,因为我们的系统在尝试导航时没有预先确定的 XPath 或其他选择器
  3. Skyvern 利用法学硕士通过交互进行推理,以确保我们能够应对复杂的情况。示例包括:
    1. 如果您想从 Geico 获得汽车保险报价,请参阅常见问题“您有资格在 18 岁时开车吗?”的答案。可以从 16 岁时获得驾照的驾驶员推断出
    2. 如果您进行竞争对手分析,就会发现 7/11 的 Arnold Palmer 22 盎司罐装几乎肯定与 Gopuff 的 23 盎司罐装是同一产品(尽管尺寸略有不同,这可能是舍入误差!)

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

怎么运行的

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

演示

skyvern_demo_video.mp4
skyvern_demo_video.mp4

天文云

我们提供 Skyvern 的托管云版本,让您无需管理基础设施即可运行 Skyvern。它允许您并行运行多个 Skyvern 实例,以大规模自动化您的工作流程。此外,Skyvern 云还捆绑了反机器人检测机制、代理网络和验证码解决方案,让您能够完成更复杂的工作流程。

Skyvern Cloud 目前处于内测阶段。如果您有兴趣使用 Skyvern Cloud,请通过电子邮件与我们联系

快速开始

本快速入门指南将引导您完成 Skyvern 的安装并在本地计算机上运行。

先决条件

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

在开始之前,请确保您已安装以下软件:

注意:我们的安装脚本会为您执行这两项操作,但它们仅供参考。

  • Python 3.11
    • poetry env use 3.11
  • PostgreSQL 14(如果您使用的是 Mac,如果您安装了自制软件,安装脚本将为您安装它)
    • brew install postgresql

设置

  1. 克隆存储库并导航到根目录
  2. 运行安装脚本以安装必要的依赖项并设置您的环境
    ./setup.sh
  3. 启动服务器
    ./run_skyvern.sh
  4. 您可以开始向服务器发送请求,但我们构建了一个简单的 UI 来帮助您入门。要启动 UI,请运行以下命令:
    ./run_ui.sh
  5. 导航至http:https://localhost:8501浏览器中以开始使用 UI

贡献者的附加设置

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

pre-commit install

运行您的第一个自动化

执行任务(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:https://0.0.0.0:8000/api/v1/tasks

调试Skyvern

Skyvern 的可视化工具允许您调试 Skyvern 在网络上进行的每次交互。

演示_可视化器.mp4
demo_visualizer.mp4

任务、步骤和行动

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

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

在下面的屏幕截图中,我们正在导航到 finditparts.com 并搜索卡车零件。您会看到其中列出了所采取的每个操作,以及每个操作背后的原因。

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

Skyvern 的真实示例

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

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

./run_skyvern.sh

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

💡 看看实际效果

./run_ui.sh finditparts

导航到政府网站注册帐户或填写表格

💡 看看实际效果

./run_ui.sh california_edd 

以任何语言检索保险提供商的保险报价

💡 看看实际效果

./run_ui.sh bci_seguros

💡 看看实际效果

./run_ui.sh geico

常见问题 (FAQ)

是什么让我们对 Skyvern 感到兴奋?

我们的重点是为基于浏览器的工作流程带来稳定性。我们利用法学硕士创建一个人工智能代理,能够与像你我一样的网站进行交互——所有这一切都通过一个简单的 API 调用。

功能路线图

这是我们未来几个月计划的路线图。如果您有任何建议或希望看到添加的功能,请随时通过电子邮件不和谐与我们联系。

  • 开源- 开源 Skyvern 的核心代码库
  • [BETA] 工作流程支持- 允许支持将多个 Skyvern 调用链接在一起
  • 改进的上下文- 通过文本提示提供相关标签上下文,提高 Skyvern 理解可交互元素内容的能力
  • 节省成本- 通过优化传递到 Skyvern 的上下文树,提高 Skyvern 的稳定性并降低运行 Skyvern 的成本
  • 自助式 UI - 弃用 Streamlit UI,转而使用基于 React 的 UI 组件,该组件允许用户在 Skyvern 中启动新工作
  • 提示缓存- 在 LLM 调用中引入缓存层,以显着降低运行 Skyvern 的成本(记住过去的操作并重复它们!)
  • Chrome Viewport Streaming - 引入一种将 Chrome 视口实时流式传输到用户浏览器的方法(作为自助 UI 的一部分)
  • 过去的运行 UI - 弃用 Streamlit UI,转而使用基于 React 的 UI,该 UI 允许您可视化过去的运行及其结果
  • 集成 LLM 可观测性工具- 集成 LLM 可观测性工具,以允许使用特定数据集进行回溯测试提示更改 + 可视化 Skyvern 随着时间的推移的性能
  • 集成公共数据集- 将 Skyvern 与公共基准测试集成,以跟踪我们模型随时间的质量
  • 工作流 UI 构建器- 引入 UI 以允许用户直观地构建和分析工作流
  • Langchain 集成- 在 langchain_community 中创建 langchain 集成,以使用 Skyvern 作为“工具”。

贡献

我们欢迎 PR 和建议!请随时提出 PR/问题或通过电子邮件不和谐与我们联系。请查看我们的贡献指南“寻求帮助”问题以开始使用!

遥测

默认情况下,Skyvern 会收集基本的使用统计数据,以帮助我们了解 Skyvern 的使用情况。如果您想选择退出遥测,请将SKYVERN_TELEMETRY环境变量设置为false

执照

Skyvern 的开源存储库通过托管云获得支持。为 Skyvern 提供支持的所有核心逻辑都可以在这个根据AGPL-3.0 许可证授权的开源存储库中使用,但我们的托管云产品中提供的反机器人措施除外。

如果您对许可有任何疑问或疑虑,请联系我们,我们很乐意为您提供帮助。

明星历史

明星历史图

About

工作流自动化:通过LLM和计算机视觉自动化基于浏览器的工作流程

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 89.3%
  • JavaScript 6.4%
  • Shell 2.5%
  • Jinja 1.6%
  • Mako 0.2%