【skyvern 部署】自动化

【skyvern 部署】自动化

在数字化时代,数据已成为企业决策和创新的核心资源。然而,从互联网上获取这些数据并非易事,尤其是当涉及到复杂网站和动态内容时。传统的爬虫工具往往难以应对网站的反爬机制和复杂的交互逻辑。幸运的是,随着人工智能技术的发展,Skyvern应运而生,它是一款革命性的浏览器自动化工具,能够轻松实现爬虫、自动化和浏览器自动化任务。本文将带你快速上手Skyvern,让你的一句话指令就能让AI帮你完成复杂的自动化任务。

skyvern介绍

Skyvern 是一款利用大语言模型(LLM)和计算机视觉技术来自动化浏览器工作流程的工具。它通过提供一个简单的API端点,能够替代那些脆弱或不可靠的自动化解决方案,从而高效地自动化大量网站上的手动操作。

主要特点

  • 无需预定义代码:Skyvern能够在从未见过的网站上操作,自动将视觉元素映射到完成工作流程所需的动作,无需任何定制代码。
  • 抗布局变化能力:由于Skyvern不依赖预定义的XPath或其他选择器,因此网站布局变化不会影响其操作。
  • 大规模工作流程应用:Skyvern能够将一个工作流程应用到大量网站,具有灵活的推理能力。
  • 复杂情境处理能力:通过LLM,Skyvern能够理解并处理复杂的交互情形。

部署(重点介绍源码部署)

源码部署

1、安装 Python 3.11,如有python 3.11版本(官方指定3.11版本)可跳过

我使用的pyenv来管理环境,也可使用其他方法安装python

复制代码
# macos中pyenv安装命令,其余系统自行查找

brew install pyenv  

配置环境变量

复制代码
# 配置环境变量
export PATH="$HOME/.pyenv/bin:$PATH"
eval "$(pyenv init --path)"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"

pyenv install 3.11.9  
pyenv global 3.11.9

2、安装poetry

Poetry 是 Python 中用于依赖项管理和打包的一个工具。

其他安装方式参考官方文档:https://python-poetry.org/docs

复制代码
# macos中poetry安装命令,其余系统自行查找
brew install poetry

# 如果使用的pyenv可以指定poetry使用当前pyenv的py版本
poetry env use $(pyenv which python)

3、安装PostgreSQL 14

复制代码
# macos中安装命令,其余系统自行查找
brew install postgresql

4、安装node

使用的nvm来管理node环境,也可使用其他方法安装node

复制代码
# macos中安装命令,其余系统自行查找
brew install nvm  

# 安装最新node,并设置为系统默认
nvm install node
nvm alias default node

5、克隆源码

复制代码
git clone https://github.com/Skyvern-AI/skyvern.git

6、依赖安装

复制代码
cd skyvern  # 项目根目录执行下面的命令 
./setup.sh

7、修改配置

  • 后端配置

    根据你使用的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

  • 前端配置

主要查看skyvern-frontend/.env中VITE_SKYVERN_API_KEY是否为空,若为空运行以下代码得到token填写即可。(若代码运行出现 403 则运行以下代码得到token修改即可)

复制代码
poetry shell  # 进入poetry管理的项目环境
poetry run python scripts/create_organization.py Skyvern-Open-Source
docker快速部署

确保您已安装并运行Docker Desktop。

克隆库并导航到根目录。

填写Docker Compose文件中的LLM密钥。

运行命令启动Skyvern:

复制代码
docker compose up -d

在浏览器中访问http://localhost:8080开始使用。

运行(基于源码)

后端

shell脚本运行

复制代码
./run_skyvern.sh

或者直接运行/调试 代码 skyvern/forge/main.py

前端

复制代码
./run_ui.sh  

Skyvern 通过结合大语言模型(LLM)和计算机视觉技术,提供了一种高效、灵活的浏览器自动化工具。其无需预定义代码,抗布局变化能力强,能够在大量网站上应用工作流程并处理复杂情境。Skyvern不仅简化了自动化流程的实现,还通过详细记录和呈现每一步骤的执行情况,为用户提供了透明和可控的自动化解决方案。不论是源码部署还是使用Docker快速部署,用户都能便捷地将Skyvern集成至自己的项目中,并且通过完善的接口和配置选项,轻松定制和扩展其功能。

注意:目前大模型使用的是OpenAI的接口,其中执行一条任务都需要OpenAI大量的token,太费钱了,相信不久将来可以快速指令式自动化办公了

相关推荐
LunarCod1 小时前
Ubuntu使用Docker搭建SonarQube企业版(含破解方法)
linux·运维·服务器·ubuntu·docker·开源·sonarqube
什么半岛铁盒1 小时前
Linux信号的保存
linux·运维·网络
noravinsc2 小时前
国产化中间件 替换 nginx
运维·nginx·中间件
惜.己2 小时前
Linux常用命令(十四)
linux·运维·服务器
linkingvision3 小时前
H5S 视频监控AWS S3 对象存储
linux·运维·aws·视频监控s3对象存储
doupoa3 小时前
Fabric 服务端插件开发简述与聊天事件监听转发
运维·python·fabric
BillKu3 小时前
服务器多JAR程序运行与管理指南
运维·服务器·jar
QQ2740287563 小时前
BlockMesh Ai项目 监控节点部署教程
运维·服务器·web3
南棱笑笑生4 小时前
20250512给NanoPi NEO core开发板在Ubuntu core20.04系统更新boot.img
linux·运维·ubuntu
小锋学长生活大爆炸4 小时前
【教程】Docker更换存储位置
运维·docker·容器