Exploitez la puissance des agents Web alimentés par l'IA : automatisez les tâches, récupérez les données et rationalisez les workflows

Exploitez la puissance des agents web alimentés par l'IA pour automatiser les tâches, extraire des données et rationaliser les workflows en toute simplicité. Découvrez comment construire des agents web universels capables d'interagir avec n'importe quel site Web, quelle que soit sa structure ou sa complexité.

14 février 2025

party-gif

Découvrez le potentiel passionnant de la nouvelle technologie d'agent d'OpenAI, qui peut contrôler directement les ordinateurs personnels pour automatiser une large gamme de tâches. Cet article de blog explore les capacités et les implications de cette avancée révolutionnaire de l'IA, en mettant en lumière les avantages qu'elle pourrait apporter à votre vie quotidienne et à votre travail.

Les défis de la construction d'un agent Web

La construction d'un agent web capable de contrôler directement un appareil informatique personnel pour automatiser les tâches est beaucoup plus difficile que la construction d'un agent d'appel de fonction traditionnel. Voici pourquoi :

  • Complexité des tâches : Même une tâche simple comme l'envoi d'un e-mail nécessite de multiples étapes pour un agent web - ouvrir le site web de Gmail, cliquer sur la barre de recherche, taper l'e-mail, cliquer sur le bouton de réponse et enfin cliquer sur envoyer. Chacune de ces étapes comporte un risque d'erreur, nécessitant des capacités de mémoire et de raisonnement plus importantes de la part de l'agent.

  • Compréhension de l'interface : L'agent doit comprendre avec précision l'interface utilisateur, que ce soit en analysant la structure HTML/XML ou en analysant des captures d'écran à l'aide de techniques de vision par ordinateur. Extraire les informations pertinentes et décider de la prochaine action à entreprendre est un défi complexe.

  • Précision du positionnement : Localiser avec précision les bons éléments d'interface utilisateur avec lesquels interagir, comme les boutons ou les champs de saisie, est crucial pour le succès de l'agent. Des techniques comme l'utilisation de la reconnaissance optique de caractères (OCR) et la combinaison de plusieurs modèles ont montré des résultats prometteurs, mais cela reste un obstacle important.

  • Vitesse et efficacité : La nature de ce type d'agent, qui doit passer par de multiples étapes même pour des tâches simples, le rend intrinsèquement moins efficace que les agents traditionnels. Améliorer la vitesse et le taux de réussite global des tâches est un objectif important.

  • Précision et fiabilité : S'assurer que l'agent puisse effectuer les tâches avec précision sans se bloquer dans des boucles infinies ou commettre des erreurs est essentiel pour les applications du monde réel. Relever ces défis de précision et de fiabilité est un domaine de concentration clé.

Malgré ces défis, les avantages potentiels d'un agent web capable de gérer une large gamme de tâches personnelles et professionnelles sont importants. Les recherches et le développement en cours dans des domaines comme la vision par ordinateur, les modèles de langage et la planification des tâches contribuent à faire progresser l'état de l'art dans ce domaine.

Comment les agents Web comprennent l'interface utilisateur

Il existe trois principales approches que les agents web utilisent pour comprendre et interagir avec les interfaces utilisateur :

  1. Approche basée sur HTML/XML :

    • L'agent extrait la structure HTML ou XML du site web et utilise ces informations pour comprendre la mise en page et les éléments interactifs.
    • L'agent peut ensuite utiliser ces connaissances pour localiser et interagir avec des éléments d'interface spécifiques, tels que des champs de saisie, des boutons et des liens.
    • Cette approche est relativement mature, mais elle a des limites dans la gestion des sites web complexes ou mal structurés.
  2. Approche basée sur la vision :

    • L'agent utilise des modèles de vision par ordinateur pour analyser des captures d'écran ou des images de l'interface utilisateur.
    • Cela permet à l'agent d'identifier et de localiser les éléments d'interface, même en l'absence de données HTML/XML propres.
    • Des techniques comme la cartographie de la saillance et la reconnaissance optique de caractères (OCR) sont utilisées pour repérer les coordonnées exactes des éléments interactifs.
    • La combinaison de modèles de vision avec des modèles de langage (comme GPT-4) peut améliorer la précision de cette approche.
  3. Approche hybride :

    • Elle combine les forces des approches basées sur HTML/XML et sur la vision.
    • L'agent utilise à la fois les données structurées du site web et les informations visuelles des captures d'écran pour comprendre l'interface.
    • Cette approche peut gérer une plus grande variété de structures de sites web et offrir une interaction plus précise avec les éléments d'interface.

Les principaux défis dans la construction d'agents web efficaces sont :

  1. Vitesse : La nature multi-étapes des interactions web peut rendre les agents web plus lents que les agents d'appel de fonction traditionnels.
  2. Précision : Localiser et interagir avec précision avec les éléments d'interface est une tâche complexe qui nécessite des capacités avancées de vision par ordinateur et de compréhension du langage.
  3. Achèvement des tâches : Maintenir le contexte et éviter les boucles infinies sont importants pour s'assurer que les agents web puissent mener à bien des tâches complexes.

La puissance des approches multimodales

Tout d'abord, j'ai rapidement réalisé que ce type d'agent web, mobile ou de bureau capable de contrôler directement l'appareil informatique personnel est beaucoup plus difficile que les agents d'appel de fonction normaux que nous construisons. Supposons que nous construisions un simple agent de gestion de boîte de réception capable d'effectuer des actions comme l'envoi d'un e-mail. Avec un agent d'appel de fonction normal, il suffit d'appeler une fonction prédéfinie appelée "envoyer un e-mail" et de transmettre le contenu de l'e-mail, et la tâche est terminée. Il y a peu de risque d'erreur.

Cependant, si nous essayons de faire en sorte qu'un agent web effectue la simple tâche d'envoyer un e-mail, il devra passer par au moins quatre étapes différentes. Il devra d'abord ouvrir Gmail.com dans le navigateur web, cliquer sur la barre de recherche, rechercher le e-mail spécifique auquel répondre, cliquer sur le bon e-mail dans les résultats de recherche, cliquer sur le bouton de réponse, taper la réponse et cliquer sur Envoyer. Il faut donc beaucoup plus d'étapes pour accomplir même une tâche de base. Il y a beaucoup plus de risque d'erreur dans ce processus, car l'agent peut se tromper à n'importe laquelle de ces étapes. L'agent a également besoin de capacités de mémoire et de raisonnement plus importantes pour se rappeler ce qu'il a fait auparavant afin d'éviter de répéter les mêmes erreurs.

Donc, en résumé, c'est beaucoup plus difficile à construire, mais si cette capacité est atteinte, c'est super excitant et ouvre des opportunités pour de multiples grands marchés.

Comment ce système fonctionne-t-il en réalité ? Il existe trois principales approches courantes :

  1. Approche basée sur HTML ou XML : Nous essaierons d'extraire le fichier HTML de chaque site web et de donner ces éléments du DOM HTML à l'agent comme contexte, afin que l'agent puisse comprendre la structure du site web et décider de la prochaine étape à suivre. C'est la méthode la plus mature, mais elle a des limites, comme l'incapacité à gérer les tâches impliquant des images.

  2. Approche basée sur la vision : Au lieu de fournir à l'agent le code HTML d'origine, nous pouvons prendre une capture d'écran et l'envoyer à un modèle multimodal, où il peut comprendre, raisonner et planifier la prochaine étape. La partie la plus difficile de cette approche est de localiser avec précision l'élément d'interface utilisateur exact avec lequel interagir.

  3. Approche hybride : Certaines équipes ont combiné les forces des approches basées sur HTML/XML et sur la vision, en utilisant une combinaison de modèles de langage et de reconnaissance optique de caractères (OCR) pour améliorer la précision.

Surmonter les principaux problèmes des agents Web

Le développement d'agents web capables de contrôler directement les appareils informatiques personnels pour automatiser les tâches est un défi complexe, avec plusieurs problèmes clés à surmonter :

  1. Vitesse : La nature de ce type d'agent nécessite de passer par de multiples étapes pour accomplir même des tâches simples, les rendant intrinsèquement moins efficaces que les agents d'appel de fonction traditionnels.

  2. Précision : Localiser et interagir avec précision avec des éléments d'interface spécifiques sur les sites web et les applications est un défi important. Des approches comme l'utilisation de la structure HTML/XML, les modèles multimodaux et les combinaisons de techniques comme l'OCR et CLIP ont montré des progrès, mais il y a encore de la marge pour s'améliorer.

  3. Achèvement des tâches : Les agents web peuvent souvent se bloquer dans des boucles infinies, oublier les étapes qu'ils ont déjà effectuées et rencontrer à nouveau les mêmes problèmes. Résoudre ce problème de maintien du contexte et d'achèvement des tâches est crucial pour accroître l'adoption de ces agents.

Pour relever ces problèmes, plusieurs techniques et outils ont été explorés :

  • Approche basée sur HTML/XML : Extraire et nettoyer la structure HTML pour fournir à l'agent un contexte plus gérable a montré des résultats prometteurs, mais est limité pour les tâches impliquant des images et des sites web mal conçus.

  • Approche multimodale : Utiliser des techniques de vision par ordinateur comme l'analyse de captures d'écran, l'OCR et CLIP pour comprendre l'interface et localiser les éléments interactifs a amélioré la précision, mais reste confronté à des défis avec des interfaces complexes ou condensées.

  • Modèles spécialisés : Des projets comme Cook Agent, un modèle de langage visuel conçu spécifiquement pour comprendre et interagir avec des captures d'écran d'interface graphique, ont démontré de meilleures performances dans l'achèvement des tâches web et mobiles.

  • Web QL : Cette bibliothèque open source fournit un moyen de définir facilement des requêtes pour localiser et interagir avec les éléments d'interface, simplifiant le processus de construction d'agents web précis.

Débloquer le potentiel du web scraping avec les agents Web

L'un des principaux défis du web scraping a été la nécessité de maintenir des grattoirs personnalisés pour chaque site web, car leur structure et leur mise en page changent souvent au fil du temps. Cependant, l'émergence d'agents web capables de contrôler directement l'interface utilisateur d'un navigateur web ouvre de nouvelles possibilités pour construire des grattoirs web plus universels et robustes.

Ces agents web tirent parti de modèles d'IA avancés, comme les modèles de langage à grande échelle et les techniques de vision par ordinateur, pour comprendre et interagir avec les interfaces web de manière plus humaine. En simulant de véritables interactions utilisateur comme le clic, le défilement et la saisie, ces agents peuvent naviguer et extraire des données d'une grande variété de sites web sans avoir besoin de code personnalisé.

Un de ces projets open source, appelé WebQL, fournit un outil puissant pour construire ces agents web. WebQL vous permet de définir des requêtes qui spécifient les éléments d'interface que vous voulez interagir, comme les champs de saisie, les boutons et les listes de produits. La bibliothèque utilise ensuite la vision par ordinateur et d'autres techniques pour localiser et interagir avec ces éléments, même sur des sites web complexes et dynamiques.

En utilisant WebQL, vous pouvez rapidement construire des grattoirs web universels qui peuvent être appliqués à différents sites e-commerce, par exemple, pour extraire des informations sur les produits comme le nom, les avis, le prix et les frais de livraison. Le même script peut être réutilisé sur plusieurs sites, réduisant considérablement la charge de maintenance par rapport aux approches traditionnelles de web scraping.

Au-delà du web scraping, ces agents web peuvent également être utilisés pour automatiser une grande variété de tâches basées sur le web, comme la réservation de vols, la gestion des e-mails et l'interaction avec les outils de productivité. En combinant la flexibilité de ces agents avec la précision et la fiabilité de bibliothèques comme Playwright, les développeurs peuvent créer de puissants assistants personnels capables de gérer des workflows complexes et multi-étapes sur le web.

Bien qu'il reste encore quelques défis à relever, comme garantir l'achèvement fiable des tâches et améliorer la vitesse et la précision des agents, le potentiel de cette technologie est évident. À mesure que les modèles d'IA sous-jacents et les techniques d'intégration continueront d'évoluer, nous pouvons nous attendre à voir de plus en plus d'applications innovantes d'agents web dans un avenir proche.

Mettre en œuvre un gratteur de commerce électronique universel avec WebQL

Pour construire un grattoir e-commerce universel à l'aide de WebQL, nous suivrons ces étapes :

  1. Installer les bibliothèques requises :

    • pip install webql
    • pip install playwright
  2. Définir la clé d'API WebQL dans un fichier .env.

  3. Créer un script Python appelé ecommerce_scraper.py avec le code suivant :

import os
from dotenv import load_dotenv
from webql import WebQL
from playwright.sync_api import sync_playwright
import csv
import json

load_dotenv()

def save_json_to_csv(data, filename):
    columns = ['product_name', 'num_reviews', 'price', 'rating']
    with open(filename, 'w', newline='') as csvfile:
        writer = csv.DictWriter(csvfile, fieldnames=columns)
        writer.writeheader()
        for product in data['results']['products']:
            writer.writerow({
                'product_name': product['name'],
                'num_reviews': product['num_reviews'],
                'price': product['price'],
                'rating': product['rating']
            })

with sync_playwright() as p:
    browser = p.chromium.launch(headless=False)
    page = browser.new_page()

    webql = WebQL(os.getenv('WEBQL_API_KEY'))
    session = webql.create_session(page)

    home_query = {
        'search_box': 'input[name="q"]',
        'search_button': 'button[type="submit"]'
    }
    home_elements = session.query(home_query)
    home_elements['search_box'].fill('coffee machine')
    home_elements['search_button'].click()

    search_query = {
        'products': ['name', 'num_reviews', 'price', 'rating']
    }
    search_results = session.query(search_

FAQ