Arduino IoT Cloud开始与ChatGPT联机运作

电子说

1.3w人已加入

描述

Arduino IoT Cloud开始与ChatGPT联机运作

近期ChatGPT如雷贯耳,已经不用笔者多解释,但ChatGPT与创客的最爱Arduino扯上关系,倒是值得关注一下,是怎样扯上关系呢?

这主要是有人发起一个项目,项目就放在Arduino官方的Project Hub上,该项目可以让Arduino IoT Cloud云端服务与ChatGPT沟通互动,中间则透过一片开发板转介讯息,开发板可以是任何已经与Arduino IoT Cloud云端服务兼容的板子,例如Arduino Nano RP2040 Connect、Arduino MKR WiFi1010或任何以ESP32/ESP8266为主控芯片的开发板。

一步一步建立联机

要让Arduino IoT Cloud与ChatGPT沟通互动,还要一些前置准备,首先要到OpenAI公司的网站上申请一个账号,进而建立一组API密钥,然后在线刷信用卡付费储值,储存一些等待被耗用的token(有时翻译成令牌),一旦跟ChatGPT文字对话就会开始耗,印象中1,000个token需要0.002美元。

接着,Arduino IoT Cloud网站上要有账号可以登入,然后建立一个装置(Device)、建立一个事物(Thing)、设定变量等,而后把装置与事物关联起来,以及把装置设成可透过Wi-Fi联机。

Cloud

在Arduino IoT Cloud上设定变量

再来,开发板上要执行程序(sketch),程序其实已经有范例可用,在项目网站上可以找到,但有一些地方需要改,例如与API密钥相关的部份要改,进一步的细部修改则可以限定ChatGPT回答的最多字数,以免token的耗用速度失控,这需要改范例程序中的maxTokens变量。

关于token,无论是问(人工打字输入)或答(ChatGPT回复)都会耗用的,但输入既然是人,人可以自我克制来节约使用token,但ChatGPT的回话可能一长串,导致过度耗用token,故需要事先限制。

如果想连输入的文字也先行计算会使用多少token,其实OpenAI也提供一个在线工具Tokenizer可以试算,例如笔者打:如何买彩券?Tokenizer就回复我共计用了6个字符,等同于14个token;或笔者打:台湾今年有没有台风来?则为11个字符、28个token。token涉及ChatGPT如何拆字解析等机理,在此难以详述。

Cloud

OpenAI提供Tokenizer工具供人事先计算输入的问句会耗去多少个token

或者,也可以改用其他的API端点,这需要改apiEndpoint变量;或者也可以改变使用的语言模型,这需要调整OpenAImodel变量。另外Arduino IoT Cloud上也要建立一个仪表板(dashboard)好用来观看问答信息。

附注:上述的相关工作,例如建立装置、事物、仪表板等,觉得逐一手动操作完成很累,也可以用Arduino CLI命令行方式来完成。

Cloud

Arduino IoT Cloud上的仪表板观看ChatGPT问答记录

附带一提,也不一定要死守在桌机笔电前用浏览器来对ChatGPT打字,Arduino官方过往即有一个手机App,即Arduino IoT Cloud Remote,将App安装于Android或iPhone手机上就可以用手机输入文字,然后获得ChatGPT回复。

此外,范例程序其实也刻意设计成开发板上的LED灯号每2秒闪烁一次,好告诉使用者板子还活着、还在动作,而不是挂掉无响应(有时问跟答都需要一段反应时间,过久没响应会真的以为停摆了),如果嫌这个灯号碍眼,也可以事先修改范例程序,将这段功能关闭。

目前只是打地基

讲到这里,各位可能觉得上述作法有点脱裤子放屁,干脆让Arduino IoT Cloud直通OpenAI的ChatGPT就好,毕竟两套服务系统都在云端,中间何必又经过一片Arduino开发板呢?

其实这是个布局,这个项目目前把Arduino IoT Cloud云端服务,当成是开发板暂时借用的输出输入界面,输入是在云端上打字,观看回复的输出也是在云端上观看,而更下一步是在开发板上建立更亲和的输入方式,例如接上麦克风与配置语音识别软件,如此就可以用发话方式,将语音转成文字传给ChatGPT。

反过来,开发板后续可以接上显示器,ChatGPT的回复可以透过显示器输出,不一定要再透过笔电或手机观看。或者,也可以透过喇叭与文字转语音功能,直接用发话方式告知询问者,如此就形同打造一个Amazon Echo系列智能喇叭,只是连到云端的部份不是使用Alexa,而是ChatGPT。同理,也类似使用Google Nest系列喇叭与Google Assistant,或者Apple的HomePod mini与Siri。

事实上确实已有其他项目具备显示器来显示ChatGPT回复的信息,运用一片128 x 64分辨率的OLED显示器来显示,开发板则是一片GIGA R1 WiFi,控制程序则用MicroPython撰写成。

Cloud

用SSD1315的OLED显示器来显示ChatGPT回复的文字

最后,笔者估计未来会有愈来愈多项目用类似的发展手法,只要不是很严格要求立即反应的输入与输出,都会先用Arduino IoT Cloud或类似的云端服务来暂时充当开发的输出入接口,先得到概念验证(POC),等确实可行后,再给开发板装配上真的输出入硬件、人机互动接口等设计,类似的云端先行开发验证手法也已经用于一些芯片设计、车用信息系统设计,看来往后云端服务与技能对创客而言将愈来愈重要。

  审核编辑:汤梓红

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

全部0条评论

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

×
20
完善资料,
赚取积分