Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ChatGPT(GPT-4版)でIoTやってみた / IoTLT vol.97
Search
you(@youtoy)
PRO
March 23, 2023
Technology
0
770
ChatGPT(GPT-4版)でIoTやってみた / IoTLT vol.97
you(@youtoy)
PRO
March 23, 2023
Tweet
Share
More Decks by you(@youtoy)
See All by you(@youtoy)
もくはりでのモノ作りと自身のモノ作り活動 / もくはり文化祭2024 オープン記念イベント
you
PRO
0
25
"かわいい" がテーマのハッカソンでWebの技術を使って魔法の世界を作った話など / HTML5 10th Anniversary
you
PRO
0
77
ブラウザで AI・機械学習が扱える TensorFlow.js が使われているライブラリなどの話 / #さくらのAI Meetup vol.4「ブラウザ」
you
PRO
0
160
Blynk と Raspberry Pi Pico W で IoT 〜 MQTT・HTTPリクエストの組み合わせも 〜 / IoTLT vol.114
you
PRO
0
2.4k
AIを活用したWebアプリのプロトタイプを作ってコンテストや展示に出してみた話 / 大阪工業大学 ネットワークデザイン学科 LT大会 2024v2
you
PRO
0
86
Babylon.jsと色々なものを組み合わせる:ブラウザのAPIやガジェットや2D描画ライブラリなど / Babylon.js 勉強会 vol.3
you
PRO
0
560
WebHID API で Joy-Con・DUALSHOCK 4 のセンサーをブラウザから利用する / IoTLT vol.109
you
PRO
0
2.3k
UIFlow 2.0 で MQTT をやってみた! / IoTLT vol.108
you
PRO
0
4.8k
UIFlow 2.0 と ATOMS3 の組み合わせで LINE通知を試す / ビジュアルプログラミングIoTLT vol.16
you
PRO
0
2.6k
Other Decks in Technology
See All in Technology
普通のエンジニアがLaravelコアチームメンバーになるまで
avosalmon
0
670
ソフトウェア開発における「パーフェクトな意思決定」/Perfect Decision-Making in Software Development
yayoi_dd
2
2.7k
Oracle Base Database Service:サービス概要のご紹介
oracle4engineer
PRO
1
16k
アジャイルチームが変化し続けるための組織文化とマネジメント・アプローチ / Agile management that enables ever-changing teams
kakehashi
2
2.5k
信頼されるためにやったこと、 やらなかったこと。/What we did to be trusted, What we did not do.
bitkey
PRO
0
1.6k
NOT VALIDな検査制約 / check constraint that is not valid
yahonda
1
110
Azureの開発で辛いところ
re3turn
0
200
OPENLOGI Company Profile
hr01
0
57k
Formal Development of Operating Systems in Rust
riru
1
380
DUSt3R, MASt3R, MASt3R-SfM にみる3D基盤モデル
spatial_ai_network
3
500
Amazon Q Developerで.NET Frameworkプロジェクトをモダナイズしてみた
kenichirokimura
1
140
Visual StudioとかIDE関連小ネタ話
kosmosebi
1
290
Featured
See All Featured
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
33
2.7k
GraphQLの誤解/rethinking-graphql
sonatard
68
10k
How to train your dragon (web standard)
notwaldorf
88
5.8k
Keith and Marios Guide to Fast Websites
keithpitt
410
22k
How GitHub (no longer) Works
holman
312
140k
Thoughts on Productivity
jonyablonski
68
4.4k
Faster Mobile Websites
deanohume
305
30k
StorybookのUI Testing Handbookを読んだ
zakiyama
28
5.4k
Testing 201, or: Great Expectations
jmmastey
41
7.2k
Designing for Performance
lara
604
68k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
59k
Speed Design
sergeychernyshev
25
720
Transcript
2023年3月23日 (木) IoTLT vol.97 @ソフトバンク 豊田陽介( ) @youtoy ChatGPT(GPT-4版)でIoTやってみた
自己紹介 豊田陽介( ) @youtoy ・IT系イベント主催、登壇や運営なども ・子ども向けの活動いろいろ ・ Microsoft MVP(2021/10 から)
プライベートでの活動 ・ガジェット大好き ・昨年12月の ChatGPT熱が、昨月くらい から再燃中 ※ 昨年のアドベントカレンダーで、12月 2日やその他の日で ChatGPTネタの 記事を書いたりしてた 好きなこと、他
生成系AIの話題、 盛りあがってますよね!
一昨日・昨日だけを見ても(その1) Adobeの画像生成AI 「Adobe Firefly」 Googleの対話AI 「Bard」の一般公開 日本はまだ 引用: https://www.itmedia.co.jp/news/articles/2303/21/news079.html
一昨日・昨日だけを見ても(その2) Microsoftの画像生成AI 「Bing Image Creator」 GitHubのコーディング支援 「GitHub Copilot X」 引用:
https://japan.cnet.com/article/35201549/ 今は英語 での入力
「Bing Image Creator」を軽く試してみた プロンプト 「Fantastic scenery of ice and flames」
DeepL翻訳で「氷と炎が 入りまじる幻想的な風景」 を英訳したもの
そんな生成系AIの1つ: OpenAIの「ChatGPT」
ChatGPTとは? ▪ 話題になりすぎてて、詳細説明は不要かも... ・OpenAIの出した対話型AI ・提供開始などは以下のとおり ・2022年11月30日: 一般公開 ・2023年3月2日: ChatGPT APIの一般公開
※1 ・2023年3月15日: GPT-4版提供 ※2 ※3 ※1 従量課金 ※2 Webからの利用には、有償版「ChatGPT Plus」が必要 ※3 現状、GPT-4のAPI利用はwaitlist登録が必要
そんな「ChatGPT」を 使ってIoT
最初の検証は 内容をシンプルにして実施
シンプルな機能の開発を 手伝ってもらう 「デバイスからのスマホ通知」
ここ数日のChatGPTの不具合に 見舞われ、ちょっと中途半端... 3/20 に使えない状態に その後、履歴が出ない・長文の 出力が途中でエラーに (履歴機能は、今朝7時台に復活)
試そうとしたこと シンプルな仕組みの例: M5Stack系デバイスのボタンを押したら スマホのLINEアプリに通知(LINE Notifyを利用) 検証内容: ・自分で作った場合と、以下を試した場合の比較 ・適当なプロンプト(詳細は書かない)で試す ・補足情報ありのプロンプトなどで試す ・情報がある/ないはずのデバイスについて聞く
(M5StickC Plus/ATOMS3 Lite) ・ボタン押下をユニットを使った処理に変更【未完】 ・細かな部分の検証【未完】
結果:「適当なプロンプト(詳細は書かない)」 プロンプト: M5Stackを使ってLINE Notifyで通知を送る プログラム 出力の概要: ・LINE Notifyのアクセストークン取得に関する簡単な説明 ・Arduino IDE開発の準備について簡単な説明
・loop()の中身が空、1度だけ通知を送るプログラム ※ LINE Notifyの処理のトリガーを指定してない部分は、 「setup()のWi-Fi接続成功後に1度だけ処理」に 出力は 「手順説明 + プログラム」 プログラム は、setup() で1回処理と いうものに
結果:「適当なプロンプト(詳細は書かない)」 ChatGPTでの入出力でのスクショ
結果:「適当なプロンプト(詳細は書かない)」 途中で出力が途切れたので 「続きを書いて」という入力を ChatGPTでの入出力でのスクショ
ここで得られた内容は、 「ちょっとだけ手直しをしたら 動くもの」という感じ
結果:最初の入力に情報を足して試す プロンプト: M5StickC Plus のボタンを押したら、LINE Notify で通知が送られるプログラム 出力の主な差分:
動くものが出てきた (アクセストークン、SSID・ パスワードを書きかえるだけ)
改善された理由は、 おそらくは再生成して出力が 変わったことと思われる (プロンプトの変更による改善ではなさそう)
結果:デバイス指定を2つ目の入力で プロンプト(ボタン押下指定あり+以下): デバイスは、M5StickC Plusを使いたいのですが、スケッチ例は そのまま使えますか?何か変更が必要ですか? 出力の冒頭部分: 【修正に関する補足】 ・M5StickC Plusのライブラリ をインポート
・ボタンA〜Cを使ったサンプル を、AとBのみにする変更
結果:ATOMS3 Liteを指定してみる ・ChatGPTの学習データには情報がないはず ⇒ ChatGPTの正常動作だが存在しないものも... 何度か試した結果: 「よく分からないので、Python でLINE Notifyを使う方法を...」 「ATOMS3Lite.h」の
インクルード ※ 実際には存在しない 「M5Atom.h」の インクルード
結果:ATOMS3 Liteを指定してみる ・「M5AtomS3.h」という名称だけ出してみる この時は、知らないライブラリ という内容込みの返答など
出てきた情報の正しさは 要検証という感じ (この挙動はChatGPTの仕様通りだけれど...)
Bingでもやってみた
結果:「少し補足情報あり」のプロンプト プロンプト(3つ): M5StickC Plus のボタンを押したら、LINE Notify で通知が送られるプログラム Arduino IDE のプログラムを示してください
サンプルコードを見せてください サンプルコードを見せてください 出力結果: ・LINE Notifyのアクセストークン・無線LAN情報 (SSID・パスワード)を変更するだけで無事に動作 ここでコードが出てきた
結果:「少し補足情報あり」のプロンプト
結果:「少し補足情報あり」のプロンプト
結果:「少し補足情報あり」のプロンプト プロンプト(1つ): M5StickC Plus のボタンを押したら、LINE Notifyで 通知が送られるプログラムのサンプルコードを見せてください サンプルコードを見せてください 出力結果: ・人感センサーを使う仕組みが混じったものが出てきたり
より複雑な内容で試したり、 より良い出力を得られるコツなど を模索していきたい
引き続き「生成AI + IoT」の お試しをやっていきたい!
余談:ChatGPT APIを処理に 組み込んだお試しの中の1つ
ブラウザで動く音声対話 ブラウザで p5.js ・p5.speech・ ChatGPT API を 利用した実装で ChatGPTと声でやりとりする仕組みの簡単な試作
APIを呼び出す処理はChatGPT作(GPT-3.5版) 公式の curlサンプルから ブラウザの fetch で呼び 出す処理の作成を依頼
余談:IoT系以外のコード 生成のお試しの1つ
p5.js(JavaScript)実装のブロック崩し プロンプト:「p5.jsでブロック崩しが遊べるプログラムを作って」 クラス構文も 使われた180行 ほどのプログラム
終わり!