Versuchen Sie es ohne Firebase-Authentifizierung (vorübergehende Lösung): #2 (Kommentar)
Unser Stack besteht aus Next.js, Rust, Postgres, MeiliSearch und Firebase Auth zur Authentifizierung. Bitte registrieren Sie sich für ein Firebase-Konto und erstellen Sie ein Projekt.
Navigieren Sie in Firebase zu Projekteinstellungen -> Dienstkonten, generieren Sie einen privaten Schlüssel und speichern Sie ihn in firebaseAdmin/cert/dev.json
wenn er für die Entwicklung bestimmt ist, oder in prod.json, wenn er für die Produktion bestimmt ist.
Stellen Sie danach sicher, dass Sie die Abhängigkeiten installieren, bevor Sie die App starten.
npm install
npm run db:deploy
npm run dev
aus (für die Entwicklung)npm run build
aus (für die Produktion)npm run start
aus (für die Produktion) Sobald Sie „dev“ oder „build“ ausgeführt haben, finden Sie die erstellte Erweiterung im Ordner ./client/extension/build
. Anschließend können Sie diesen Ordner als entpackte Erweiterung in Ihren Browser laden.
Es gibt mehrere Probleme mit aktuellen Browser-Agenten. Hier erklären wir die Probleme und wie wir sie gelöst haben.
Hierfür gibt es mehrere Techniken, die vom Senden einer verkürzten HTML-Form an GPT-3 über das Erstellen eines Begrenzungsrahmens mit IDs und das Senden an GPT-4-vision zur Durchführung von Aktionen bis hin zur direkten Aufforderung an GPT-4-vision reichen, die IDs zu erhalten X- und Y-Koordinaten des Elements. Allerdings war keine dieser Methoden zuverlässig; sie alle führten zu Halluzinationen.
Um dieses Problem anzugehen, haben wir eine neue Technik entwickelt, bei der wir das gesamte DOM in MeiliSearch indizieren und es GPT-4-vision ermöglichen, Befehle zu generieren, mit denen der innere Text des Elements angeklickt, kopiert oder andere Aktionen ausgeführt werden soll. Anschließend durchsuchen wir den Index mit dem generierten Text und rufen die Element-ID ab, um sie an den Browser zurückzusenden, um Maßnahmen zu ergreifen. Hier gibt es einige Einschränkungen, aber wir haben einige Techniken implementiert, um diese zu überwinden, z. B. den Umgang mit demselben Text in mehreren Elementen oder das Klicken auf ein Symbol (daran arbeiten wir noch).
Um zu verhindern, dass GPT von Aufgaben entgleist, verwenden wir eine Technik, die der Retrieval-Augmented Generation ähnelt, wir nennen sie jedoch sozusagen Actions Augmented Generation. Wenn ein Benutzer einen Workflow erstellt, zeichnen wir im Wesentlichen nicht den Bildschirm, das Mikrofon oder die Kamera auf, sondern die Änderungen des DOM-Elements für jede Aktion (Klicken, Tippen usw.), die der Benutzer ausführt. Anschließend verwenden wir den Workflow-Titel, das Ziel und die aufgezeichneten Aktionen, um eine Reihe von Aufgaben zu generieren. Immer wenn wir eine Aufgabe ausführen, betten wir alle Aktionen, die der Benutzer in dieser bestimmten Domäne durchgeführt hat, in die Eingabeaufforderung ein. Auf diese Weise bleibt GPT bei der Aufgabe auf dem Laufenden, auch wenn der Benutzer keinen sehr kurzen Titel und kein Ziel angegeben hat; Ihre Aktionen werden GPT dabei unterstützen, die Aufgabe abzuschließen.