使用法学硕士和计算机视觉自动化基于浏览器的工作流程
Skyvern 使用法学硕士和计算机视觉自动化基于浏览器的工作流程。它提供了一个简单的 API 端点,可以在大量网站上完全自动化手动工作流程,从而取代脆弱或不可靠的自动化解决方案。
传统的浏览器自动化方法需要为网站编写自定义脚本,通常依赖 DOM 解析和基于 XPath 的交互,只要网站布局发生变化,这些脚本就会中断。
Skyvern 不仅仅依赖于代码定义的 XPath 交互,还依赖于计算机视觉和 LLM 之外的提示来实时解析视口中的项目,创建交互计划并与它们进行交互。
这种方法给我们带来了一些优势:
Skyvern 可以在以前从未见过的网站上运行,因为它能够将视觉元素映射到完成工作流程所需的操作,而无需任何自定义代码
Skyvern 能够抵抗网站布局更改,因为我们的系统在尝试导航时没有预先确定的 XPath 或其他选择器
Skyvern 能够采用单个工作流程并将其应用于大量网站,因为它能够通过完成工作流程所需的交互进行推理
Skyvern 利用法学硕士通过交互进行推理,以确保我们能够应对复杂的情况。示例包括:
如果您想从 Geico 获得汽车保险报价,请参阅常见问题“您有资格在 18 岁时开车吗?”的答案。可以从 16 岁时获得驾照的驾驶员推断出
如果您进行竞争对手分析,就会发现 7/11 的 Arnold Palmer 22 盎司罐头几乎肯定与 Gopuff 的 23 盎司罐头产品相同(尽管尺寸略有不同,这可能是舍入误差!)
想要查看 Skyvern 的实际应用示例吗?跳转到#real-world-examples-of-skyvern
Skyvern 的灵感来自于 BabyAGI 和 AutoGPT 流行的任务驱动自主代理设计——它有一个主要好处:我们让 Skyvern 能够使用 Playwright 等浏览器自动化库与网站进行交互。
Skyvern 使用一群代理来理解网站,并计划和执行其操作:
可交互元素代理:该代理负责解析网站的 HTML 并提取可交互元素。
导航代理:该代理负责规划导航以完成任务。示例包括单击按钮、插入文本、选择选项等。
数据提取代理:该代理负责从网站提取数据。它能够读取页面上的表格和文本,并以用户定义的结构化格式提取输出
密码代理:该代理负责填写网站上的密码表格。它能够从密码管理器读取用户名和密码,并填写表单,同时保留用户定义的秘密的隐私。
2FA 代理:该代理负责在网站上填写 2FA 表格。它能够拦截网站对 2FA 的请求,并请求用户定义的 2FA 代码 API 或等待用户将 2FA 代码输入其中,然后完成登录过程。
动态自动完成代理:该代理负责填写网站上的动态自动完成表格。它能够读取呈现给它的选项,根据用户的输入选择适当的选项,并根据表单内部的反馈调整其输入。常见的示例包括:地址表格、大学下拉菜单等。
我们提供 Skyvern 的托管云版本,让您无需管理基础设施即可运行 Skyvern。它允许您并行运行多个 Skyvern 实例,以大规模自动化您的工作流程。此外,Skyvern 云还捆绑了反机器人检测机制、代理网络和验证码解决功能,让您能够完成更复杂的工作流程。
如果你想尝试一下,
导航至 app.skyvern.com
创建帐户并获得 5 美元的积分
开始你的第一个任务,看看 Skyvern 的实际行动!
以下是一些可能对您的冒险之旅有所帮助的提示:
Skyvern 非常擅长实现单一目标。如果你给它太多的指令去做,它很可能会在整个过程中感到困惑。
真正明确目标非常重要。例如,如果您要生成保险报价,请让它非常清楚地知道如何识别它已实现其目标。使用“完成”或“终止”等词语分别表示成功和失败模式。
如果您想要执行更高级的操作,例如将多个指令链接在一起或安全登录,则可以使用工作流程。如果您在这方面需要任何帮助,请随时与我们预约!我们总是很乐意提供帮助
本快速入门指南将引导您完成 Skyvern 的安装并在本地计算机上运行。
确保您的计算机上已安装并运行 Docker Desktop
确保本地没有运行 postgres(运行docker ps
进行检查)
克隆存储库并导航到根目录
在 docker-compose.yml 上填写 LLM 提供商密钥。如果要在远程服务器上运行 Skyvern,请确保在 docker-compose.yml 中为 UI 容器设置正确的服务器 IP。
通过命令行运行以下命令:
docker 组成-d
在浏览器中导航至http://localhost:8080
以开始使用 UI
在开始之前,请确保您已安装以下软件:
Brew(如果您使用的是 Mac)
诗
brew install poetry
节点
码头工人
注意:我们的安装脚本会为您执行这两项操作,但它们仅供参考。
Python 3.11
poetry env use 3.11
PostgreSQL 14(如果您使用的是 Mac,如果您安装了自制软件,安装脚本将为您安装它)
brew install postgresql
克隆存储库并导航到根目录
打开 Docker Desktop(适用于 Windows、macOS 和 Linux)或运行 Docker Daemon
运行安装脚本以安装必要的依赖项并设置您的环境
./setup.sh
启动服务器
./run_skyvern.sh
您可以开始向服务器发送请求,但我们构建了一个简单的 UI 来帮助您入门。要启动 UI,请运行以下命令:
./run_ui.sh
在浏览器中导航至http://localhost:8080
以开始使用 UI
如果您希望为 Skyvern 做出贡献,则需要安装预提交挂钩以确保代码质量和一致性。您可以通过运行以下命令来执行此操作:
预提交安装
任务是 Skyvern 内部的基本构建块。每个任务都是对 Skyvern 的单个请求,指示它浏览网站并完成特定目标。
如果您想从网站提取数据,任务要求您指定url
、 navigation_goal
和可选的data_extraction_goal
;如果您想提供额外的上下文来帮助 Skyvern 填充信息或回答网站提出的问题,则需要navigation_payload
。
工作流是将多个任务链接在一起以形成一个有凝聚力的工作单元的方法。
例如,如果您想要下载 1 月 1 日之后的所有发票,您可以创建一个工作流程,首先导航到发票页面,然后向下筛选以仅显示 1 月 1 日之后的发票,提取所有符合条件的发票的列表,然后迭代通过每张发票来下载它。
另一个示例是,如果您想自动从电子商务商店购买产品,您可以创建一个工作流程,首先导航到所需的产品,然后将其添加到购物车。其次,它将导航到购物车并验证购物车状态。最后,它将通过结账流程来购买物品。
支持的工作流程功能包括:
任务(+链式任务)
循环
文件解析
将文件上传到块存储
发送电子邮件
文字提示
(即将推出) 条件
(即将推出)自定义代码块
Skyvern 允许您将浏览器的视口直播到本地计算机,以便您可以准确地看到 Skyvern 在网络上所做的事情。这对于调试和理解 Skyvern 如何与网站交互以及在必要时进行干预非常有用
Skyvern 本身就能够在网站上填写表单输入。通过navigation_goal
或navigation_payload
传递信息将允许 Skyvern 理解该信息并相应地填写表格。
Skyvern 还能够从网站提取数据。指定data_extraction_goal
将允许 Skyvern 提取数据并在响应中将其返回给您。
您还可以指定data_extraction_schema
来告诉 Skyvern 您想要以 jsonc 格式从网站中提取哪些数据。 Skyvern 的输出将根据提供的模式进行构建。
Skyvern 还能够从网站下载文件。指定file_download_goal
将允许 Skyvern 下载文件并在响应中返回该文件的链接。
Skyvern 支持多种不同的身份验证方法,以便更轻松地自动执行登录后的任务。
Skyvern 目前支持以下密码管理器集成:
比特沃登
1密码
最后通行证
Skyvern 支持多种不同的 2FA 方法,使您能够自动化需要 2FA 的工作流程。
示例包括:
基于 QR 的 2FA(例如 Google Authenticator、Authy)
基于电子邮件的 2FA
基于短信的 2FA
我们很高兴看到 Skyvern 在野外的使用情况。以下是如何使用 Skyvern 在现实世界中实现工作流程自动化的一些示例。请打开 PR 添加您自己的示例!
如果您想尝试这些示例,您需要在本地运行 Skyvern。请在完成快速入门指南后运行以下命令:
./run_skyvern.sh
预订演示以现场观看
查看实际效果
查看实际效果
查看实际效果
查看实际效果
查看实际效果
查看实际效果
更广泛的文档可以在我们的文档网站上找到。如果有不清楚或缺失的内容,请通过提出问题或通过电子邮件或不和谐联系我们来告知我们。
提供者 | 支持型号 |
---|---|
开放人工智能 | gpt4-turbo、gpt-4o、gpt-4o-mini |
人择 | 克劳德 3(俳句、十四行诗、作品)、克劳德 3.5(十四行诗) |
Azure 开放人工智能 | 任何 GPT 模型。使用多模式 llm (azure/gpt4-o) 获得更好的性能 |
AWS 基岩 | 人类克劳德 3(俳句、十四行诗、作品)、克劳德 3.5(十四行诗) |
奥拉马 | 即将推出(欢迎贡献) |
双子座 | 即将推出(欢迎贡献) |
骆驼3.2 | 即将推出(欢迎贡献) |
多变的 | 描述 | 类型 | 样本值 |
---|---|---|---|
ENABLE_OPENAI | 注册 OpenAI 模型 | 布尔值 | true , false |
ENABLE_ANTHROPIC | 注册人类模型 | 布尔值 | true , false |
ENABLE_AZURE | 注册 Azure OpenAI 模型 | 布尔值 | true , false |
ENABLE_BEDROCK | 注册 AWS Bedrock 模型 | 布尔值 | true , false |
LLM_KEY | 您要使用的型号的名称 | 细绳 | 目前支持的 llm 键: OPENAI_GPT4_TURBO 、 OPENAI_GPT4V 、 OPENAI_GPT4O 、 OPENAI_GPT4O_MINI 、 ANTHROPIC_CLAUDE3 、 ANTHROPIC_CLAUDE3_OPUS 、 ANTHROPIC_CLAUDE3_SONNET 、 ANTHROPIC_CLAUDE3_HAIKU 、 ANTHROPIC_CLAUDE3.5_SONNET 、 BEDROCK_ANTHROPIC_CLAUDE3_OPUS 、 BEDROCK_ANTHROPIC_CLAUDE3_SONNET 、 BEDROCK_ANTHROPIC_CLAUDE3_HAIKU 、 BEDROCK_ANTHROPIC_CLAUDE3.5_SONNET 、 AZURE_OPENAI |
OPENAI_API_KEY | OpenAI API 密钥 | 细绳 | sk-1234567890 |
OPENAI_API_BASE | OpenAI API 库,可选 | 细绳 | https://openai.api.base |
OPENAI_ORGANIZATION | OpenAI 组织 ID,可选 | 细绳 | your-org-id |
ANTHROPIC_API_KEY | 人为 API 密钥 | 细绳 | sk-1234567890 |
AZURE_API_KEY | Azure 部署 API 密钥 | 细绳 | sk-1234567890 |
AZURE_DEPLOYMENT | Azure OpenAI 部署名称 | 细绳 | skyvern-deployment |
AZURE_API_BASE | Azure 部署 api 基本 url | 细绳 | https://skyvern-deployment.openai.azure.com/ |
AZURE_API_VERSION | Azure API 版本 | 细绳 | 2024-02-01 |
这是我们未来几个月计划的路线图。如果您有任何建议或希望看到添加的功能,请随时通过电子邮件或不和谐与我们联系。
开源- 开源 Skyvern 的核心代码库
[BETA] 工作流程支持- 允许支持将多个 Skyvern 调用链接在一起
改进的上下文- 通过文本提示提供相关标签上下文,提高 Skyvern 理解可交互元素内容的能力
节省成本- 通过优化传递到 Skyvern 的上下文树,提高 Skyvern 的稳定性并降低运行 Skyvern 的成本
自助式 UI - 弃用 Streamlit UI,转而使用基于 React 的 UI 组件,该组件允许用户在 Skyvern 中启动新工作
工作流 UI 构建器- 引入 UI 以允许用户直观地构建和分析工作流
Chrome Viewport Streaming - 引入一种将 Chrome 视口实时流式传输到用户浏览器的方法(作为自助 UI 的一部分)
过去的运行 UI - 弃用 Streamlit UI,转而使用基于 React 的 UI,该 UI 允许您可视化过去的运行及其结果
提示缓存- 在 LLM 调用中引入缓存层,以显着降低运行 Skyvern 的成本(记住过去的操作并重复它们!)
Web 评估数据集- 将 Skyvern 与公共基准测试集成,以跟踪我们模型随时间的质量
改进的调试模式- 允许 Skyvern 计划其操作并在运行它们之前获得“批准”,从而允许您调试它正在执行的操作并更轻松地在提示上进行迭代
自动工作流程构建器(“观察者”)模式- 允许 Skyvern 在浏览网络时自动生成工作流程,以便更轻松地构建新工作流程
Chrome 扩展- 允许用户通过 Chrome 扩展与 Skyvern 交互(包括语音模式、保存任务等)
Skyvern Action Recorder - 允许 Skyvern 观看用户完成任务,然后自动为其生成工作流程
可互动直播- 允许用户与直播实时互动,以便在必要时进行干预(例如手动提交敏感表单)
集成 LLM 可观测性工具- 集成 LLM 可观测性工具,以允许使用特定数据集进行回溯测试提示更改 + 可视化 Skyvern 随着时间的推移的性能
Langchain 集成- 在 langchain_community 中创建 langchain 集成,以使用 Skyvern 作为“工具”。
我们欢迎 PR 和建议!请随时提出 PR/问题或通过电子邮件或 Discord 与我们联系。请查看我们的贡献指南和“寻求帮助”问题以开始使用!
如果您想与 skyvern 存储库交谈以获取其结构、如何构建以及如何解决使用问题的高级概述,请查看 Code Sage。
默认情况下,Skyvern 会收集基本的使用统计数据,以帮助我们了解 Skyvern 的使用情况。如果您想选择退出遥测,请将SKYVERN_TELEMETRY
环境变量设置为false
。
Skyvern 的开源存储库通过托管云获得支持。除了我们的托管云产品中提供的反机器人措施之外,支持 Skyvern 的所有核心逻辑都可以在这个根据 AGPL-3.0 许可证授权的开源存储库中使用。
如果您对许可有任何疑问或疑虑,请联系我们,我们很乐意为您提供帮助。