Automatisez les flux de travail basés sur un navigateur à l'aide des LLM et de Computer Vision
Skyvern automatise les flux de travail basés sur un navigateur à l'aide de LLM et de vision par ordinateur. Il fournit un point de terminaison API simple pour automatiser entièrement les flux de travail manuels sur un grand nombre de sites Web, remplaçant ainsi les solutions d'automatisation fragiles ou peu fiables.
Les approches traditionnelles d'automatisation des navigateurs nécessitaient l'écriture de scripts personnalisés pour les sites Web, s'appuyant souvent sur l'analyse DOM et les interactions basées sur XPath qui s'interrompaient à chaque fois que la présentation du site Web changeait.
Au lieu de s'appuyer uniquement sur des interactions XPath définies par le code, Skyvern s'appuie sur des invites en plus de la vision par ordinateur et des LLM pour analyser les éléments de la fenêtre d'affichage en temps réel, créer un plan d'interaction et interagir avec eux.
Cette approche nous offre quelques avantages :
Skyvern peut fonctionner sur des sites Web jamais vus auparavant, car il est capable de mapper des éléments visuels aux actions nécessaires pour terminer un flux de travail, sans aucun code personnalisé.
Skyvern résiste aux changements de mise en page du site Web, car il n'y a pas de XPaths ou d'autres sélecteurs prédéterminés que notre système recherche en essayant de naviguer.
Skyvern est capable de prendre un seul flux de travail et de l'appliquer à un grand nombre de sites Web, car il est capable de raisonner à travers les interactions nécessaires pour terminer le flux de travail.
Skyvern exploite les LLM pour raisonner à travers les interactions afin de garantir que nous pouvons couvrir des situations complexes. Les exemples incluent :
Si vous souhaitez obtenir un devis d'assurance automobile auprès de Geico, la réponse à une question courante « Étiez-vous autorisé à conduire à 18 ans ? pourrait être déduit du fait que le conducteur a reçu son permis à l'âge de 16 ans
Si vous effectuiez une analyse des concurrents, vous comprendrez qu'une canette Arnold Palmer de 22 oz au 11/07 est presque certainement le même produit qu'une canette de 23 oz chez Gopuff (même si les tailles sont légèrement différentes, ce qui pourrait être une erreur d'arrondi !)
Vous voulez voir des exemples de Skyvern en action ? Aller aux #exemples-du-monde-réel-de-skyvern
Skyvern s'est inspiré de la conception d'agent autonome piloté par les tâches popularisée par BabyAGI et AutoGPT - avec un avantage majeur : nous donnons à Skyvern la possibilité d'interagir avec des sites Web à l'aide de bibliothèques d'automatisation de navigateur comme Playwright.
Skyvern utilise un essaim d'agents pour comprendre un site Web, planifier et exécuter ses actions :
Agent d'éléments interactifs : cet agent est chargé d'analyser le HTML d'un site Web et d'extraire les éléments interactifs.
Agent de navigation : Cet agent est chargé de planifier la navigation pour terminer une tâche. Les exemples incluent cliquer sur des boutons, insérer du texte, sélectionner des options, etc.
Agent d'extraction de données : Cet agent est chargé d'extraire les données d'un site Web. Il est capable de lire les tableaux et le texte de la page et d'extraire la sortie dans un format structuré défini par l'utilisateur.
Agent de mot de passe : Cet agent est chargé de remplir les formulaires de mot de passe sur un site Web. Il est capable de lire le nom d'utilisateur et le mot de passe d'un gestionnaire de mots de passe et de remplir le formulaire tout en préservant la confidentialité des secrets définis par l'utilisateur.
Agent 2FA : Cet agent est chargé de remplir les formulaires 2FA sur un site Internet. Il est capable d'intercepter les demandes de sites Web pour les 2FA, et soit de demander des API définies par l'utilisateur pour les codes 2FA, soit d'attendre que les utilisateurs y introduisent des codes 2FA, puis de terminer le processus de connexion.
Agent de saisie semi-automatique dynamique : Cet agent est chargé de remplir les formulaires de saisie semi-automatique dynamique sur un site Web. Il est capable de lire les options qui lui sont présentées, de sélectionner l'option appropriée en fonction de la saisie de l'utilisateur et d'ajuster ses saisies en fonction des commentaires provenant de l'intérieur du formulaire. Les exemples populaires incluent : les formulaires d’adresse, les listes déroulantes d’universités, etc.
Nous proposons une version cloud gérée de Skyvern qui vous permet d'exécuter Skyvern sans avoir à gérer l'infrastructure. Il vous permet d'exécuter plusieurs instances Skyvern en parallèle pour automatiser vos flux de travail à grande échelle. De plus, le cloud Skyvern est livré avec des mécanismes de détection anti-bot, un réseau proxy et une résolution CAPTCHA pour vous permettre d'effectuer des flux de travail plus complexes.
Si vous souhaitez l'essayer,
Accédez à app.skyvern.com
Créez un compte et obtenez 5 $ de crédits offerts
Lancez votre première tâche et voyez Skyvern en action !
Voici quelques conseils qui pourraient vous aider dans votre aventure :
Skyvern est vraiment doué pour atteindre un seul objectif. Si vous lui donnez trop d’instructions à faire, il risque fort de se perdre en cours de route.
Il est très important d’être vraiment explicite sur les objectifs. Par exemple, si vous générez un devis d'assurance, indiquez-lui très clairement comment il peut identifier qu'il a atteint ses objectifs. Utilisez des mots comme « COMPLET » ou « TERMINER » pour indiquer respectivement les modes de réussite et d’échec.
Les workflows peuvent être utilisés si vous souhaitez effectuer des tâches plus avancées, comme enchaîner plusieurs instructions ensemble ou vous connecter en toute sécurité. Si vous avez besoin d'aide, n'hésitez pas à réserver du temps avec nous ! Nous sommes toujours heureux de vous aider
Ce guide de démarrage rapide vous guidera dans la mise en service de Skyvern sur votre machine locale.
Assurez-vous que Docker Desktop est installé et exécuté sur votre ordinateur
Assurez-vous que Postgres n'est pas exécuté localement (exécutez docker ps
pour vérifier)
Clonez le référentiel et accédez au répertoire racine
Remplissez la clé du fournisseur LLM sur docker-compose.yml. Si vous souhaitez exécuter Skyvern sur un serveur distant, assurez-vous de définir l'adresse IP du serveur correcte pour le conteneur d'interface utilisateur dans docker-compose.yml.
Exécutez la commande suivante via la ligne de commande :
docker compose -d
Accédez à http://localhost:8080
dans votre navigateur pour commencer à utiliser l'interface utilisateur
Avant de commencer, assurez-vous que les éléments suivants sont installés :
Brew (si vous êtes sur Mac)
Poésie
brew install poetry
nœud
Docker
Remarque : Notre script de configuration effectue ces deux tâches pour vous, mais elles sont ici à titre de référence.
Python 3.11
poetry env use 3.11
PostgreSQL 14 (si vous êtes sur un Mac, le script d'installation l'installera pour vous si homebrew est installé)
brew install postgresql
Clonez le référentiel et accédez au répertoire racine
Ouvrez Docker Desktop (fonctionne pour Windows, macOS et Linux) ou exécutez Docker Daemon
Exécutez le script d'installation pour installer les dépendances nécessaires et configurer votre environnement
./setup.sh
Démarrer le serveur
./run_skyvern.sh
Vous pouvez commencer à envoyer des requêtes au serveur, mais nous avons créé une interface utilisateur simple pour vous aider à démarrer. Pour démarrer l'interface utilisateur, exécutez la commande suivante :
./run_ui.sh
Accédez à http://localhost:8080
dans votre navigateur pour commencer à utiliser l'interface utilisateur
Si vous souhaitez contribuer à Skyvern, vous devrez installer les hooks de pré-commit pour garantir la qualité et la cohérence du code. Vous pouvez le faire en exécutant la commande suivante :
installation préalable à la validation
Les tâches sont l’élément fondamental de Skyvern. Chaque tâche est une requête unique adressée à Skyvern, lui demandant de naviguer sur un site Web et d'atteindre un objectif spécifique.
Les tâches nécessitent que vous spécifiiez une url
, navigation_goal
et éventuellement data_extraction_goal
si vous souhaitez extraire des données du site Web, et une navigation_payload
si vous souhaitez fournir un contexte supplémentaire pour aider Skyvern à remplir les informations ou à répondre aux questions présentées par un site Web.
Les workflows sont un moyen d’enchaîner plusieurs tâches pour former une unité de travail cohérente.
Par exemple, si vous souhaitez télécharger toutes les factures plus récentes que le 1er janvier, vous pouvez créer un flux de travail qui accède d'abord à la page des factures, puis filtre pour afficher uniquement les factures plus récentes que le 1er janvier, extrait une liste de toutes les factures éligibles et itère à travers chaque facture pour la télécharger.
Un autre exemple est que si vous souhaitez automatiser l'achat de produits dans une boutique de commerce électronique, vous pouvez créer un flux de travail qui accède d'abord au produit souhaité, puis l'ajoute à un panier. Deuxièmement, il accéderait au panier et validerait l’état du panier. Enfin, il faudrait passer par le processus de paiement pour acheter les articles.
Les fonctionnalités de flux de travail prises en charge incluent :
Tâches (+ tâches enchaînées)
Boucles
Analyse de fichiers
Télécharger des fichiers pour bloquer le stockage
Envoi d'e-mails
Invites de texte
(à venir) Conditions
(Bientôt disponible) Bloc de code personnalisé
Skyvern vous permet de diffuser en direct la fenêtre d'affichage du navigateur sur votre ordinateur local afin que vous puissiez voir exactement ce que fait Skyvern sur le Web. Ceci est utile pour déboguer et comprendre comment Skyvern interagit avec un site Web et intervenir si nécessaire.
Skyvern est nativement capable de remplir des formulaires sur des sites Web. La transmission d'informations via navigation_goal
ou navigation_payload
permettra à Skyvern de comprendre les informations et de remplir le formulaire en conséquence.
Skyvern est également capable d'extraire des données d'un site Web. Spécifier un data_extraction_goal
permettra à Skyvern d'extraire les données et de vous les renvoyer dans la réponse.
Vous pouvez également spécifier un data_extraction_schema
pour indiquer à Skyvern exactement quelles données vous souhaitez extraire du site Web, au format jsonc. La sortie de Skyvern sera structurée conformément au schéma fourni.
Skyvern est également capable de télécharger des fichiers depuis un site Web. Spécifier un file_download_goal
permettra à Skyvern de télécharger le fichier et de renvoyer un lien vers le fichier dans la réponse.
Skyvern prend en charge un certain nombre de méthodes d'authentification différentes pour faciliter l'automatisation des tâches derrière une connexion.
Skyvern prend actuellement en charge les intégrations de gestionnaire de mots de passe suivantes :
Bitwarden
1Mot de passe
Dernier passage
Skyvern prend en charge un certain nombre de méthodes 2FA différentes pour vous permettre d'automatiser les flux de travail nécessitant 2FA.
Les exemples incluent :
2FA basé sur QR (par exemple Google Authenticator, Authy)
2FA basé sur le courrier électronique
2FA basé sur SMS
Nous aimons voir comment Skyvern est utilisé dans la nature. Voici quelques exemples de la façon dont Skyvern est utilisé pour automatiser les flux de travail dans le monde réel. Veuillez ouvrir les PR pour ajouter vos propres exemples !
Vous devrez faire fonctionner Skyvern localement si vous souhaitez essayer ces exemples. Veuillez exécuter la commande suivante après avoir parcouru le guide de démarrage rapide :
./run_skyvern.sh
Réservez une démo pour le voir en direct
Voyez-le en action
Voyez-le en action
Voyez-le en action
Voyez-le en action
Voyez-le en action
Voyez-le en action
Une documentation plus complète est disponible sur notre site Web de documentation. Veuillez nous faire savoir si quelque chose n'est pas clair ou manque en ouvrant un problème ou en nous contactant par e-mail ou sur Discord.
Fournisseur | Modèles pris en charge |
---|---|
OpenAI | gpt4-turbo, gpt-4o, gpt-4o-mini |
Anthropique | Claude 3 (Haïku, Sonnet, Opus), Claude 3.5 (Sonnet) |
Azure OpenAI | Tous les modèles GPT. Meilleures performances avec un LLM multimodal (azure/gpt4-o) |
Socle AWS | Anthropique Claude 3 (Haïku, Sonnet, Opus), Claude 3.5 (Sonnet) |
Ollama | À venir (contributions bienvenues) |
Gémeaux | À venir (contributions bienvenues) |
Lama 3.2 | À venir (contributions bienvenues) |
Variable | Description | Taper | Exemple de valeur |
---|---|---|---|
ENABLE_OPENAI | Enregistrer les modèles OpenAI | Booléen | true , false |
ENABLE_ANTHROPIC | Enregistrer les modèles anthropiques | Booléen | true , false |
ENABLE_AZURE | Enregistrer des modèles Azure OpenAI | Booléen | true , false |
ENABLE_BEDROCK | Enregistrer les modèles AWS Bedrock | Booléen | true , false |
LLM_KEY | Le nom du modèle que vous souhaitez utiliser | Chaîne | Clés LLM actuellement prises en charge : OPENAI_GPT4_TURBO , OPENAI_GPT4V , OPENAI_GPT4O , OPENAI_GPT4O_MINI , ANTHROPIC_CLAUDE3 , ANTHROPIC_CLAUDE3_OPUS , ANTHROPIC_CLAUDE3_SONNET , ANTHROPIC_CLAUDE3_HAIKU , BEDROCK_ANTHROPIC_CLAUDE3_HAIKU , BEDROCK_ANTHROPIC_CLAUDE3_OPUS ANTHROPIC_CLAUDE3.5_SONNET BEDROCK_ANTHROPIC_CLAUDE3_SONNET , BEDROCK_ANTHROPIC_CLAUDE3.5_SONNET , AZURE_OPENAI |
OPENAI_API_KEY | Clé API OpenAI | Chaîne | sk-1234567890 |
OPENAI_API_BASE | Base API OpenAI, facultatif | Chaîne | https://openai.api.base |
OPENAI_ORGANIZATION | ID d'organisation OpenAI, facultatif | Chaîne | your-org-id |
ANTHROPIC_API_KEY | Clé API anthropique | Chaîne | sk-1234567890 |
AZURE_API_KEY | Clé API de déploiement Azure | Chaîne | sk-1234567890 |
AZURE_DEPLOYMENT | Nom du déploiement Azure OpenAI | Chaîne | skyvern-deployment |
AZURE_API_BASE | URL de base de l'API de déploiement Azure | Chaîne | https://skyvern-deployment.openai.azure.com/ |
AZURE_API_VERSION | Version de l'API Azure | Chaîne | 2024-02-01 |
Ceci est notre feuille de route prévue pour les prochains mois. Si vous avez des suggestions ou souhaitez voir une fonctionnalité ajoutée, n'hésitez pas à nous contacter par e-mail ou sur Discord.
Open Source - Base de code principale d'Open Source Skyvern
[BETA] Prise en charge du workflow - Autoriser la prise en charge d'enchaîner plusieurs appels Skyvern ensemble
Contexte amélioré - Améliorez la capacité de Skyvern à comprendre le contenu autour des éléments interactifs en introduisant un contexte d'étiquette pertinent via l'invite de texte.
Économies de coûts - Améliorez la stabilité de Skyvern et réduisez le coût d'exécution de Skyvern en optimisant l'arborescence contextuelle transmise à Skyvern.
Interface utilisateur libre-service : abandonnez l'interface utilisateur Streamlit au profit d'un composant d'interface utilisateur basé sur React qui permet aux utilisateurs de lancer de nouvelles tâches dans Skyvern.
Workflow UI Builder – Introduire une interface utilisateur pour permettre aux utilisateurs de créer et d'analyser visuellement des flux de travail
Streaming de la fenêtre Chrome – Introduire un moyen de diffuser en direct la fenêtre Chrome sur le navigateur de l'utilisateur (dans le cadre de l'interface utilisateur en libre-service)
Interface utilisateur des exécutions passées : abandonnez l'interface utilisateur Streamlit au profit d'une interface utilisateur basée sur React qui vous permet de visualiser les exécutions passées et leurs résultats.
Mise en cache rapide - Introduisez une couche de mise en cache dans les appels LLM pour réduire considérablement le coût d'exécution de Skyvern (mémorisez les actions passées et répétez-les !)
Ensemble de données d'évaluation Web - Intégrez Skyvern aux tests de référence publics pour suivre la qualité de nos modèles au fil du temps
Mode débogage amélioré : permet à Skyvern de planifier ses actions et d'obtenir "l'approbation" avant de les exécuter, ce qui vous permet de déboguer ce qu'il fait et d'itérer plus facilement sur l'invite
Mode de création automatique de flux de travail (« Observateur ») – Autorisez Skyvern à générer automatiquement des flux de travail pendant qu'il navigue sur le Web pour faciliter la création de nouveaux flux de travail.
Extension Chrome - Permet aux utilisateurs d'interagir avec Skyvern via une extension Chrome (y compris le mode vocal, l'enregistrement des tâches, etc.)
Skyvern Action Recorder - Autoriser Skyvern à regarder un utilisateur terminer une tâche, puis à générer automatiquement un flux de travail pour celle-ci
Livestream interactif : permet aux utilisateurs d'interagir avec le livestream en temps réel pour intervenir si nécessaire (par exemple, en soumettant manuellement des formulaires sensibles)
Intégrer les outils d'observabilité LLM - Intégrer les outils d'observabilité LLM pour permettre de tester les modifications rapides avec des ensembles de données spécifiques + visualiser les performances de Skyvern au fil du temps
Intégration Langchain - Créez une intégration Langchain dans langchain_community pour utiliser Skyvern comme "outil".
Nous apprécions les PR et les suggestions ! N'hésitez pas à ouvrir un PR/problème ou à nous contacter par e-mail ou Discord. Veuillez consulter notre guide de contribution et les numéros « Aide recherchée » pour commencer !
Si vous souhaitez discuter avec le référentiel skyvern pour obtenir un aperçu général de la façon dont il est structuré, comment le construire et comment résoudre les questions d'utilisation, consultez Code Sage.
Par défaut, Skyvern collecte des statistiques d'utilisation de base pour nous aider à comprendre comment Skyvern est utilisé. Si vous souhaitez désactiver la télémétrie, veuillez définir la variable d'environnement SKYVERN_TELEMETRY
sur false
.
Le référentiel open source de Skyvern est pris en charge via un cloud géré. Toute la logique de base qui alimente Skyvern est disponible dans ce référentiel open source sous licence AGPL-3.0, à l'exception des mesures anti-bot disponibles dans notre offre de cloud géré.
Si vous avez des questions ou des préoccupations concernant les licences, veuillez nous contacter et nous serons heureux de vous aider.