Firebase 認証なしで試してみる (一時的な解決策): #2 (コメント)
私たちのスタックは、Next.js、Rust、Postgres、MeiliSearch、認証用の Firebase Auth で構成されています。 Firebase アカウントにサインアップしてプロジェクトを作成してください。
Firebase で、[プロジェクト設定] -> [サービス アカウント] に移動し、秘密キーを生成し、開発用の場合はfirebaseAdmin/cert/dev.json
内に保存し、運用用の場合は prod.json 内に保存します。
その後、アプリを起動する前に依存関係を必ずインストールしてください。
npm install
実行するnpm run db:deploy
npm run dev
実行します (開発用)npm run build
実行します (運用環境用)npm run start
実行します (運用環境用) 「dev」または「build」を実行すると、 ./client/extension/build
build フォルダー内に拡張機能がビルドされていることがわかります。その後、このフォルダーを解凍された拡張機能としてブラウザーにロードできます。
現在のブラウザ エージェントにはいくつかの問題があります。ここでは、その問題点とその解決方法について説明します。
これには、短縮形式の HTML を GPT-3 に送信する、ID を含むバウンディング ボックスを作成して GPT-4-vision に送信してアクションを実行する、または GPT-4-vision に直接要求して、要素の X 座標と Y 座標。しかし、これらの方法はどれも信頼できるものではありませんでした。それらはすべて幻覚を引き起こしました。
これに対処するために、MeiliSearch で DOM 全体にインデックスを付ける新しい手法を開発しました。これにより、要素の内部テキストをクリック、コピー、またはその他のアクションを実行するためのコマンドを GPT-4-vision が生成できるようになります。次に、生成されたテキストでインデックスを検索し、アクションを実行するためにブラウザに送り返す要素 ID を取得します。ここにはいくつかの制限がありますが、複数の要素内の同じテキストを処理したり、アイコンをクリックしたりするなど、それらを克服するいくつかのテクニックを実装しました (これについてはまだ作業中です)。
GPT がタスクから脱線するのを防ぐために、検索拡張生成に似た手法を使用しますが、これをアクション拡張生成と呼んでいます。基本的に、ユーザーがワークフローを作成するとき、画面、マイク、カメラは記録されませんが、ユーザーが行うすべてのアクション (クリック、入力など) に対する DOM 要素の変更は記録されます。次に、ワークフローのタイトル、目的、記録されたアクションを使用して、一連のタスクを生成します。タスクを実行するたびに、ユーザーがその特定のドメインに対して実行したすべてのアクションがプロンプトに埋め込まれます。このようにして、ユーザーが非常に短いタイトルや目的を提供していなくても、GPT はタスクを順調に進めることができます。彼らのアクションは、GPT がタスクを完了するように導きます。