Coba tanpa autentikasi Firebase (solusi sementara): #2 (komentar)
Tumpukan kami terdiri dari Next.js, Rust, Postgres, MeiliSearch, dan Firebase Auth untuk autentikasi. Silakan daftar akun Firebase dan buat proyek.
Di Firebase, buka Setelan proyek -> Akun layanan, buat kunci pribadi, dan simpan di dalam firebaseAdmin/cert/dev.json
jika untuk pengembangan atau prod.json jika untuk produksi.
Setelah itu, pastikan Anda menginstal dependensi sebelum memulai aplikasi.
npm install
npm run db:deploy
npm run dev
(untuk pengembangan)npm run build
(untuk produksi)npm run start
(untuk produksi) Setelah Anda menjalankan 'dev' atau 'build', Anda akan menemukan ekstensi yang dibangun di dalam folder ./client/extension/build
. Anda kemudian dapat memuat folder ini sebagai ekstensi yang belum dibongkar di browser Anda.
Ada beberapa masalah dengan agen browser saat ini. Di sini, kami menjelaskan masalah dan cara kami menyelesaikannya.
Ada beberapa teknik untuk melakukannya, mulai dari mengirimkan bentuk HTML yang dipersingkat ke GPT-3, membuat kotak pembatas dengan ID dan mengirimkannya ke GPT-4-vision untuk mengambil tindakan, atau langsung meminta GPT-4-vision untuk mendapatkan Koordinat X dan Y elemen. Namun, tidak satu pun dari metode ini yang dapat diandalkan; semuanya mengarah pada halusinasi.
Untuk mengatasi hal ini, kami mengembangkan teknik baru yang memungkinkan kami mengindeks seluruh DOM di MeiliSearch, memungkinkan GPT-4-vision menghasilkan perintah teks dalam elemen mana yang harus diklik, disalin, atau melakukan tindakan lain. Kami kemudian mencari indeks dengan teks yang dihasilkan dan mengambil ID elemen untuk dikirim kembali ke browser untuk mengambil tindakan. Ada beberapa keterbatasan di sini, namun kami telah menerapkan beberapa teknik untuk mengatasinya, seperti menangani teks yang sama di beberapa elemen atau mengklik ikon (kami masih mengerjakannya).
Untuk mencegah GPT keluar dari tugas, kami menggunakan teknik yang mirip dengan pengambilan-augmented generation, namun kami menyebutnya Actions Augmented Generation. Pada dasarnya, saat pengguna membuat alur kerja, kami tidak merekam layar, mikrofon, atau kamera, namun kami mencatat perubahan elemen DOM untuk setiap tindakan (mengklik, mengetik, dll.) yang dilakukan pengguna. Kami kemudian menggunakan judul alur kerja, tujuan, dan tindakan yang direkam untuk menghasilkan serangkaian tugas. Setiap kali kami menjalankan tugas, kami menyematkan semua tindakan yang dilakukan pengguna pada domain tertentu dengan perintah. Dengan cara ini, GPT tetap menjalankan tugasnya, meskipun pengguna tidak memberikan judul dan tujuan yang sangat singkat; tindakan mereka akan memandu GPT untuk menyelesaikan tugas.