AI - 会看和说的AI助手(难度:2)
-
简介
像 ChatGPT 这样的大型语言模型通常是“多模态”的,这意味着它们不仅可以用文字与我们聊天,还可以理解图像。这非常有用,因为在许多情况下,用图片描述我们的需求比用文字更容易。
在本教程中,你将构建一个能看能说的 AI 助手。要使用它,用户只需使用相机拍照,然后就可以向 AI 助手询问有关该图片的任何问题。
步骤 1 - 创建一个新项目
在 CreatiCode.com 上,登录并创建一个新项目。删除小狗角色,并将项目重命名为“AI 助手”。
步骤 2 - 搜索或生成一个背景
当项目开始时,我们将向用户展示一个漂亮的背景,以表明这是一个 AI 助手。
切换到舞台并尝试添加一个新的背景。例如,如果你搜索“一个乐于助人的 AI 助手”,你可以找到许多有趣的背景可供选择:
你还可以根据自己的想法生成一个新的背景。例如,假设我们希望这个助手被用作导游,那么我们可以使用一个详细的描述来生成背景,例如:一个机器人导游面向观众,双臂张开,站在一个历史遗迹前,卡通风格
我们将得到一个像这样的新背景:
步骤 3 - 当绿旗被点击时显示 2 个按钮
现在切换到空的角色并添加代码以显示 2 个按钮,这将允许用户选择一个摄像头。前置摄像头通常在触摸板或 Chromebook 上可用,而后置摄像头通常在 iPad 或智能手机上可用。
你可以使用以下代码:
步骤 4 - 显示摄像头预览
当任一按钮被点击时,我们需要显示来自摄像头的视图,以便用户可以瞄准物体或地点。唯一的区别是显示“前置”还是“后置”摄像头。由于只会点击其中一个按钮,因此在两种情况下我们都可以将摄像头小组件称为“camera1”。
步骤 5 - 准备拍照
除了显示摄像头预览之外,我们还需要做一些其他工作来准备拍照。由于无论使用哪个摄像头,工作都是相同的,因此我们可以在一个新的自定义积木“准备拍照”中定义常见的工作:
在该新积木的定义中,我们将添加更多积木来删除现有的按钮(button1 和 button2),并添加第三个按钮来拍照:
它将看起来像这样(假设我们要拍一张 U 盘的照片):
步骤 6 - 拍照并显示它
当用户点击“拍照”按钮时,我们将把当前的摄像头视图保存为名为“c”的造型图像并将其显示给用户:
这样,摄像头预览和 button3 都将被删除,我们将只显示新捕获的造型图像。
步骤 7 - 为用户提问做准备
接下来,在下面添加更多的新积木。它们将添加一个新按钮,该按钮将启用语音识别,以便用户可以提问。这比要求用户输入问题要方便得多,尤其是在移动设备上。我们还将添加一个文本框来显示我们识别的问题。文本框的背景透明度为 30%,以便用户仍然可以看到他们拍摄的照片。
例如,它将看起来像这样:
步骤 8 - 识别用户问题
当用户点击“提问”时,我们将启用语音识别并允许用户说话最多 8 秒钟。这对于大多数问题来说应该足够长了,但你可以将时间长度更改为更短或更长。然后,我们将在文本框中将识别的文本显示为一个问题:
你还可以使用“连续语音识别”,并在用户说完一整句话时停止识别。为了简单起见,我们将只使用基于时间的截止时间。要测试它,请点击“提问”按钮,然后说出你的问题,例如“这是什么?”,然后它将被识别并显示在文本框中:
步骤 9 - 向 ChatGPT 询问有关此图片的问题
现在我们终于准备好让 ChatGPT 根据图片回答用户的问题了。它实际上需要 2 个协同工作的积木:
-
将造型图像附加到聊天:此步骤不会将图像发送到 ChatGPT。它只将图像存储为聊天的一部分。你可以将多个图像附加到一个聊天会话,但对于这个项目,我们只需要附加一个图像。
-
向 ChatGPT 发送聊天消息:此积木会将提示与上面附加的图像一起发送出去。我们将使用一个简单的提示:“口头回答,50 字以内:\n”。关键字“口头”确保 ChatGPT 的回答是对话式的,而不是太正式。我们还将它限制在 50 字以内,以避免冗长的回答。
在这 2 个积木运行后,ChatGPT 的回答将存储在变量“结果”中。
步骤 10 - 显示并说出答案
我们不仅会在文本框中显示答案,还会将其转换为语音。这样,用户大部分时间都可以听答案,如果他们错过了一些细节,他们只需要阅读文本。
答案将看起来像这样:
额外挑战
这个项目演示了如何将许多有用的 AI 工具组合到一个简单的应用程序中,但它被有意地保持简单。以下是一些你可以探索以进一步增强此工具的想法:
-
处理后续问题:允许用户提出更多问题。你需要确保每次都不会再次添加造型图像。此外,请确保 ChatGPT 处于“继续”模式,以便它具有之前问题的上下文。
-
避免固定的等待时间:你可以自动检测用户是否已完成提问,而不是总是等待 8 秒钟。或者,你也可以使用 2 个按钮:点击一个按钮开始语音识别,点击另一个按钮停止它。
-
将其翻译成另一种语言:如果你的母语不是英语,你可以将该工具更改为你的母语。
-
自定义提示:当前的提示非常简短且通用。假设你想将此工具更改为“家庭作业助手”,那么你可能需要在提示中添加更多说明。例如,你可能想告诉 ChatGPT 它应该只提供提示,而绝不直接透露答案。
-
-