Arduino IoT Cloud開始與ChatGPT聯(lián)機(jī)運(yùn)作
近期ChatGPT如雷貫耳,已經(jīng)不用筆者多解釋,但ChatGPT與創(chuàng)客的最愛(ài)Arduino扯上關(guān)系,倒是值得關(guān)注一下,是怎樣扯上關(guān)系呢?
這主要是有人發(fā)起一個(gè)項(xiàng)目,項(xiàng)目就放在Arduino官方的Project Hub上,該項(xiàng)目可以讓Arduino IoT Cloud云端服務(wù)與ChatGPT溝通互動(dòng),中間則透過(guò)一片開發(fā)板轉(zhuǎn)介訊息,開發(fā)板可以是任何已經(jīng)與Arduino IoT Cloud云端服務(wù)兼容的板子,例如Arduino Nano RP2040 Connect、Arduino MKR WiFi1010或任何以ESP32/ESP8266為主控芯片的開發(fā)板。
一步一步建立聯(lián)機(jī)
要讓Arduino IoT Cloud與ChatGPT溝通互動(dòng),還要一些前置準(zhǔn)備,首先要到OpenAI公司的網(wǎng)站上申請(qǐng)一個(gè)賬號(hào),進(jìn)而建立一組API密鑰,然后在線刷信用卡付費(fèi)儲(chǔ)值,儲(chǔ)存一些等待被耗用的token(有時(shí)翻譯成令牌),一旦跟ChatGPT文字對(duì)話就會(huì)開始耗,印象中1,000個(gè)token需要0.002美元。
接著,Arduino IoT Cloud網(wǎng)站上要有賬號(hào)可以登入,然后建立一個(gè)裝置(Device)、建立一個(gè)事物(Thing)、設(shè)定變量等,而后把裝置與事物關(guān)聯(lián)起來(lái),以及把裝置設(shè)成可透過(guò)Wi-Fi聯(lián)機(jī)。
在Arduino IoT Cloud上設(shè)定變量
再來(lái),開發(fā)板上要執(zhí)行程序(sketch),程序其實(shí)已經(jīng)有范例可用,在項(xiàng)目網(wǎng)站上可以找到,但有一些地方需要改,例如與API密鑰相關(guān)的部份要改,進(jìn)一步的細(xì)部修改則可以限定ChatGPT回答的最多字?jǐn)?shù),以免token的耗用速度失控,這需要改范例程序中的maxTokens變量。
關(guān)于token,無(wú)論是問(wèn)(人工打字輸入)或答(ChatGPT回復(fù))都會(huì)耗用的,但輸入既然是人,人可以自我克制來(lái)節(jié)約使用token,但ChatGPT的回話可能一長(zhǎng)串,導(dǎo)致過(guò)度耗用token,故需要事先限制。
如果想連輸入的文字也先行計(jì)算會(huì)使用多少token,其實(shí)OpenAI也提供一個(gè)在線工具Tokenizer可以試算,例如筆者打:如何買彩券?Tokenizer就回復(fù)我共計(jì)用了6個(gè)字符,等同于14個(gè)token;或筆者打:臺(tái)灣今年有沒(méi)有臺(tái)風(fēng)來(lái)?則為11個(gè)字符、28個(gè)token。token涉及ChatGPT如何拆字解析等機(jī)理,在此難以詳述。
OpenAI提供Tokenizer工具供人事先計(jì)算輸入的問(wèn)句會(huì)耗去多少個(gè)token
或者,也可以改用其他的API端點(diǎn),這需要改apiEndpoint變量;或者也可以改變使用的語(yǔ)言模型,這需要調(diào)整OpenAImodel變量。另外Arduino IoT Cloud上也要建立一個(gè)儀表板(dashboard)好用來(lái)觀看問(wèn)答信息。
附注:上述的相關(guān)工作,例如建立裝置、事物、儀表板等,覺(jué)得逐一手動(dòng)操作完成很累,也可以用Arduino CLI命令行方式來(lái)完成。
Arduino IoT Cloud上的儀表板觀看ChatGPT問(wèn)答記錄
附帶一提,也不一定要死守在桌機(jī)筆電前用瀏覽器來(lái)對(duì)ChatGPT打字,Arduino官方過(guò)往即有一個(gè)手機(jī)App,即Arduino IoT Cloud Remote,將App安裝于Android或iPhone手機(jī)上就可以用手機(jī)輸入文字,然后獲得ChatGPT回復(fù)。
此外,范例程序其實(shí)也刻意設(shè)計(jì)成開發(fā)板上的LED燈號(hào)每2秒閃爍一次,好告訴使用者板子還活著、還在動(dòng)作,而不是掛掉無(wú)響應(yīng)(有時(shí)問(wèn)跟答都需要一段反應(yīng)時(shí)間,過(guò)久沒(méi)響應(yīng)會(huì)真的以為停擺了),如果嫌這個(gè)燈號(hào)礙眼,也可以事先修改范例程序,將這段功能關(guān)閉。
目前只是打地基
講到這里,各位可能覺(jué)得上述作法有點(diǎn)脫褲子放屁,干脆讓Arduino IoT Cloud直通OpenAI的ChatGPT就好,畢竟兩套服務(wù)系統(tǒng)都在云端,中間何必又經(jīng)過(guò)一片Arduino開發(fā)板呢?
其實(shí)這是個(gè)布局,這個(gè)項(xiàng)目目前把Arduino IoT Cloud云端服務(wù),當(dāng)成是開發(fā)板暫時(shí)借用的輸出輸入界面,輸入是在云端上打字,觀看回復(fù)的輸出也是在云端上觀看,而更下一步是在開發(fā)板上建立更親和的輸入方式,例如接上麥克風(fēng)與配置語(yǔ)音識(shí)別軟件,如此就可以用發(fā)話方式,將語(yǔ)音轉(zhuǎn)成文字傳給ChatGPT。
反過(guò)來(lái),開發(fā)板后續(xù)可以接上顯示器,ChatGPT的回復(fù)可以透過(guò)顯示器輸出,不一定要再透過(guò)筆電或手機(jī)觀看。或者,也可以透過(guò)喇叭與文字轉(zhuǎn)語(yǔ)音功能,直接用發(fā)話方式告知詢問(wèn)者,如此就形同打造一個(gè)Amazon Echo系列智能喇叭,只是連到云端的部份不是使用Alexa,而是ChatGPT。同理,也類似使用Google Nest系列喇叭與Google Assistant,或者Apple的HomePod mini與Siri。
事實(shí)上確實(shí)已有其他項(xiàng)目具備顯示器來(lái)顯示ChatGPT回復(fù)的信息,運(yùn)用一片128 x 64分辨率的OLED顯示器來(lái)顯示,開發(fā)板則是一片GIGA R1 WiFi,控制程序則用MicroPython撰寫成。
用SSD1315的OLED顯示器來(lái)顯示ChatGPT回復(fù)的文字
最后,筆者估計(jì)未來(lái)會(huì)有愈來(lái)愈多項(xiàng)目用類似的發(fā)展手法,只要不是很嚴(yán)格要求立即反應(yīng)的輸入與輸出,都會(huì)先用Arduino IoT Cloud或類似的云端服務(wù)來(lái)暫時(shí)充當(dāng)開發(fā)的輸出入接口,先得到概念驗(yàn)證(POC),等確實(shí)可行后,再給開發(fā)板裝配上真的輸出入硬件、人機(jī)互動(dòng)接口等設(shè)計(jì),類似的云端先行開發(fā)驗(yàn)證手法也已經(jīng)用于一些芯片設(shè)計(jì)、車用信息系統(tǒng)設(shè)計(jì),看來(lái)往后云端服務(wù)與技能對(duì)創(chuàng)客而言將愈來(lái)愈重要。
審核編輯:湯梓紅
-
OLED
+關(guān)注
關(guān)注
119文章
6219瀏覽量
224748 -
Arduino
+關(guān)注
關(guān)注
188文章
6477瀏覽量
187748 -
IOT
+關(guān)注
關(guān)注
187文章
4230瀏覽量
197527 -
Cloud
+關(guān)注
關(guān)注
0文章
68瀏覽量
5381 -
ChatGPT
+關(guān)注
關(guān)注
29文章
1566瀏覽量
8024
原文標(biāo)題:Arduino IoT Cloud也搭上了ChatGPT熱潮!
文章出處:【微信號(hào):易心Microbit編程,微信公眾號(hào):易心Microbit編程】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論