【skyvern 快速上手】一句话让AI帮你实现爬虫+自动化

skyvern介绍

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

主要特点

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

工作流程

Skyvern受任务驱动的自动化代理设计启发,例如BabyAGI和AutoGPT,并结合使用如Playwright等的浏览器自动化库,实现网页交互自动化。

  1. 绘制边界框:

    • Skyvern首先在目标网站的页面上绘制各个可交互元素的边界框。
  2. 解析HTML并提取图像:

    • 接着,Skyvern解析页面的HTML代码,并从中提取包含网页内容的图像。
  3. 提取可交互元素:

    • 然后,Skyvern从图像中识别并提取所有可交互的元素,如按钮、输入框等。
  4. 调用LLM规划动作:

    • Skyvern调用大语言模型(LLM),询问下一步应该采取的动作。例如,当遇到问题“你的姓名是什么?”时,LLM会回答需要填写姓名,并点击“下一步”按钮。
    • LLM的回应示例:
      • 动作1:填写姓名为 “XX”。
      • 动作2:点击“下一步”按钮。
  5. 执行动作:

    • Skyvern根据LLM的指示执行具体动作,例如填写表单并点击按钮。
  6. 重复步骤:

    • Skyvern重复上述步骤,继续解析新页面,识别可交互元素,并调用LLM规划和执行动作,直到完成整个工作流程。

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

源码部署

  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,然后修改项目源码新增。
      我主要新增openaiapi_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
        • 新增OPENAI_API_BASE
        OPENAI_API_BASE="https://xx.cn/v1"
        
    • 前端配置
      主要查看skyvern-frontend/.envVITE_SKYVERN_API_KEY是否为空,若为空运行以下代码得到token填写即可。(若代码运行出现 403 则运行以下代码得到token修改即可)

      poetry shell  # 进入poetry管理的项目环境
      poetry run python scripts/create_organization.py Skyvern-Open-Source
      

      在这里插入图片描述

docker快速部署

  1. 确保您已安装并运行Docker Desktop。
  2. 克隆库并导航到根目录。
  3. 填写Docker Compose文件中的LLM密钥。
  4. 运行命令启动Skyvern:
docker compose up -d
  1. 在浏览器中访问http://localhost:8080开始使用。

运行(基于源码)

后端

shell脚本运行

./run_skyvern.sh

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

前端

./run_ui.sh  

快速使用示例

  • 输入我想要的任务,直接执行
    在这里插入图片描述

  • 查看正在执行的任务
    在这里插入图片描述

  • 查看结果以及每一个步骤,详细记录了每一步的操作,有图片以及视频,可以详细的查看自动化的流程。这里不过多讲述,读者可自己摸索。
    在这里插入图片描述
    在这里插入图片描述

  • 除此之外,还可以自定义运行模版
    在这里插入图片描述
    在这里插入图片描述

总结

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我爱让机器学习

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值