cchenjie 发表于 2023-2-2 19:52:47

“我把 ChatGPT 和苹果的 Siri 组了个队,发现无敌了!” ...

<div id="content"><p>【CSDN 编者按】ChatGPT 的问世,带来了前所未有的智能应用新方式。如果 "AI+AI",会碰撞出什么样的火花?近日,国外一名 Web 高级工程师 Mate Marschalko 将 ChatGPT 和 Siri 人工智能语言助手进行了结合,万万没想到,一套更为完善的智能家居系统由此诞生了。</p><p>原文链接:https://matemarschalko.medium.com/chatgpt-in-an-ios-shortcut-worlds-smartest-homekit-voice-assistant-9a33b780007a</p><p>声明:本文为 CSDN 翻译,未经允许,禁止转载。</p><p>作者 | Mate Marschalko</p><p>译者 | 弯月 责编 | 屠敏</p><p>出品 | CSDN(ID:CSDNnews)</p><p>自从我尝试了 ChatGPT 和 GPT-3 以后,我觉得 Siri、Alexa、Google Home 等一切智能助手都远不够智能。</p><p>我有一个完整的 HomeKit 智能家居系统,其中包含几十盏灯、恒温器、地暖、通风装置、摄像头等家电的控制。所以,我想利用 GPT-3 解析人类发送的命令,然后由 Siri 代为执行,构建出这个世界上最伟大的智能家居系统。</p><p>在具体讨论细节之前,先来看看下面的演示。事先说明,智能家居系统给出的响应是可以完全定制的,并不限于演示中的内容。你可以通过语音按照自己想要的方式提出任何请求!</p><p>GPT-3,尤其是 ChatGPT 之类的语言模型经过了对话训练,因此它们非常擅长理解和响应人类的指令。</p><p>如果你曾尝试过与这些机器人聊天,就知道如何轻松地提出问题,并获得各种格式的回复。难点在于,在控制智能家居时,你需要交代清楚具体与哪个组件交互。怎么解决这个问题?</p><p>你可以要求 GPT-3 解释和分类你的请求,然后以结构化的数据格式响应请求。</p><p>下面是我给 ChatGPT 的提示,通过这些提示实现了成功交流。内容大致如下:</p><p>首先,发送到智能家居系统的请求,返回的 JSON 格式的响应可被应用程序代码解释,并执行动作。这些请求应被分类为四大组:</p><p>-" 查询 ":获取组件的状态(必须以 JSON 格式响应返回的属性:动作、地点、目标、值、备注、计划时间戳)。</p><p>" 回答 ":当请求不涉及智能家居时,根据系统掌握的知识给出最佳答案。(必须以 JSON 格式响应返回的属性:动作、回答)。</p><p>" 澄清 "。当动作不明确,需要用户重新组织措辞时,要求用户提出更具体的请求。这类请求会被划分到 " 问题 " 动作。(必须以 JSON 格式响应返回的属性:动作、问题)。</p><p>有关 JSON 响应的细节:</p><p>" 动作 " 属性应属于如下请求类别之一:" 命令 "、" 查询 "、" 回答 "、" 澄清 "。</p><p>" 地点 " 属性应包含房间名,且为小写。</p><p>" 目标 " 属性应为 " 照明 "、" 恒温器 "、" 毛巾架 " 或 " 地暖 ",且为小写。</p><p>对于查询," 属性 " 属性应为 " 温度 " 或 " 状态 ",且为小写。</p><p>对于命令," 命令 " 属性是附加备注,用于结束命令,让用户放心他们的命令已被处理。</p><p>对于命令," 计划时间戳 " 属性记录的是未来的时间戳,当用户希望稍后再发送命令时指定。</p><p>如果问题涉及个人,智能家居系统必须发挥情感大脑的作用,成为一个更加聪明的 AI,且永远不会暴露个人身份。此外,智能家居系统还应提供其他领域的帮助,比如看孩子、自由时间、心理健康等。该系统目前服务的房屋位于英国圣奥尔本斯。当前时间为:2023 年 1 月 16 日 11:56:31 GMT+0000。</p><p>智能家居系统的属性:</p><p>拥有厨房、客厅、办公室、浴室、卧室、阁楼、门厅、卫生间、花园、前院停车位。</p><p>能够控制每个房间照明的开关以及光照级别,并查询它们的状态。</p><p>能够控制每个房间的恒温器,并查询它们的状态。</p><p>打开浴室的毛巾架以及地热的开关,并查询它们的状态。</p><p>打开客厅的电视,调节音量。</p><p>阁楼的通风系统全天候工作,但加速开关可打开或关闭。</p><p>前院停车位的照明开关。</p><p>花园的照明开关。</p><p>响应为 JSON,不包含任何文本。</p><p>英文文本描述如下图所示:</p><p></p><div class="img_box" id="id_imagebox_0" onclick=""><div class="content_img_div perview_img_div"><div align="center"></div></div></div>图:训练智能家居系统的技巧<p></p><p>如上所示,我用英语解释了一切。我描述了请求的类型、响应的确切结构,并要求智能家居系统充当情感 AI,即使是涉及个人的问题也能提供建议。我还提供了一些关于时间、地点以及房屋内的设备和房间的详细信息。有了这些,我们就能收到结构完美的响应了。</p><p>以上就是 " 编程 " 的所有工作!</p><p>下面,我们通过视频中的几个示例来看看四种类别的请求,以及我们如何处理它们。</p><p><strong>命令动作</strong></p><p>当 GPT-3 检测到你希望控制某一部分智能家居时,它就会响应一个 " 命令 " 类型的动作。</p><p>我们的请求是:</p><p>Just noticed that I ’ m recording this video in the dark in the office.</p><p>Can you do something about that?</p><p>刚发现我在昏暗的办公室内录制这段视频。你能帮帮忙吗?</p><p>我们得到了如下响应:</p><p>{</p><p> "action": "command",</p><p> "location": "office",</p><p> "target": "light",</p><p> "value": "on",</p><p> "comment": "Turning the light on for you.",</p><p> "scheduleTimeStamp": ""</p><p>}</p><p>老实说,第一次看到这个响应的时候,我简直不敢相信自己的眼睛,系统的表现竟能如此出色!</p><p>这并不是一个直白的请求,比如 " 关掉办公室的灯 ",我们的措辞非常绕,而且很复杂。而它给出的回答完胜 Siri、Alexa 或 Google Home 等。</p><p>另外,请注意,智能家居系统发回来的 comment (备注)总有些不同,而且可按照个人要求进行个性化设置。</p><p>有了这些信息,我们就知道具体需要做什么,而接下来我们需要通过 Siri 处理这个动作。</p><p>你可能还注意到,响应中包含一个空的 scheduleTimeStamp (计划时间戳)。这意味着,该动作需要立即执行,如果是稍后再执行的命令,该字段内就会预填充未来的日期和时间:</p><p>I sent my son to bed to read for another 20 minutes. Can you switch of the lights in his room when it ’ s time to sleep?</p><p>我让儿子上床再读 20 分钟的书。你能在他睡觉的时候关掉他房间里的灯吗?</p><p>在这种情况下,GPT-3 知道需要关闭卧室的灯,而且还添加了正确的时间戳,即接到我们的请求后 20 分钟:</p><p>{</p><p> "action": "command",</p><p> "location": "bedroom",</p><p> "target": "light",</p><p> "value": "off",</p><p> "comment": "Switching the lights off in your son's bedroom.",</p><p> "scheduleTimeStamp": "Mon Jan 16 2023 12:16:31 GMT+0000"</p><p>}</p><p>还有一个有趣的例子,智能家居系统能够代替我决定,应该将卧室的温度设置到多少度:</p><p>I ’ m going to trust you with this one! Set the bedroom to a temperature you think would help me sleep better.</p><p>我相信你能做好这个任务!将卧室的温度设置为你认为可以帮助我更好地入眠的温度。</p><p>而它根据自己的知识,将卧室温度设置成了舒适的 19 度!</p><p><strong>查询操作</strong></p><p>当 GPT-3 检测到你希望读取智能家居的设备状态时,它就会按照 " 查询 " 的动作类别返回响应。</p><p>请求例子:</p><p>I just finished cooking a nice big meal in the kitchen, can you check what ’ s the temperature there?</p><p>我刚刚在厨房里做了一顿丰盛的大餐,你能看看现在那里的温度是多少吗?</p><p>我们得到的响应是:</p><p>{</p><p> "action" : "query",</p><p> "location" : "kitchen",</p><p> "target" : "thermostat",</p><p> "property" : "temperature"</p><p>}</p><p>完美!操作类型变成了查询,因此我们可以获取厨房恒温器的温度了。同样,稍后我们将通过 Siri 执行此操作。</p><p><strong>回答动作</strong></p><p>当 GPT-3 检测到你的请求与智能家居无关,只是一个一般性的问题时,它会以 " 回答 " 的动作响应请求。</p><p>举个例子:</p><p>We are going to head out for a short walk into the town center.</p><p>Can you recommend a few things to see?</p><p>我们打算去镇中心散步。你能推荐一些值得一看的地方吗?</p><p>因为我在请求中告诉 GPT-3 智能家居系统的位置是英国圣奥尔本斯,因此它知道如何响应。</p><p>{</p><p> "action": "answer",</p><p> "answer": "St Albans has a great selection of historical sites and attractions. The St Albans Cathedral is an impressive sight with its Norman architecture. The Verulamium Park is also a great place to visit with its Roman ruins and lovely gardens. For a more modern experience, you can visit the Museum of St Albans or the Alban Arena for a show."</p><p>}</p><p>简洁漂亮!同样,我们需要将这个响应发送给 Siri 大声读出来。</p><p><strong>澄清动作</strong></p><p>最后,如果 GPT-3 无法检测到上述动作中的任何一个,它就会要求你重复问题或重新组织语言。</p><p>在 iOS、macOS 或 iPadOS 上,打开快捷方式应用程序,并添加请求的详细信息。</p><p></p><div class="img_box" id="id_imagebox_1" onclick=""><div class="content_img_div perview_img_div"><div align="center"></div></div></div>此处有一个技巧,必须运行快捷方式,只需对 Siri 说出快捷方式的名称即可。所以,我们可以将其命名为 "Okay Smart Home"。<p></p><p>接下来,通过 "Ask for &lt; 文本 &gt;..." 操作,获得用户的响应。如果通过 Siri 启动快捷方式,则需要大声说出来;如果通过单击快捷方式运行应用程序,则需键入输入字段。</p><p>下面,我们将请求发送给 OpenAI。为此,你需要注册一个账号,并获取 API 令牌。登录后,你可以通过菜单 "View API keys" 查看 API 令牌。</p><p>如果使用这个 API,每个请求需要支付的费用约为 1.4 美分,也就是说 1 美元可以执行 70 多个请求。请记住,这个价格并不便宜,因为我们的请求很长,如果是较短的请求,费用也会按比例减少。</p><p></p><div class="img_box" id="id_imagebox_2" onclick=""><div class="content_img_div perview_img_div"><div align="center"></div></div></div>准备好 API 令牌后,我们来填写请求的详细信息:<p></p><p>model:text-davinci-003</p><p>prompt: &lt;Text&gt; Request: &lt;Provided Input&gt; Response:</p><p>max_tokens: 1000</p><p>header 部分需要添加以下选项:</p><p>Content-Type: application/json</p><p>Authorization: Bearer &lt;addYourAPIToken&gt;</p><p>从 API 获得响应后,我们需要从 JSON 响应中提取数据。然后将数据分配给一个 JSON 变量,接着提取动作类别:</p><p></p><div class="img_box" id="id_imagebox_3" onclick=""><div class="content_img_div perview_img_div"><div align="center"></div></div></div>有了这些信息,我们就可以通过一个 if 语句来检查动作类型:<p></p><p></p><div class="img_box" id="id_imagebox_4" onclick=""><div class="content_img_div perview_img_div"><div align="center"></div></div></div>在得知动作类型为 " 命令 " 后,我们再添加一个 if 语句来检查地点、目标以及值等字段,并触发动作,例如打开办公室的灯(Set Office Lights):<p></p><p></p><div class="img_box" id="id_imagebox_5" onclick=""><div class="content_img_div perview_img_div"><div align="center"></div></div></div>在 "End If" 语句之后,我们还需要显示 GPT-3 发过来的 comment(备注):<p></p><p></p><div class="img_box" id="id_imagebox_6" onclick=""><div class="content_img_div perview_img_div"><div align="center"></div></div></div>" 查询 " 动作的处理也与之类似:<p></p><p></p><div class="img_box" id="id_imagebox_7" onclick=""><div class="content_img_div perview_img_div"><div align="center"></div></div></div>最后," 回答 " 和 " 澄清 " 类型的动作只显示或宣读结果,不做任何处理:<p></p><p></p><div class="img_box" id="id_imagebox_8" onclick=""><div class="content_img_div perview_img_div"><div align="center"></div></div></div>以上,通过一系列的 if else 语句,我们就完成了 Siri 的设置。<p></p><p>感觉如何?只需简单的英文说明,就可以创建自己的智能小助手,是不是很有趣?</p><p>但这只是一个例子。想象一下,你可以向 GPT-3 发送各种请求,然后通过 Siri 执行不同的操作,是不是觉得很科幻?</p><p></p><div id="recommend_bottom"></div><div id="article_bottom"></div></div>

宝贝禹儿 发表于 2023-2-2 20:52:31

牛逼啊,我已经有了gptchat,也有了iPhone,但没有其他智能家居物品,不然可以抄抄作业
页: [1]
查看完整版本: “我把 ChatGPT 和苹果的 Siri 组了个队,发现无敌了!” ...