一、前言
本文Skyvern是一款功能強大的模擬瀏覽器自動化操作爬蟲軟件。它通過模擬人類在瀏覽器中的操作,實現對目標網站的自動化訪問、數據抓取和處理。Skyvern支持多種編程語言,用戶可根據需求編寫腳本,實現高效的數據采集。同時,它具備強大的反爬蟲策略應對能力,能在保證數據抓取效率的同時,降低被封禁的風險。Skyvern廣泛應用于網絡數據挖掘、競品分析等領域,是企業及個人獲取網絡信息的有力工具。
二、Skyvern 介紹
Skyvern是一種由Skyvern-AI開發的AI工具,旨在通過使用大型語言模型(LLMs)和計算機視覺技術來自動化基于瀏覽器的任務和工作流程。該產品的主要目標是幫助用戶減少重復性手動工作,提高效率。Skyvern通過簡單的API端點實現完全自動化的手動工作流程,替代了脆弱或不穩定的自動化解決方案。
主要特點
- 無需預定義代碼:Skyvern能夠在從未見過的網站上操作,自動將視覺元素映射到完成工作流程所需的動作,無需任何定制代碼。
- 抗布局變化能力:由于Skyvern不依賴預定義的XPath或其他選擇器,因此網站布局變化不會影響其操作。
- 大規模工作流程應用:Skyvern能夠將一個工作流程應用到大量網站,具有靈活的推理能力。
- 復雜情境處理能力:通過LLM,Skyvern能夠理解并處理復雜的交互情形。
應用場景
- 自動數據抓取:無論是價格比較,還是市場研究,Skyvern都能跨多個電商平臺快速收集信息。
- 在線表單填寫:保險報價申請、報名表格等繁瑣過程,只需簡單配置即可自動化完成。
- 競品分析:自動瀏覽競爭對手網站,獲取產品信息并做對比。
工作原理
Skyvern 的靈感來自 BabyAGI 和 AutoGPT 推廣的任務??驅動自主代理設計——還有一個主要優點:我們讓 Skyvern 能夠使用 Playwright 等瀏覽器自動化庫與網站進行交互。
三、Skyvern 部署與安裝
GitHub:https://github.com/skyvern-ai/skyvern
GitCode:https://gitcode.com/
在線:https://app.skyvern.com/
文檔:https://docs.skyvern.com
litellm: https://gitcode.com/gh_mirrors/li/litellm
Docker Compose 設置(推薦)
1、確保您已安裝并運行 Docker Desktop。
Docker Desktop 是 Docker 官方提供的桌面應用程序,旨在讓開發者能夠在 Windows 和 macOS 系統上輕松地構建、運行和共享容器化應用程序。Docker Desktop 提供了一個方便的工具集,使用戶能夠快速部署容器化應用程序,同時還包括了一些強大的功能和工具,如 Docker Engine、Docker CLI、Docker Compose 等。
這里我就不將 Docker 的詳細安裝步驟寫出來了,如果還沒有安裝的可以通過下面查看我的另一篇文字
查看詳細Docker Desktop安裝步驟:
【Docker Desktop 安裝使用教程】
查看詳細安裝 Docker Desktop 相關問題:
【安裝 家庭版 Windows 出現 的 Docker 問題】
【安裝 Windows Docker Desktop - WSL問題】
【打開 Windows Docker Desktop 出現 Docker Engine Stopped 問題】
2、確保本地沒有運行 postgres(運行 docker ps 檢查)。
docker ps
3、克隆倉庫并導航到根目錄。
git clone https://github.com/Skyvern-AI/skyvern.git
GitHub:https://github.com/skyvern-ai/skyvern
4、修改配置(支持litellm)
-
后端配置
根據你使用的LLM修改
.env
文件即可(將需要使用的模型供應商ENABLE_*
改為true,填寫相應的密鑰*_API_KEY
,修改使用的模型LLM_KEY
)
項目使用的是litellm用于發起請求,若有其他的支持視覺的LLM可以自己參考litellm,然后修改項目源碼新增。
我主要新增openai
的 api_base
這個參數,若有和我一樣將openai接口國內做的轉發可以參考以下步驟。
- 修改
skyvern/config.py
在Settings類中新增類變量OPENAI_API_BASE
OPENAI_API_BASE: str | None = None
- 修改
skyvern/forge/sdk/api/llm/config_registry.py
- 在你需要修改的模型中新增
litellm_params
參數(我使用的gpt4o,其余模型修改方法類似)
- 在你需要修改的模型中新增
LLMConfigRegistry.register_config("OPENAI_GPT4O", LLMConfig("gpt-4o",["OPENAI_API_KEY", "OPENAI_API_BASE"], # 檢查 .env中參數是否填寫supports_vision=True,add_assistant_prefix=False,litellm_params=LiteLLMParams(api_base=SettingsManager.get_settings().OPENAI_API_BASE,api_key=None,api_version=None,),)
)
- 修改
.env.example
為.env
- 新增
OPENAI_API_BASE
- 新增
OPENAI_API_BASE="https://xx.cn/v1"
- 前端配置
主要查看skyvern-frontend/.env
中VITE_SKYVERN_API_KEY
是否為空,若為空運行以下代碼得到token填寫即可。(若代碼運行出現 403 則運行以下代碼得到token修改即可)
poetry shell # 進入poetry管理的項目環境
poetry run python scripts/create_organization.py Skyvern-Open-Source
5、在 docker-compose.yml 中填寫 LLM 提供程序密鑰。
如果您想在遠程服務器上運行 Skyvern,請確保在 docker-compose.yml 中為 UI 容器設置正確的服務器 IP地址。
environment:- DATABASE_STRING=postgresql+psycopg://skyvern:skyvern@postgres:5432/skyvern- BROWSER_TYPE=chromium-headful- ENABLE_OPENAI=true- LLM_KEY=OPENAI_GPT4O- OPENAI_API_KEY=<your_openai_key>
6、通過命令行運行以下命令:
docker compose up -d
7.啟動Skyvern
8、在瀏覽器中導航到 http://localhost:8080 開始使用 UI。
三、Skyvern 的真實案例
我們很高興看到 Skyvern 是如何在實際中被使用的。以下是一些 Skyvern 如何在現實世界中用于自動化工作流程的示例。