Browser Copilot 是一个 浏览器扩展,允许您使用现有或定制的 AI 助手来帮助您完成日常 Web 应用程序任务。
动机
目标是提供一个多功能的用户界面和简单的框架,以实现和使用越来越多的副驾驶(AI 助手)。这些副驾驶可以利用浏览器扩展功能,帮助完成各种任务。
以下是这些副驾驶可以做的一些事情的例子:
- 🤖 自动激活与特定 Web 应用程序相关的副驾驶。例如,当一个邮件 Web 应用程序在浏览器标签页中加载时,一个邮件副驾驶可以被激活。
- 🔍 从当前的 Web 应用程序中提取信息。例如,副驾驶可以从邮件 Web 应用程序中提取当前邮件内容,并提供邮件摘要,或者用户可以询问关于邮件内容的问题。
- ⚙️ 与 Web 应用程序互动。副驾驶可以根据用户请求生成邮件正文,也可以用合适的测试数据填写 Web 应用程序表单字段。
- 🔌 使用任何服务 API 提取附加信息或自动化 Web 应用程序过程。例如,副驾驶可以从 Web 应用程序的后端检索有效示例来填充前端表单。
- 💡 通过将浏览器扩展与 AI 和 LLM 的功能相结合,可以探索许多其他想法和功能。
使用方法
- 在您的浏览器中安装此扩展,通过从 发布页面 下载最新版本。要从 zip 文件安装扩展,您需要进入浏览器的“管理扩展”页面,启用开发者模式,并拖放扩展 zip 文件。
- 通过点击图标打开扩展,并通过提供基础 URL 添加一个新的副驾驶。基础 URL 应对应
manifest.json
和logo.png
的位置,例如:如果您的代理在本地运行,则为http://localhost:8000
。 - 通过点击一个已配置的副驾驶开始新聊天,或者如果副驾驶具有自动激活功能,只需使用您的浏览器,当副驾驶激活时,聊天窗口将自动弹出。
- 直接从聊天中保存您喜欢的提示。为便于以后快速访问,只需在聊天输入框中键入 '/'。
您可以随时关闭副驾驶,稍后通过扩展图标或右键点击页面并选择“切换 Browser Copilot”恢复对话。
如果不知道任何副驾驶 URL,此项目包括一个简单的副驾驶实现在 agent 文件夹中。您可以通过复制 agent/sample.env 到 agent/.env
,更改其中的环境变量,并运行 docker-compose up
(需要 Docker)。启动后,您可以通过添加 URL 为 http://localhost:8000
的副驾驶来配置您的扩展以使用它。
当您激活副驾驶(点击副驾驶列表)时,它会请求一些凭据。使用 test
用户和 test
密码登录。
未来我们计划添加由社区贡献的副驾驶目录。因此,如果您创建了新的副驾驶,请告知我们,以便我们将它们包含在初始目录中。
开发
Agent 开发
要开发新的代理,您可以参考 agent-mock、agent-simple 或 agent-extended 文件夹。后者是最完整的一个,并有关于端点和 manifest.json
的详细文档。
安装所有必需的依赖(在安装 devbox 和 direnv 后),运行以下命令:
devbox run install
接下来,在 agent-extended/.env
中设置适当的环境变量。
为加快开发速度,您可以注释掉 Keycloak 部分,因此每次想尝试扩展中的副驾驶时都不需要进行身份验证。 如果您不注释掉 Keycloak 部分,则需要运行
devbox run keycloak
来启动用于身份验证的 Keycloak,并使用test
test
凭据登录(当浏览器扩展请求时)。
要在开发模式下运行代理,使其在检测到代理源文件中的任何更改时自动热重载,执行以下命令:
devbox run agent
如果您想调试代理,可以使用您喜欢的 IDE 启动代理,指向 devbox 创建的相关虚拟环境,并使用 IDE 的调试功能运行 主脚本。
有关代理的更多详细信息,请参阅 其 readme。
浏览器扩展开发
如果您计划对浏览器扩展做出更改,请参阅 browser-extension 文件夹。
要启动具有热重载功能的 Chrome 浏览器,请使用以下命令:
devbox run browser
要修改默认浏览器设置,请参阅 browser-extension/vite.config.ts。
要构建扩展的最终发行版,请执行以下命令:
devbox run build
贡献
我们欢迎各种形式的贡献!
- ⭐ 给这个项目加星,使其对整个社区更具可见性。它让我们知道您对这个项目感兴趣,激励我们投入更多努力。
- 📢 推广这个项目。如果你有任何关于它的发表(推文、StackOverflow 提及、LinkedIn 帖子、Medium 文章等),请告诉我们。我们计划在未来添加对这些发表的引用。
- 🙋 通过创建问题或在仓库中开启讨论,提问和请求改进。
- 🧑💻 如果您喜欢编码,可以构建新的代理,帮助我们实现浏览器扩展功能或一般改进。