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联机。
在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如何拆字解析等机理,在此难以详述。
openai提供tokenizer工具供人事先计算输入的问句会耗去多少个token
或者,也可以改用其他的api端点,这需要改apiendpoint变量;或者也可以改变使用的语言模型,这需要调整openaimodel变量。另外arduino iot cloud上也要建立一个仪表板(dashboard)好用来观看问答信息。
附注:上述的相关工作,例如建立装置、事物、仪表板等,觉得逐一手动操作完成很累,也可以用arduino cli命令行方式来完成。
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撰写成。
用ssd1315的oled显示器来显示chatgpt回复的文字
最后,笔者估计未来会有愈来愈多项目用类似的发展手法,只要不是很严格要求立即反应的输入与输出,都会先用arduino iot cloud或类似的云端服务来暂时充当开发的输出入接口,先得到概念验证(poc),等确实可行后,再给开发板装配上真的输出入硬件、人机互动接口等设计,类似的云端先行开发验证手法也已经用于一些芯片设计、车用信息系统设计,看来往后云端服务与技能对创客而言将愈来愈重要。
基于CPCI总线的智能A/D,D/A模块设计
防止量子计算机被攻击,我们该做些什么
远翔-LED驱动芯片-FP7208XR-G1
人工智能会让人力资本更值钱
计算机通信与网络v2 实验课程(18)
Arduino IoT Cloud开始与ChatGPT联机运作
Ampere Altra系列处理器的锁和内存序
车视野3D 360全景GQ2330解码一体机进行实测
2021蓝莓大赏落幕,YESOUL野小兽荣获“最佳线上直播课”奖
光伏赛道热度高涨 机器人能否在光伏打出一个产业赢局?
智能离子风机风棒联网监控静电消除器
Autotalks宣布立即推出ZooZ 2安全设备
Pixel音频失真谷歌已承认是属于硬件问题
探析丰田第二代TSS实际测试成绩
关于霍尼韦尔Granit3800i工业级一维影像扫描器的性能分析和应用
广东省委书记黄坤明调研德赛西威惠南工业园
技术分享 | 验证入门黄金组合:数字仿真器与调试系统
中国芯片制造商中芯国际将通过在上海发行股票筹集65.5亿美元
多种多样的便携式充电器
Fnality公司正在利用区块链技术开创数字金融市场时代