🐉 使用法学硕士和计算机视觉自动化基于浏览器的工作流程 🐉
Skyvern使用法学硕士和计算机视觉自动化基于浏览器的工作流程。它提供了一个简单的 API 端点来完全自动化手动工作流程,取代脆弱或不可靠的自动化解决方案。
传统的浏览器自动化方法需要为网站编写自定义脚本,通常依赖 DOM 解析和基于 XPath 的交互,只要网站布局发生变化,这些脚本就会中断。
Skyvern 不仅仅依赖于代码定义的 XPath 交互,而是添加了计算机视觉和 LLM,以实时解析视口中的项目、创建交互计划并与它们进行交互。
这种方法给我们带来了一些优势:
- Skyvern 可以在以前从未见过的网站上运行,因为它能够将视觉元素映射到完成工作流程所需的操作,而无需任何自定义代码
- Skyvern 能够抵抗网站布局更改,因为我们的系统在尝试导航时没有预先确定的 XPath 或其他选择器
- Skyvern 利用法学硕士通过交互进行推理,以确保我们能够应对复杂的情况。示例包括:
- 如果您想从 Geico 获得汽车保险报价,请参阅常见问题“您有资格在 18 岁时开车吗?”的答案。可以从 16 岁时获得驾照的驾驶员推断出
- 如果您进行竞争对手分析,就会发现 7/11 的 Arnold Palmer 22 盎司罐装几乎肯定与 Gopuff 的 23 盎司罐装是同一产品(尽管尺寸略有不同,这可能是舍入误差!)
想要查看 Skyvern 的实际应用示例吗?跳转到#real-world-examples-of-skyvern
Skyvern 的灵感来自于BabyAGI和AutoGPT流行的任务驱动自主代理设计——它有一个主要好处:我们让 Skyvern 能够使用Playwright等浏览器自动化库与网站进行交互。
skyvern_demo_video.mp4
skyvern_demo_video.mp4
我们提供 Skyvern 的托管云版本,让您无需管理基础设施即可运行 Skyvern。它允许您并行运行多个 Skyvern 实例,以大规模自动化您的工作流程。此外,Skyvern 云还捆绑了反机器人检测机制、代理网络和验证码解决方案,让您能够完成更复杂的工作流程。
Skyvern Cloud 目前处于内测阶段。如果您有兴趣使用 Skyvern Cloud,请通过电子邮件与我们联系
本快速入门指南将引导您完成 Skyvern 的安装并在本地计算机上运行。
在开始之前,请确保您已安装以下软件:
- Brew(如果您使用的是 Mac)
- 诗歌
brew install poetry
注意:我们的安装脚本会为您执行这两项操作,但它们仅供参考。
- Python 3.11
poetry env use 3.11
- PostgreSQL 14(如果您使用的是 Mac,如果您安装了自制软件,安装脚本将为您安装它)
brew install postgresql
- 克隆存储库并导航到根目录
- 运行安装脚本以安装必要的依赖项并设置您的环境
./setup.sh
- 启动服务器
./run_skyvern.sh
- 您可以开始向服务器发送请求,但我们构建了一个简单的 UI 来帮助您入门。要启动 UI,请运行以下命令:
./run_ui.sh
- 导航至
http:https://localhost:8501
浏览器中以开始使用 UI
如果您希望为 Skyvern 做出贡献,则需要安装预提交挂钩以确保代码质量和一致性。您可以通过运行以下命令来执行此操作:
pre-commit install
UI 运行后,您可以通过填写 UI 中显示的字段并单击“执行”来启动自动化
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 在网络上进行的每次交互。
演示_可视化器.mp4
demo_visualizer.mp4
您发送到 Skyvern 的每个 API 请求称为“任务”。每个任务都由“步骤”组成,这些“步骤”是 Skyvern 为完成任务而采取的单独操作。每个步骤都由“操作”组成,这些“操作”是 Skyvern 在特定网站上进行的单独交互。
每次调用 API 时,您都会获得一个 task_id,您可以使用它在可视化工具中查找任务。在每个任务中,您将能够与每个步骤进行交互,并查看 Skyvern 为完成任务而采取的具体操作。
在下面的屏幕截图中,我们正在导航到 finditparts.com 并搜索卡车零件。您会看到其中列出了所采取的每个操作,以及每个操作背后的原因。
除了LLM以文本形式建议的操作之外,Skyvern的可视化工具还显示操作时的屏幕状态,并以1:1的操作与屏幕截图映射。这使您可以准确地看到 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
我们的重点是为基于浏览器的工作流程带来稳定性。我们利用法学硕士创建一个人工智能代理,能够与像你我一样的网站进行交互——所有这一切都通过一个简单的 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 许可证授权的开源存储库中使用,但我们的托管云产品中提供的反机器人措施除外。
如果您对许可有任何疑问或疑虑,请联系我们,我们很乐意为您提供帮助。