2 points par GN⁺ 2023-11-10 | 1 commentaires | Partager sur WhatsApp
  • Projet expérimental visant à vérifier s’il est possible de naviguer sur le web uniquement avec les capacités de vision de GPT-4V, en fournissant au modèle multimodal une interface pour interagir avec le web
  • Le projet traite du problème suivant : sans fournir le DOM du navigateur sous forme de texte, il est difficile pour le modèle de déterminer sur quoi il veut cliquer
  • Utilise l’extension Chrome Vimium pour permettre une navigation au clavier uniquement, et expérimente ainsi la manière dont le modèle interagit avec le web
  • Le flux d’exécution se compose de l’installation des prérequis Python, du téléchargement local de Vimium, du chargement manuel de l’extension lors de l’exécution de Playwright, puis du lancement de python main.py
  • Il est possible d’exécuter le Voice Mode avec python main.py --voice pour énoncer vocalement un objectif et faire exécuter au navigateur les actions correspondantes en temps réel
  • À l’heure actuelle, la Vision API ne prend en charge ni le mode JSON ni le function calling, ce qui impose de s’appuyer sur une approche de prompt plus brute
  • À basse résolution, il arrive que le modèle ne détecte rien du tout ; l’utilisation d’images en plus haute résolution peut améliorer les résultats, mais nécessite davantage de tokens

1 commentaires

 
GN⁺ 2023-11-10
Commentaires sur Hacker News
  • C’est vraiment stupéfiant que ce genre de chose soit désormais possible : https://github.com/ishan0102/vimGPT/blob/682b5e539541cd6d710...
    Le prompt lui fait manipuler le navigateur en gros ainsi : « choisissez l’action à effectuer parmi navigate, type, click, done pour aider l’utilisateur à atteindre son objectif, désignez la cible du clic au moyen d’une séquence de lettres jaunes, et renvoyez uniquement du JSON »

    • La vitesse à laquelle ce domaine évolue donne le vertige. Ça pourrait devenir une vague encore plus folle que la bulle Internet
  • Au travail, pas mal de gens ne font que copier manuellement des données entre des programmes legacy. Dans le secteur public, la dette technique est tellement énorme qu’ils ne trouvent pas comment connecter les systèmes entre eux
    J’ai bon espoir qu’un outil comme celui-ci puisse un jour devenir une couche qui tourne par-dessus ce genre de problème. C’est une solution bizarre du point de vue des ressources de calcul

    • Il y a très longtemps, j’ai travaillé sur un petit projet pour une grande chaîne multinationale d’épiceries. Nous avons créé un outil qui parsait des fichiers Excel d’une certaine structure et appelait un endpoint de leur système interne pour soumettre les données
      Par curiosité, j’ai demandé comment ils faisaient avant ; on m’a emmené vers un ordinateur au fond du bureau, dont le fond d’écran affichait deux rectangles intitulés MS EXCEL et INTERNET EXPLORER. La personne ouvrait les deux applis, alignait précisément les fenêtres sur ces rectangles, puis lançait un auto-clicker du genre de ceux qu’utiliseraient des tricheurs de RuneScape pour copier les valeurs Excel dans des formulaires du site web. C’était impressionnant
    • Ici, on met ça sur le compte des « vieux logiciels », mais en réalité presque tous les internautes rencontrent constamment le même problème de saisie de données. On copie les données d’un formulaire d’un côté de l’écran vers un autre formulaire web, ou pire, on les retape
      Identifiant, mot de passe, adresse e-mail, adresse postale, informations de carte bancaire, tout y passe ; il existe bien des extensions censées aider à la saisie, mais aucune ne fonctionne correctement et durablement. Même le remplissage cohérent des identifiants et mots de passe n’est pas acquis. C’est la première source d’irritation sur Internet, pire que la publicité, et il est étonnant que ce ne soit toujours pas résolu, avec ou sans LLM. Je serais prêt à payer un abonnement mensuel pour un logiciel qui réglerait complètement ça
    • Le terme du secteur est automatisation robotisée des processus (Robotic Process Automation), et cette famille de produits s’est attachée à assembler ce genre de choses de façon commune et structurée, en ajoutant diverses formes de machine learning/IA au screen scraping traditionnel
      Jusqu’à présent, ces produits étaient assez fragiles, mais l’explosion récente des technologies d’IA semble être une très bonne nouvelle pour ce domaine
    • Chaque fois que j’entends dire que l’extraction de données de systèmes legacy se fait manuellement par des humains, je me demande s’ils n’ont pas demandé un devis pour une « vraie » solution avant de conclure qu’il revenait moins cher de faire taper plusieurs personnes
      Même en intégrant quelque chose comme ChatGPT, il faudrait que des gens compétents passent en revue le résultat, et je ne serais pas surpris que leur premier conseil soit : « n’utilisez pas ChatGPT pour ça »
    • Avant, je trouvais étrange la scène de Ghost in the Shell où un robot avait des doigts supplémentaires au bout des doigts pour taper très vite. Ça ne se passera probablement pas exactement comme ça, puisqu’on peut se brancher directement en USB, mais j’imagine qu’on continuera parfois à utiliser l’écran et la saisie au clavier
  • vim semble devenir involontairement un excellent corps incarné pour ChatGPT. Il n’y a presque rien qu’on ne puisse pas faire avec un flux de texte, et Internet regorge déjà de vimscript
    J’ai commencé une expérience similaire ; si certains réfléchissent dans la même direction, cela peut servir de référence : https://github.com/LachlanGray/vim-agent

  • Je suis l’auteur. Si vous avez des questions, n’hésitez pas, et les contributions sont les bienvenues. J’ai laissé dans le README quelques prochaines étapes possibles

    • J’ai publié quelque chose de presque identique un peu plus tôt aujourd’hui : https://github.com/Jiayi-Pan/GPT-V-on-Web. Mais ça n’a pas beaucoup attiré l’attention
    • Open Interpreter essaie aussi d’automatiser Selenium par contrôle en langage naturel, et on voit pas mal de projets similaires sur HN ces derniers temps. L’approche Vimium a l’air beaucoup plus légère, donc prometteuse
      D’une manière ou d’une autre, le World Wide Web public est en train de se transformer en son propre serveur d’overlay d’API dynamique
    • En quoi est-ce différent de la manière dont ChatGPT navigue actuellement sur le web ?
    • Est-ce qu’on pourrait l’utiliser pour créer des bots qui visitent des sites web et en extraient/analysent les informations pertinentes, sans écrire de parseur spécifique à chaque site ?
  • J’ai bricolé une idée similaire avec GPT-4 Vision, en utilisant des captures d’écran et des actions pour naviguer ; après avoir échoué à superposer des informations sur la capture, j’ai fini par récupérer l’arbre d’accessibilité depuis Playwright et par l’envoyer aussi sous forme de texte
    Le modèle pouvait ainsi connaître les options interactives, et dans mon cas cela fonctionnait mieux. Comme l’auteur est ici et qu’il a une liste d’idées pour la suite, vous pourriez peut-être l’ajouter à la liste si cela vous semble pertinent

    • Bonne idée. Au départ, je voulais n’utiliser que les données visuelles, mais cela pourrait rendre l’agent beaucoup plus puissant. Je vais essayer bientôt
    • Il vaudrait sans doute mieux capturer tout le contenu, pas seulement ce qui tient à l’écran. Avec la nouvelle fenêtre de contexte plus grande, la plupart des pages devraient pouvoir tenir en texte ou en HTML
  • Ces dernières semaines, j’ai testé ça via l’interface de ChatGPT. J’ai quelques conseils
    En modifiant le CSS pour supprimer les dégradés et les coins arrondis, du texte blanc épais sur fond rouge s’est révélé le plus cohérent. Il vaut mieux augmenter la taille de police, et quand deux libellés se chevauchent, les repousser l’un de l’autre puis ajouter une flèche pointant vers l’élément. Avec l’API, il valait mieux envoyer à la fois l’image annotée et l’image non annotée

  • On peut créer un pilote automatique pour navigateur
    Si c’est déployé à grande échelle, il deviendra extrêmement difficile de distinguer le trafic de bots à l’avenir. Cela dit, à court terme, le problème est que ce ne sera probablement ni bon marché ni à un coût acceptable

    • En affinant des modèles open source comme llava ou cogvlm, on pourrait sans doute réduire les coûts. Cette démo coûte aussi environ 6 cents, donc ce n’est pas follement cher, et on peut faire mieux avec un prompt bien conçu
  • Quel impact ce genre d’outil aura-t-il sur le suivi web ou la publicité en ligne en général ? Si un agent peut parcourir le web à notre place, ne pas voir les pubs ni les pop-ups, éviter le tracking et ne rapporter que ce qu’il cherche précisément, cela pourrait faire un excellent bloqueur de publicités.
    Peut-être que cela pourrait aussi rendre le SEO inutile et améliorer la qualité d’Internet. À l’inverse, je me demande s’il pourrait aussi y avoir un effet secondaire où les publicités se retrouvent d’une manière ou d’une autre « mélangées » au contenu rapporté.

    • Si l’approche consiste à envoyer des captures d’écran de pages à GPT, est-ce que ça ne veut pas dire qu’il voit aussi les publicités ?
  • Aux Pays-Bas, beaucoup d’entreprises versent les salaires comme ceci : 1) elles reçoivent les bulletins de paie de leur comptable, 2) elles lancent manuellement un virement bancaire à chaque employé pour le montant indiqué sur le bulletin, et 3) elles lancent aussi manuellement un virement bancaire vers l’administration fiscale pour les retenues d’impôt sur les salaires.
    C’est un travail manuel totalement inutile, et il n’y a aucune raison que la procédure soit manuelle. Pourtant, c’est presque impossible à automatiser. Les portails de comptabilité n’ont pas d’API, ou bien, même s’ils en ont une, ils font télécharger les données en PDF, ou l’API coûte assez cher. Les banques n’ont pas non plus d’API, ou bien elles exigent de créer un compte développeur comme si l’on allait publier une application publique, alors qu’il s’agit simplement d’automatiser une procédure interne. Du coup, le moyen le plus simple de payer les salaires et les impôts reste d’embaucher quelqu’un pour le faire manuellement. Je ne ferais pas confiance à une IA pour lancer de vrais virements bancaires, mais préparer les transactions et laisser un humain simplement approuver leur envoi pourrait peut-être fonctionner.

    • Ça ne semble pas vraiment lié à l’IA. Au Royaume-Uni, il existe déjà des solutions comme Pento, qui automatisent les paiements aux utilisateurs et à l’administration fiscale via l’open banking, et soumettent aussi automatiquement les déclarations fiscales : https://www.pento.io/la/payroll-software
    • C’est simplement un problème bancaire. Les salaires des grandes entreprises ne fonctionnent pas comme ça. Les banques permettent généralement de téléverser un fichier XML définissant un lot de paiements SWIFT, et même les petites entreprises gèrent les salaires de cette manière. Les comptables fournissent aussi des fichiers XML ; ils ont probablement une application pour les générer.
    • C’est similaire dans mon pays aussi, mais certaines données doivent être téléversées sur des sites d’organismes publics. Je crois que c’était au début de cette année : il y a eu une annonce indiquant que les personnes utilisant un logiciel pour effectuer des actions sur le site web pourraient être bloquées.
    • L’automatisation de flux de travail GUI répétitifs est l’objectif de https://github.com/OpenAdaptAI/OpenAdapt.
  • Est-ce très proche du concept d’Adept ? Cela dit, le produit ne semble pas encore prêt : https://www.adept.ai/.

    • C’est assez fou de se dire que ce qu’Adept aurait levé plus de 300 millions de dollars pour construire depuis des années peut désormais être réalisé en une journée avec l’API OpenAI.
      Il semble qu’Adept ait changé de cap en cours de route, mais le concept initial était très similaire à celui-ci.
    • https://www.adept.ai/blog/experiments :)
    • Oui. Je me suis inspiré d’Adept et de quelques autres startups.
    • C’est exactement la démo à laquelle j’ai pensé.