Automatize fluxos de trabalho baseados em navegador usando LLMs e visão computacional
Skyvern automatiza fluxos de trabalho baseados em navegador usando LLMs e visão computacional. Ele fornece um endpoint de API simples para automatizar totalmente fluxos de trabalho manuais em um grande número de sites, substituindo soluções de automação frágeis ou não confiáveis.
As abordagens tradicionais para automações de navegador exigiam a escrita de scripts personalizados para sites, muitas vezes contando com análise de DOM e interações baseadas em XPath que seriam interrompidas sempre que os layouts do site mudassem.
Em vez de depender apenas de interações XPath definidas por código, Skyvern depende de prompts, além de visão computacional e LLMs, para analisar itens na janela de visualização em tempo real, criar um plano de interação e interagir com eles.
Essa abordagem nos dá algumas vantagens:
Skyvern pode operar em sites nunca antes vistos, pois é capaz de mapear elementos visuais para ações necessárias para completar um fluxo de trabalho, sem qualquer código personalizado
Skyvern é resistente a alterações no layout do site, pois não há XPaths pré-determinados ou outros seletores que nosso sistema procura ao tentar navegar
Skyvern é capaz de pegar um único fluxo de trabalho e aplicá-lo a um grande número de sites, pois é capaz de raciocinar através das interações necessárias para completar o fluxo de trabalho
Skyvern aproveita LLMs para raciocinar por meio de interações para garantir que possamos cobrir situações complexas. Os exemplos incluem:
Se você deseja obter uma cotação de seguro automóvel da Geico, a resposta a uma pergunta comum “Você era elegível para dirigir aos 18 anos?” poderia ser inferido do fato de o motorista receber sua carteira de motorista aos 16 anos
Se você estava fazendo uma análise da concorrência, entende que uma lata de 22 onças do Arnold Palmer em 11/07 é quase definitivamente o mesmo produto que uma lata de 23 onças na Gopuff (mesmo que os tamanhos sejam ligeiramente diferentes, o que pode ser um erro de arredondamento!)
Quer ver exemplos de Skyvern em ação? Vá para #exemplos-do-mundo-real-de-skyvern
Skyvern foi inspirado no design de agente autônomo orientado a tarefas popularizado por BabyAGI e AutoGPT - com um grande bônus: damos ao Skyvern a capacidade de interagir com sites usando bibliotecas de automação de navegador como Playwright.
Skyvern usa um enxame de agentes para compreender um site, planejar e executar suas ações:
Agente de elemento interativo : Este agente é responsável por analisar o HTML de um site e extrair os elementos interativos.
Agente de Navegação : Este agente é responsável por planejar a navegação para completar uma tarefa. Os exemplos incluem clicar em botões, inserir texto, selecionar opções, etc.
Agente de Extração de Dados : Este agente é responsável por extrair dados de um site. É capaz de ler as tabelas e o texto da página e extrair a saída em um formato estruturado definido pelo usuário
Agente de senha : Este agente é responsável por preencher formulários de senha em um site. É capaz de ler o nome de usuário e a senha de um gerenciador de senhas e preencher o formulário preservando a privacidade dos segredos definidos pelo usuário.
Agente 2FA : Este agente é responsável por preencher formulários 2FA em um site. Ele é capaz de interceptar solicitações de sites para 2FAs e solicitar APIs definidas pelo usuário para códigos 2FA ou esperar que os usuários insiram códigos 2FA nele e, em seguida, concluir o processo de login.
Agente de preenchimento automático dinâmico : este agente é responsável por preencher formulários de preenchimento automático dinâmico em um site. É capaz de ler as opções apresentadas, selecionando a opção apropriada com base na entrada do usuário e ajustando suas entradas com base no feedback de dentro do formulário. Exemplos populares incluem: Formulários de endereço, listas suspensas de universidades e muito mais.
Oferecemos uma versão em nuvem gerenciada do Skyvern que permite executar o Skyvern sem ter que gerenciar a infraestrutura. Ele permite que você execute várias instâncias do Skyvern em paralelo para automatizar seus fluxos de trabalho em grande escala. Além disso, a nuvem Skyvern vem com mecanismos de detecção anti-bot, rede proxy e solução CAPTCHA para permitir que você conclua fluxos de trabalho mais complicados.
Se você quiser experimentar,
Navegue para app.skyvern.com
Crie uma conta e ganhe US$ 5 em créditos por nossa conta
Comece sua primeira tarefa e veja Skyvern em ação!
Aqui estão algumas dicas que podem ajudá-lo em sua aventura:
Skyvern é realmente bom em cumprir um único objetivo. Se você der muitas instruções para fazer, há uma grande probabilidade de ele ficar confuso ao longo do caminho.
Ser realmente explícito sobre os objetivos é muito importante. Por exemplo, se você estiver gerando uma cotação de seguro, informe claramente como pode identificar se atingiu seus objetivos. Use palavras como “COMPLETE” ou “TERMINATE” para indicar modos de sucesso e falha, respectivamente.
Os fluxos de trabalho podem ser usados se você quiser fazer coisas mais avançadas, como encadear várias instruções ou fazer login com segurança. Se precisar de ajuda com isso, sinta-se à vontade para reservar um horário conosco! Estamos sempre felizes em ajudar
Este guia de início rápido orientará você na instalação e execução do Skyvern em sua máquina local.
Certifique-se de ter o Docker Desktop instalado e em execução em sua máquina
Certifique-se de não ter o postgres em execução localmente (execute docker ps
para verificar)
Clone o repositório e navegue até o diretório raiz
Preencha a chave do provedor LLM em docker-compose.yml. Se você deseja executar o Skyvern em um servidor remoto, certifique-se de definir o IP do servidor correto para o contêiner da UI em docker-compose.yml.
Execute o seguinte comando através da linha de comando:
docker compor -d
Navegue até http://localhost:8080
em seu navegador para começar a usar a IU
Antes de começar, certifique-se de ter o seguinte instalado:
Brew (se você estiver em um Mac)
Poesia
brew install poetry
nó
Docker
Observação: nosso script de configuração faz essas duas coisas para você, mas elas estão aqui para referência.
Pitão 3.11
poetry env use 3.11
PostgreSQL 14 (se você estiver em um Mac, o script de configuração irá instalá-lo para você se você tiver o homebrew instalado)
brew install postgresql
Clone o repositório e navegue até o diretório raiz
Abra o Docker Desktop (Funciona para Windows, macOS e Linux) ou execute o Docker Daemon
Execute o script de configuração para instalar as dependências necessárias e configurar seu ambiente
./setup.sh
Inicie o servidor
./run_skyvern.sh
Você pode começar a enviar solicitações ao servidor, mas criamos uma IU simples para ajudá-lo a começar. Para iniciar a IU, execute o seguinte comando:
./run_ui.sh
Navegue até http://localhost:8080
em seu navegador para começar a usar a IU
Se quiser contribuir com o Skyvern, você precisará instalar os ganchos de pré-confirmação para garantir a qualidade e consistência do código. Você pode fazer isso executando o seguinte comando:
instalação pré-confirmada
As tarefas são o alicerce fundamental do Skyvern. Cada tarefa é uma solicitação única ao Skyvern, instruindo-o a navegar por um site e atingir um objetivo específico.
As tarefas exigem que você especifique um url
, navigation_goal
e, opcionalmente, data_extraction_goal
se quiser extrair dados do site, e um navigation_payload
se quiser fornecer contexto adicional para ajudar o Skyvern a preencher informações ou responder a perguntas apresentadas por um site.
Os fluxos de trabalho são uma forma de encadear várias tarefas para formar uma unidade de trabalho coesa.
Por exemplo, se você quiser baixar todas as faturas mais recentes que 1º de janeiro, poderá criar um fluxo de trabalho que primeiro navegue até a página de faturas e, em seguida, filtre para mostrar apenas as faturas mais recentes que 1º de janeiro, extraia uma lista de todas as faturas qualificadas e itere através de cada fatura para baixá-la.
Outro exemplo é se você quisesse automatizar a compra de produtos em uma loja de comércio eletrônico, você poderia criar um fluxo de trabalho que primeiro navegasse até o produto desejado e depois o adicionasse a um carrinho. Segundo, navegaria até o carrinho e validaria o estado do carrinho. Por fim, passaria pelo processo de checkout para adquirir os itens.
Os recursos de fluxo de trabalho suportados incluem:
Tarefas (+ tarefas encadeadas)
Laços
Análise de arquivo
Fazendo upload de arquivos para bloquear armazenamento
Enviando e-mails
Solicitações de texto
(Em breve) Condicionais
(Em breve) Bloco de código personalizado
Skyvern permite transmitir ao vivo a janela de visualização do navegador para sua máquina local para que você possa ver exatamente o que Skyvern está fazendo na web. Isso é útil para depurar e entender como Skyvern está interagindo com um site e intervindo quando necessário
Skyvern é nativamente capaz de preencher formulários em sites. Passar informações por meio de navigation_goal
ou navigation_payload
permitirá que Skyvern compreenda as informações e preencha o formulário adequadamente.
Skyvern também é capaz de extrair dados de um site. Especificar um data_extraction_goal
permitirá que Skyvern extraia os dados e os retorne para você na resposta.
Você também pode especificar um data_extraction_schema
para informar ao Skyvern exatamente quais dados você gostaria de extrair do site, no formato jsonc. A saída do Skyvern será estruturada de acordo com o esquema fornecido.
Skyvern também é capaz de baixar arquivos de um site. Especificar um file_download_goal
permitirá que Skyvern baixe o arquivo e retorne um link para o arquivo na resposta.
Skyvern oferece suporte a vários métodos de autenticação diferentes para facilitar a automatização de tarefas por trás de um login.
Skyvern atualmente oferece suporte às seguintes integrações de gerenciador de senhas:
Bitwarden
1Senha
Última passagem
Skyvern oferece suporte a vários métodos 2FA diferentes para permitir automatizar fluxos de trabalho que exigem 2FA.
Os exemplos incluem:
2FA baseado em QR (por exemplo, Google Authenticator, Authy)
2FA baseado em e-mail
2FA baseado em SMS
Adoramos ver como Skyvern está sendo usado na natureza. Aqui estão alguns exemplos de como o Skyvern está sendo usado para automatizar fluxos de trabalho no mundo real. Abra PRs para adicionar seus próprios exemplos!
Você precisará ter o Skyvern rodando localmente se quiser experimentar esses exemplos. Execute o seguinte comando depois de consultar o guia de início rápido:
./run_skyvern.sh
Agende uma demonstração para ver ao vivo
Veja-o em ação
Veja-o em ação
Veja-o em ação
Veja-o em ação
Veja-o em ação
Veja-o em ação
Documentação mais extensa pode ser encontrada em nosso site de documentação. Informe-nos se algo não estiver claro ou faltando, abrindo um problema ou entrando em contato conosco por e-mail ou discórdia.
Provedor | Modelos Suportados |
---|---|
OpenAI | gpt4-turbo, gpt-4o, gpt-4o-mini |
Antrópico | Claude 3 (Haicai, Soneto, Opus), Claude 3.5 (Soneto) |
Azure Open AI | Qualquer modelo GPT. Melhor desempenho com um llm multimodal (azure/gpt4-o) |
Base da AWS | Antrópico Claude 3 (Haiku, Soneto, Opus), Claude 3.5 (Soneto) |
Ollama | Em breve (contribuições são bem-vindas) |
Gêmeos | Em breve (contribuições são bem-vindas) |
Lhama 3.2 | Em breve (contribuições são bem-vindas) |
Variável | Descrição | Tipo | Valor da amostra |
---|---|---|---|
ENABLE_OPENAI | Registrar modelos OpenAI | Booleano | true , false |
ENABLE_ANTHROPIC | Cadastrar modelos antrópicos | Booleano | true , false |
ENABLE_AZURE | Registar modelos Azure OpenAI | Booleano | true , false |
ENABLE_BEDROCK | Registrar modelos AWS Bedrock | Booleano | true , false |
LLM_KEY | O nome do modelo que você deseja usar | Corda | Chaves llm atualmente suportadas: OPENAI_GPT4_TURBO , OPENAI_GPT4V , OPENAI_GPT4O , OPENAI_GPT4O_MINI , ANTHROPIC_CLAUDE3 , ANTHROPIC_CLAUDE3_OPUS , ANTHROPIC_CLAUDE3_SONNET , ANTHROPIC_CLAUDE3_HAIKU , SONNET, 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 | Chave de API OpenAI | Corda | sk-1234567890 |
OPENAI_API_BASE | Base de API OpenAI, opcional | Corda | https://openai.api.base |
OPENAI_ORGANIZATION | ID da organização OpenAI, opcional | Corda | your-org-id |
ANTHROPIC_API_KEY | Chave de API antrópica | Corda | sk-1234567890 |
AZURE_API_KEY | Chave API de implantação do Azure | Corda | sk-1234567890 |
AZURE_DEPLOYMENT | Nome de implantação do Azure OpenAI | Corda | skyvern-deployment |
AZURE_API_BASE | URL base da API de implantação do Azure | Corda | https://skyvern-deployment.openai.azure.com/ |
AZURE_API_VERSION | Versão da API do Azure | Corda | 2024-02-01 |
Este é o nosso roteiro planejado para os próximos meses. Se você tiver alguma sugestão ou quiser ver um recurso adicionado, não hesite em entrar em contato conosco por e-mail ou discord.
Código aberto - base de código principal do Skyvern de código aberto
[BETA] Suporte ao fluxo de trabalho - Permitir suporte para encadear várias chamadas Skyvern
Contexto aprimorado - Melhore a capacidade do Skyvern de compreender o conteúdo em torno de elementos interativos, introduzindo a alimentação do contexto do rótulo relevante por meio do prompt de texto
Economia de custos - Melhore a estabilidade do Skyvern e reduza o custo de execução do Skyvern otimizando a árvore de contexto passada para o Skyvern
UI de autoatendimento - descontinuar a UI Streamlit em favor de um componente de UI baseado em React que permite aos usuários iniciar novos trabalhos no Skyvern
Workflow UI Builder - Introduza uma UI para permitir que os usuários criem e analisem fluxos de trabalho visualmente
Streaming da janela de visualização do Chrome : introduza uma maneira de transmitir ao vivo a janela de visualização do Chrome para o navegador do usuário (como parte da IU de autoatendimento)
UI de execuções anteriores - descontinuar a UI Streamlit em favor de uma UI baseada em React que permite visualizar execuções anteriores e seus resultados
Cache de prompt - introduza uma camada de cache nas chamadas LLM para reduzir drasticamente o custo de execução do Skyvern (memorize ações anteriores e repita-as!)
Conjunto de dados de avaliação da Web - Integre o Skyvern com testes de benchmark públicos para rastrear a qualidade de nossos modelos ao longo do tempo
Modo de depuração aprimorado - permite que o Skyvern planeje suas ações e obtenha "aprovação" antes de executá-las, permitindo que você depure o que está fazendo e itere mais facilmente no prompt
Modo construtor automático de fluxo de trabalho ("Observador") - permite que o Skyvern gere fluxos de trabalho automaticamente enquanto navega na web para facilitar a criação de novos fluxos de trabalho
Extensão do Chrome - permite que os usuários interajam com o Skyvern por meio de uma extensão do Chrome (incluindo modo de voz, salvamento de tarefas, etc.)
Skyvern Action Recorder - Permite que o Skyvern observe um usuário concluir uma tarefa e, em seguida, gere automaticamente um fluxo de trabalho para ele
Transmissão ao vivo interativa - permite que os usuários interajam com a transmissão ao vivo em tempo real para intervir quando necessário (como enviar manualmente formulários confidenciais)
Integrar ferramentas de observabilidade LLM - Integrar ferramentas de observabilidade LLM para permitir backtesting de alterações imediatas com conjuntos de dados específicos + visualizar o desempenho do Skyvern ao longo do tempo
Integração Langchain - Crie integração langchain em langchain_community para usar Skyvern como uma "ferramenta".
Aceitamos PRs e sugestões! Não hesite em abrir um PR/problema ou entrar em contato conosco por e-mail ou discord. Por favor, dê uma olhada em nosso guia de contribuição e nas questões "Precisa-se de ajuda" para começar!
Se você quiser conversar com o repositório skyvern para obter uma visão geral de alto nível de como ele está estruturado, como desenvolvê-lo e como resolver questões de uso, dê uma olhada no Code Sage.
Por padrão, o Skyvern coleta estatísticas básicas de uso para nos ajudar a entender como o Skyvern está sendo usado. Se desejar cancelar a telemetria, defina a variável de ambiente SKYVERN_TELEMETRY
como false
.
O repositório de código aberto do Skyvern é suportado por uma nuvem gerenciada. Toda a lógica central que alimenta o Skyvern está disponível neste repositório de código aberto licenciado sob a licença AGPL-3.0, com exceção das medidas anti-bot disponíveis em nossa oferta de nuvem gerenciada.
Se você tiver alguma dúvida ou preocupação sobre o licenciamento, entre em contato conosco e teremos prazer em ajudar.