尝试不使用 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
文件夹中找到构建的扩展。然后,您可以将此文件夹作为解压的扩展程序加载到浏览器中。
当前的浏览器代理存在几个问题。在这里,我们解释这些问题以及我们如何解决这些问题。
有多种技术可以实现此目的,包括将 HTML 的缩写形式发送到 GPT-3、创建带有 ID 的边界框并将其发送到 GPT-4-vision 来采取操作,或者直接要求 GPT-4-vision 获取元素的 X 和 Y 坐标。然而,这些方法都不可靠。它们都导致了幻觉。
为了解决这个问题,我们开发了一种新技术,在 MeiliSearch 中对整个 DOM 进行索引,允许 GPT-4-vision 生成命令来单击、复制或执行其他操作的元素的内部文本。然后,我们使用生成的文本搜索索引并检索元素 ID 以发送回浏览器以采取操作。这里有一些限制,但我们已经实现了一些技术来克服它们,例如处理多个元素中的相同文本或单击图标(我们仍在研究这一点)。
为了防止 GPT 偏离任务,我们使用了一种类似于检索增强生成的技术,但我们称之为操作增强生成。本质上,当用户创建工作流程时,我们不会记录屏幕、麦克风或摄像头,但会记录用户执行的每个操作(单击、键入等)的 DOM 元素更改。然后,我们使用工作流标题、目标和记录的操作来生成一组任务。每当我们执行任务时,我们都会将用户在该特定域上执行的所有操作与提示一起嵌入。这样,即使用户没有提供非常简短的标题和目标,GPT 仍能顺利完成任务;他们的行动将引导GPT完成任务。