Essayez sans authentification Firebase (solution temporaire) : #2 (commentaire)
Notre pile se compose de Next.js, Rust, Postgres, MeiliSearch et Firebase Auth pour l'authentification. Veuillez créer un compte Firebase et créer un projet.
Dans Firebase, accédez à Paramètres du projet -> Comptes de service, générez une clé privée et enregistrez-la dans firebaseAdmin/cert/dev.json
si c'est pour le développement ou prod.json si c'est pour la production.
Après cela, assurez-vous d'installer les dépendances avant de démarrer l'application.
npm install
npm run db:deploy
npm run dev
(pour le développement)npm run build
(pour la production)npm run start
(pour la production) Une fois que vous avez exécuté 'dev' ou 'build', vous trouverez l'extension construite dans le dossier ./client/extension/build
. Vous pouvez ensuite charger ce dossier en tant qu'extension décompressée dans votre navigateur.
Il existe plusieurs problèmes avec les agents de navigateur actuels. Ici, nous expliquons les problèmes et comment nous les avons résolus.
Il existe plusieurs techniques pour cela, allant de l'envoi d'une forme raccourcie de HTML à GPT-3, à la création d'un cadre de délimitation avec des identifiants et à son envoi à GPT-4-vision pour entreprendre des actions, ou à demander directement à GPT-4-vision d'obtenir le Coordonnées X et Y de l'élément. Cependant, aucune de ces méthodes n’était fiable ; ils ont tous conduit à des hallucinations.
Pour résoudre ce problème, nous avons développé une nouvelle technique dans laquelle nous indexons l'intégralité du DOM dans MeiliSearch, permettant à GPT-4-vision de générer des commandes pour lesquelles le texte interne de l'élément doit cliquer, copier ou effectuer d'autres actions. Nous recherchons ensuite l'index avec le texte généré et récupérons l'ID de l'élément à renvoyer au navigateur pour agir. Il y a ici quelques limitations, mais nous avons implémenté quelques techniques pour les surmonter, comme traiter le même texte dans plusieurs éléments ou cliquer sur une icône (nous y travaillons toujours).
Pour éviter que GPT ne déraille dans les tâches, nous utilisons une technique qui s'apparente à la génération augmentée par récupération, mais nous l'appelons en quelque sorte Génération augmentée d'actions. Essentiellement, lorsqu'un utilisateur crée un flux de travail, nous n'enregistrons pas l'écran, le microphone ou la caméra, mais nous enregistrons les modifications des éléments DOM pour chaque action (clic, saisie, etc.) effectuée par l'utilisateur. Nous utilisons ensuite le titre du workflow, l'objectif et les actions enregistrées pour générer un ensemble de tâches. Chaque fois que nous exécutons une tâche, nous intégrons toutes les actions effectuées par l'utilisateur sur ce domaine particulier avec l'invite. De cette façon, GPT reste sur la bonne voie avec la tâche, même si l'utilisateur n'a pas fourni un titre et un objectif très brefs ; leurs actions guideront GPT pour accomplir la tâche.