×

更智能的Alexa:用于通过GPT3控制LED

消耗积分:0 | 格式:zip | 大小:0.00 MB | 2023-06-12

吴湛

分享资料个

描述

目录:

一、简介

2. 使用的硬件

3. 使用的软件

4. 编程语言

5. 工作流程

6.步骤

1)创建亚马逊开发者账号

2) 使用所需的调用名称创建 Alexa 技能并制作必要的意图块。

3)准备好树莓派。

4) 在树莓派中设置 ngrok 服务器

5) 设置用于处理 alexa 技能的烧瓶服务器。

6) 电路连接

7) 使用“HTTPS”而不是 AWS Lambda ARN 设置 alexa 端点

8) 将创建的技能与 AMAZON-ECHO-DOT 链接

7. 示例语句

8.输出

9.结论

一、简介:

想象一个您无需费力就能控制家中氛围的世界。在尖端技术的帮助下,这个梦想现在变成了现实。介绍“使用 ChatGPT 控制 LED 灯的更智能的 Alexa”,这是一个彻底改变我们与智能家居交互方式的项目。该项目结合了亚马逊 Alexa 的强大功能和最先进的语言模型 ChatGPT,为控制 LED 灯创造了无缝和直观的体验。通过使用自然语言处理,该项目允许用户简单地向 Alexa 说出他们的命令,然后 Alexa 与 ChatGPT 通信以准确解释和执行所需的操作。

为实施此项目,Raspberry Pi 4 用作服务器以与 Alexa Skill Set 通信。Raspberry Pi 4 是一台功能强大的微型计算机,能够同时运行多个程序,是处理 Alexa 和 ChatGPT 之间复杂通信的理想选择。此外,该项目还使用了 Wiznet-EVB-PICO-5100s 板,它连接到 LED 灯和 8*8 点阵。该板充当 Raspberry Pi 和 LED 灯之间的桥梁,可以轻松控制和操纵灯光的颜色和强度。使用 Wiznet-EVB-PICO-5100s 板,LED 灯可以与音乐同步,设置为根据一天中的时间改变颜色,甚至可以编程为在点阵上显示滚动消息。

2. 使用的硬件:

树莓派 4 B 型

W5100S-EVB-PICO

跳线

引领

亚马逊回声点

LED点阵

3. 使用的软件和服务:

亚马逊 ALEXA 技能套件

烧瓶问

MQTT 服务

NGROK

AURDINO IDE

4. 编程语言

C++

PYTHON

5. 工作流程

“更智能的 Alexa with ChatGPT,用于打开和关闭 LED 并以 8*8 点阵显示”项目的工作流程是先进技术和尖端解决方案的令人印象深刻的结合。当用户使用调用名称“chat”操作 Alexa 时,项目开始。命令“Alexa ask chat”/“Alexa open chat”将触发使用 Alexa Skill Set 设计的后续意图块。

有一个专门的 Flask 服务器用于处理来自 Alexa 的请求,来自 Alexa 的端点使用 ngrok 服务隧道连接到运行 Raspberry Pi 4 的服务器。与“打开”或“关闭”命令相似或情感上接近的消息或短语将被发送到特定的意图块,该块将有一个 ChatGPT API 块,用于将短语转换为开/关。来自用户的消息将根据声明的极性和情绪映射为打开或关闭。从 ChatGPT 获得的响应将以 JSON 文件的形式进行解析,并获得文本值。结果文本将通过专用订阅发送到 MQTT 代理。来自 ChatGPT 的消息将发布在服务器上。

在这里,将使用端口为:1883 和 HOST:'54.87.92.106' 的在线代理。端点连接将是一个带有以太网和 LED 以及点阵的 Wiznet 板。该板将订阅与从 Raspberry Pi 中的 Flask 服务器发布的消息相同的主题。根据消息,LED 将打开和关闭,文本将显示在来自 MQTT 服务器的点阵上。Alexa 将根据终端设备(即 Wiznet 板)中执行的操作通过打开或关闭进行响应。整个工作流程流畅无缝,让用户只需用语音即可控制智能家居设备。Alexa、ChatGPT、Flask、Raspberry Pi、MQTT 和 Wiznet 板的集成创建了一个智能且响应迅速的系统,使我们的生活更轻松、更舒适。

流程图

pYYBAGSBRROAMoh0AACoF3LmPns77.jpeg

6.步骤

创建一个 Amzazon 开发者帐户。

使用所需的调用名称创建 Alexa 技能并制作必要的意图块。

准备好树莓派。

在树莓派中设置 ngrok 服务器

设置 flask 服务器来处理 alexa 技能。

电路连接

使用“HTTPS”而不是 AWS Lambda ARN 设置 alexa 端点

将创建的技能与 AMAZON-ECHO-DOT 相关联

1. 亚马逊开发者控制台:

点击此链接获取步骤 ->亚马逊开发者账户

2. 创建 ALEXA 技能:

Amazon Skills 是语音激活功能,允许 Amazon Alexa 执行各种任务,从播放音乐到控制智能家居设备。这些技能可以由任何人创建,从个人开发者到大公司,并且可以发布在 Amazon Alexa Skills Store 上供数百万用户访问。要创建自定义技能,可以使用 Alexa Skills Kit,这是亚马逊提供的一组工具和资源,其中包括用于设计和构建自定义技能的基于 Web 的界面。该过程涉及定义技能的调用名称、意图和示例话语,以及使用 AWS Lambda 或自定义 Web 服务对技能的后端逻辑进行编码。在我们的案例中,我们将在 ngrok 的帮助下使用自定义 Web 服务。为了执行上述步骤,我添加了一个包含上述所有属性的 json 文件。给定的调用名称是“聊天”,可以更改为您选择的任何名称。

复制粘贴github 中给出的AMAZON_SKILLS.JSON文件并将其粘贴到给定的 JSON 编辑器部分

poYBAGSBRPiAbJ6tAABYRyaMuD0263.png

在这个 JSON 文件中,意图名称 chatGPT 负责通过 AMAZON-ECHO-DOT 发送用户给出的短语。它被赋予一个名为 {question} 的槽值,其类型为“AMAZON.SearchQuery”。因此,无论用户通过此意图发送什么短语,例如“Alexa 询问聊天,我想看看”,{question} 都会将值作为调用名称(“聊天”)之后的短语并将其发送到烧瓶服务器. 在进一步的步骤中,chatGPT 使用此问题值将短语映射到所需的目标。

3. 设置树莓派:

按照链接首次设置树莓派 4。如果您已经安装了 raspberry pi 4,请跳过此步骤。

4. 设置 ngrok 服务器:

在树莓派中打开终端并输入以下命令。要更新 Raspberry pi,请使用以下命令:

sudo apt-get 更新

sudo apt-get 升级

从此链接下载“linux arm”的 ngrok 。使用以下命令解压缩下载的 ngrok 文件。

解压路径/ngrok.zip

在端口 5000 中启动一个 HTTP 隧道,因为稍后 flask 服务器将使用相同的端口

./ngrok http 5000

将打开一个新屏幕,其中包含用于屏蔽https://localhost:5000 的网址。复制该网址,因为它将被 Alexa 用作端点。

5.设置烧瓶服务器:

使用以下命令安装 Flask-Ask

sudo pip install Flask-Ask

确保密码系统安装在 1.9 版本以下,使用以下命令检查当前安装的密码系统版本:

sudo pip 显示密码学

安装所需的加密版本。

pip 安装密码学==1.9

pip 安装 pyopenssl ndg-httpsclient pyasn1

Flask 安装在 Raspberry pi 中。现在我们必须运行 flask 服务器,它将通过给定的端点接收来自 Alexa 技能的请求。ngrok 与 flask 服务器在同一系统上工作,这将有助于本地主机公开可见和可访问。要运行 flask 服务器,请打开链接中的代码。

python 代码有一段以 @ask.intent('chatgpt', mapping={'user_question':'question'}) 开头的代码块,这是处理 chatGPT 转换和 MQTT 消息处理的代码块短语达到。问题的值映射到函数中的变量 user_question。

聊天GPT:

此功能块的核心和核心部分是将来自用户的输入短语转换为特定目标的代码,即打开灯或关闭灯。代码如下:

openai.api_key = "sk-t5Zj7TH************************ZqyW28aWB2lblsS53N"

聊天=“我想看看”

响应 = openai.Completion.create(model="text-davinci-003",

prompt="将 \"" + chat + "\" 转换为以下命令中的任何一个:\n- 关灯 \n- 开灯\n",

温度=0, max_tokens=100,

top_p=1,

frequency_penalty=0.2,

presence_penalty=0 )

必须从 chatGPT API 获取一个 openai.api_key,链接在这里。如果来自用户的短语像 Alexa ask device, I want to seeI want to see 部分,将被映射到 user_question by slot value question 并将分配到 chat 变量中。这个值将通过上面的代码,结果将是打开灯,因为文本的情绪更积极。

6. 电路连接

最后要设置的硬件是 W5100S-EVB-PICO 板、LED 和 8*8 点阵。下面给出了相同的电路连接。

poYBAGSBRRmAbqS0AAMh_e53FV428.jpeg

将点阵的VCC连接到引脚VBUS

将点阵的GND连接到引脚GND

将点阵的 DIN 连接到引脚 GP11

将点阵的CS连接到引脚GP13

将点阵的CLK连接到引脚GP10

将 LED 的正极连接到 GP14

将 LED 的负端连接到 GND

如图所示进行连接并将代码复制粘贴到 Aurdino ide 中。

7. 设置 ALEXA 端点

将 Alexa 的端点设为从 ngrok 获取的网址。对于 SSL 证书类型,选择“我的开发端点是具有来自证书颁发机构的通配符证书的域的子域”。保存端点。

pYYBAGSBRPqACPshAABCa8-wF1o516.png

8. 测试技能并连接到 ECHO DOT:

前往技能控制台的“测试”部分并开始测试您的技能。尝试说出像 Alexa ask chat to I wanna see 这样的命令。这应该会打开连接到 Raspberry Pi 的 LED 灯。要将 Echo-Dot 附加到此项目,请参考链接中提到的步骤。

7. 示例话语:

我已经测试了下面给出的打开和关闭语句,并且运行良好。更多的短语是可能的:

开启:

• alexa 问聊天让有光

• alexa 问聊天为什么没有灯

• alexa 询问聊天打开灯

• alexa 询问聊天灯去哪儿了

• alexa 要求聊天来点燃我的房间

• alexa 问聊天我想看

• alexa 要求聊天我看不到

• alexa 请求聊天以打开电源

• alexa 请求聊天让我的眼睛舒服

关闭:

• alexa 询问聊天我想要黑暗

• alexa 询问聊天我不想要光

• alexa 询问聊天关闭

• alexa 要求聊天关闭电源

• alexa 询问我想睡觉

• alexa 询问聊天让黑暗

8.输出

整个项目的最终输出发布在 youtube 上。下面给出了相同的链接:

使用 CHATGPT 更智能的 ALEXA

9.结论

总之,“Smarter Alexa with ChatGPT”项目展示了集成尖端技术以创建智能、高效的家庭自动化系统的力量。通过结合 Alexa 技能、ChatGPT3 API、Raspberry Pi 4、Wiznet 板、MQTT 协议和 ngrok 服务,我们能够创建一个无缝的智能系统来控制 LED 灯并在 8x8 点阵上显示状态。有了这个系统,用户可以通过简单的语音命令轻松操作他们的家庭设备,并接收关于他们设备状态的实时反馈。该项目具有扩展到其他家庭自动化应用的巨大潜力,并展示了人工智能、物联网和语音控制的集成如何创造更智能、更便捷的生活环境。

 

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !