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),等確實可行后,再給開發板裝配上真的輸出入硬件、人機互動接口等設計,類似的云端先行開發驗證手法也已經用于一些芯片設計、車用信息系統設計,看來往后云端服務與技能對創客而言將愈來愈重要。
審核編輯:湯梓紅
-
OLED
+關注
關注
119文章
6200瀏覽量
224195 -
Arduino
+關注
關注
188文章
6469瀏覽量
187055 -
IOT
+關注
關注
187文章
4210瀏覽量
196776 -
Cloud
+關注
關注
0文章
68瀏覽量
5355 -
ChatGPT
+關注
關注
29文章
1560瀏覽量
7666
原文標題:Arduino IoT Cloud也搭上了ChatGPT熱潮!
文章出處:【微信號:易心Microbit編程,微信公眾號:易心Microbit編程】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論