使用法學碩士和電腦視覺自動化基於瀏覽器的工作流程
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 | 您要使用的型號的名稱 | 細繩 | 目前BEDROCK_ANTHROPIC_CLAUDE3_SONNET 的 llm 鍵ANTHROPIC_CLAUDE3.5_SONNET OPENAI_GPT4_TURBO 、 OPENAI_GPT4V 、 ANTHROPIC_CLAUDE3 、 OPENAI_GPT4O_MINI 、 ANTHROPIC_CLAUDE3_OPUS 、 ANTHROPIC_CLAUDE3_SONNET 、 ANTHROPIC_EBPHRO3 BEDROCK_ANTHROPIC_CLAUDE3_OPUS _ANTHROPIC_CLAUDE3_OPUS 、 OPENAI_GPT4O 、 ANTHROPIC_CLAUDE3_HAIKU 、 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 許可證授權的開源儲存庫中使用。
如果您對許可有任何疑問或疑慮,請聯絡我們,我們很樂意為您提供協助。