在Meta智能眼镜上使ChatGPT运行

这是一个有趣的小周末项目,可以让 ChatGPT 在 Meta 智能眼镜上 (有些) 工作。我可以想象他们很快就会通过 Meta AI 整合这个功能,但在那之前,我们可以玩点小技巧来尝试一下。特别感谢 dcrebbin 提供的实现,为我提供了灵感。

Guess who generated this image?

它能做什么:

  • 向ChatGPT发送文本查询并获得回复
  • 发送一张图片,然后与图片相关的问题一起发送给ChatGPT,并等待回复。

你需要的东西:

  • Meta眼镜配备了Meta AI功能。
  • OpenAI API 密钥
  • 另一个备用的FB账号(易于设置),一个FB应用和一个FB页面
  • 访问托管服务器(仅需一步)
  • 一款能安装网页扩展并保持的浏览器

主要逻辑

Meta眼镜可以通过语音向Messenger和Whatsapp联系人发送消息。

  1. 我们将创建一个备用的FB个人资料,该个人资料将接收我们主要的FB个人资料的查询(目前必须是个人资料,而不是页面,因为在Meta眼镜中查找联系人时会过滤掉页面)。
  2. 我们将制作一个浏览器扩展程序,用于监控备用FB个人资料的浏览器窗口,以便检测新消息,并通过GPT进行处理。
  3. 我们将创建一个新的FB页面,并从我们主要的FB个人资料开始进行对话。
  4. 我们将通过GraphAPI将回复发送回我们的FB页面聊天,使用我们的主要FB账号,并且Meta Glasses会将通知读给我们听。

这并不是理想的选择,但它只是一个概念证明,我相信其他人可以对此进行改善。

1. 在眼镜上启用 Meta AI

在安装眼镜时,如果您位于美国以外,这将被禁用。您需要取消配对眼镜,移除Meta View 应用,并在您的手机上安装一个连接到美国的 VPN。然后按照正常步骤重新设置眼镜。

注意:在设置过程中,在下载固件更新后,应用程序可能会在一个无限连接循环“剩余4分钟”上挂起。这是因为VPN干扰了固件传输到眼镜的过程,现在可以安全地禁用它,因为它只在固件下载期间需要。

在安装完成后,通过Meta View应用连接Messenger,并在设置中启用将Messenger消息朗读出来的功能。

2. 获取一个OpenAI密钥

这应该很直接了。

3. 设置一个额外的 FB 帐户

FB允许您创建多个个人资料,并从主要帐户中管理它们。只需按照此处的官方步骤进行操作:https://www.facebook.com/help/5637701596308695。

将概要文件命名为可以通过语音命令轻松查询和区分的名称。然后从您的主要Facebook概要文件开始与它进行聊天,这样它就会出现在您的聊天列表中。

4. 设置一个FB应用程序,创建一个FB页面,并获取页面范围内的用户ID。

为了能够将响应发送回用户,我们需要一些FB应用和页面逻辑。

  • 创建一个新的FB应用,在设置过程中选择“其它”->“商业”作为应用类型。
  • 将Messenger产品添加到应用程序中。
  • 从Messenger API设置页面开始,在第一步创建一个webhook到你的服务器,以便能够获得一个特殊的页面作用域用户ID。这只在设置期间需要,并且在完成设置后不再需要服务器。做这个的最佳方法是在你方便的服务器上编写一个PHP脚本(或者任何其他编程语言)。添加以下代码,将其托管在某个地方,在回调URL字段中链接到它,验证令牌并不重要。
<?php
echo ($_GET['hub_challenge']);
$json = file_get_contents('php://input');
error_log($json);
  • 一旦您验证了回调URL,就将Webhook订阅到消息字段。对我来说,Facebook的图形界面无法正常进行订阅,因此我不得不使用Graph API。
  • 从相同的屏幕上,在步骤2中创建一个新的FB页面,用于将响应发送给用户。将其命名为可理解的名称,例如回答。注意:这与接收请求的其他FB资料不同。
  • 最后,通过您在Meta眼镜上的主要FB个人资料(而不是附加个人资料),与新的FB页面开始对话。一旦您发送了一条消息,您之前设置的服务器将收到该消息,并且您将能够找到所需的页面范围用户ID。在错误日志中查找发件人对象中id值(或者无论您如何决定输出Webhook),并做好记录。
  • 注意:获取页面范围用户ID可能有更好的方法,但无论我如何尝试,这是唯一一种能在后续步骤中正常工作的方式。

    5. 获取一个不会过期的页面访问令牌

    为了保持能够向用户发送回应,我们需要一个永不过期的页面令牌。只需按照本教程进行操作即可获得。

    6. 下载并安装网页扩展

    为了知道主要的FB个人档发送请求给备用的FB个人档时,我们需要监控那个聊天记录。不幸的是,FB没有任何公共API能够做到这一点,而我找到的唯一不违反内容政策的方法是使用浏览器扩展程序。

    您需要在浏览器窗口中保持打开一个带有扩展程序的聊天窗口。它将寻找新的传入消息,解析消息,将其发送给GPT,获取回复,然后发送到Facebook页面聊天窗口。它基本上是整个操作的核心部分。

    网页扩展代码:https://github.com/jovanovski/meta-glasses-gpt

    下载文件,并在background.js中进行编辑,添加:

    • OpenAI密钥 - 步骤2
    • FB页面ID — 从第4步开始
    • FB页面访问令牌 - 来自第4步
    • FB页面范围用户ID - 来自步骤4

    完成后,在浏览器中加载扩展程序(最好是您不常用的一个或者另一个配置文件,因为您需要切换到其中的替代FB个人资料)。

    • 在Firefox中:打开about:debugging页面,点击This Firefox选项,点击Load Temporary Add-on按钮,然后选择扩展目录中的任何文件。
    • 在Chrome中:打开chrome://extensions/。在右上方打开开发者模式。点击“加载已解压的扩展程序”。找到并选择应用或扩展程序文件夹。

    然后在一个标签中加载Facebook,切换到您的备用个人资料,并打开您与主要FB个人资料开始的聊天(如果没有,请开始一个)。如果一切正常,几秒钟后您将收到一条警报,提示扩展观察器已启动。

    请保持该选项卡和浏览器保持打开状态。如果您关闭它,连接将无法继续工作。重新打开并启用扩展以重新启动该过程。

    7. 最后,试一试吧!

    使用文本提示

    • 嗨Meta,在Messenger上发消息给说,有没有好的健康早餐主意?
    • 确认,并等待回复。

    使用一张图片和提示语,保持HTML结构,把以下英文文本翻译为简体中文: 图片说明:这是一只可爱的猫咪,它正在草地上玩耍。 提示语:猜猜这只猫咪叫什么名字?

    • “嗨,Meta,请在Messenger上向发送一张图片。”
    • 图片拍摄并发送,个人资料确认收到图像并等待下一次图像提示。
    • “嘿Meta,在Messenger上给发送一条消息,问这张图片上是什么?”
    • 等待回应

    这个特别复杂吗?是的。

    元信息最终会添加所有这些功能吗?是的。

    做这件事很有趣吗?是的。

    玩得开心,帮我改进这个方法,使其更好、更容易!

    2024-01-22 04:27:45 AI中文站翻译自原文