Slide 1

Slide 1 text

Node-RED Park Vol.11 - AIを使うフローについて語る会! ChatGPT + Node-RED + HoloLens 2 + IoT な連携の Node-RED フロー例 ワンフットシーバス 田中正吾

Slide 2

Slide 2 text

私の話はスライドを後ほど共有します。 話す内容に注力いただいて大丈夫です!

Slide 3

Slide 3 text

田中正吾(たなかせいご) 屋号:ワンフットシーバス 2004年よりフリーランス。以後、FLASH制作を 中心にインタラクティブコンテンツを主に行い現 在に至る。 最近ではWEBフロントエンドをベースにしなが らも、情報とインターフェースが合わさるアプ ローチという視点でIoTやMixed Realityといった 技術も取り入れながら活動しています。

Slide 4

Slide 4 text

15 分くらいを目指してアレコレ話します

Slide 5

Slide 5 text

音声認識したテキストを ChatGPT API に伝えて IoT へ指示する JSON に変換され IoT が動作します 日本語 音声認識 (インターネット経由) IoT 指示 JSON 自前 Node-RED ChatGPT API HoloLens2 IoT

Slide 6

Slide 6 text

ひとまずデモ

Slide 7

Slide 7 text

OpenAI 社の ChatGPT API 使うのはこの API です https://platform.openai.com/overview

Slide 8

Slide 8 text

Chat completion を使います 画像生成とか音声認識とか他にもいろいろあるんですが、話題のチャットの仕組みを使います

Slide 9

Slide 9 text

おおまかには OpenAI の Web 版で 使えるのと近いもの たしかに API と Web 版で比較してやってみても同じような印象(あくまで印象ですが)

Slide 10

Slide 10 text

API reference ページで API Keys の リンクがあるので、そこからアクセス https://platform.openai.com/docs/api-reference/authentication

Slide 11

Slide 11 text

ログイン聞かれるのでログインします わたしはうっかり Sign up 押しがちなのは秘密

Slide 12

Slide 12 text

API Keys のページで Create new secret key ボタンをクリックしてキーをメモ

Slide 13

Slide 13 text

一度しか生成されないので 閉じる前にメモしておきましょう!

Slide 14

Slide 14 text

素の REST API であったり公式の Python や Node.js ライブラリが使えます

Slide 15

Slide 15 text

今回はつなぐツールとして Node-RED 使います API や IoT につなぎやすい Node.js 製ローコードツール

Slide 16

Slide 16 text

Node-RED では chatgpt で調べると すでに 3 つもあります API ベースでつながるものです

Slide 17

Slide 17 text

今回は node-red-contrib-simple-chatgpt を つかってつないでみます

Slide 18

Slide 18 text

作者のがおまるさんの記事がくわしいです API Key 入れるだけでサッと使えるところが素敵すぎる https://zenn.dev/gaomar/articles/e46cba8e489dfa

Slide 19

Slide 19 text

ウォンバットの質問をしてみます Web 版ではこう返ってくる。

Slide 20

Slide 20 text

こんなフローで質問チャレンジ

Slide 21

Slide 21 text

ChatGPT ノードは API Key を Token に設定

Slide 22

Slide 22 text

ChatGPT ノードに送り込む質問を 手前の change ノードで仕込んでおく

Slide 23

Slide 23 text

デモしてみます!

Slide 24

Slide 24 text

他のシステムに馴染ませる調整の一例 ChatGPT さんは回答できるジャンルは万能だけど、あえてルールを決めて回答しやすく特化。 さらに JSON データに加工して回答してもらい、他のシステムにつなぎやすく。もう人間同士の対話っぽい。 人間の言葉を理解 JSON データに 加工して回答 ルールを決めて 回答しやすく特化 ブラッシュアップ! ブラッシュアップ! 人間の言葉を理解 人間の言葉で回答 回答ジャンルは万能 (得手不得手はある) ■ChatGPT の基本キャラクター ■他のシステムに馴染ませる調整(今回)

Slide 25

Slide 25 text

うまく JSON で返ってくる質問の 試行錯誤をしてみました! いい感じのエアコン設定温度を JSON データで返答し HTTP API 的に ChatGPT が答えてくれる質問例のメモ https://www.1ft-seabass.jp/memo/2023/03/13/chatgpt-http-api-like-json-response-tips1/

Slide 26

Slide 26 text

さらにブラッシュアップしたものがこちら! LED への RGB 値を JSON データで返答する ChatGPT API の仕組みを Node-RED でブラッシュアップしたメモ https://www.1ft-seabass.jp/memo/2023/03/17/chatgpt-http-api-like-json-response-tips-with-node-red/

Slide 27

Slide 27 text

さらにステップアップしたもの

Slide 28

Slide 28 text

IoT 指示はこんな風に動作します obniz 側で IoT 指示 JSON に応じて動作します ● {"type":"on"} ○ 機能 : LED がつく ○ セリフ : 「おんにして」 ● {"type":"off"} ○ 機能 : LED が消える ○ セリフ : 「おふにして」 ● {"type": "blink", "interval": 1, "count": 3} ○ 機能 : 3 回点滅する ○ セリフ : 「3回点滅して」

Slide 29

Slide 29 text

やってみます!

Slide 30

Slide 30 text

ChatGPT API を上手く組み込めました 人間の言葉を理解 JSON データに 加工して回答 ルールを決めて 回答しやすく特化 ブラッシュアップ! ブラッシュアップ! IoT 制御

Slide 31

Slide 31 text

入り口に音声認識を加えると より可能性が広がりました 人間の言葉を理解 JSON データに 加工して回答 ルールを決めて 回答しやすく特化 ブラッシュアップ! ブラッシュアップ! IoT 制御 なんらかの音声認識

Slide 32

Slide 32 text

HoloLens 2 には音声認識機能があり 音声を日本語テキストに変換できます 音声認識機能 (インターネット経由) 音声データ マイク入力 テキスト 日本語 テキスト

Slide 33

Slide 33 text

音声認識したテキストを ChatGPT API に伝えて IoT へ指示する JSON に変換され IoT が動作します 日本語 音声認識 (インターネット経由) IoT 指示 JSON 自前 Node-RED ChatGPT API HoloLens2 IoT

Slide 34

Slide 34 text

HoloLens2 の音声認識から ChatGPT 経由の obniz への自然な呼びかけで指示できました 動画をお見せします!

Slide 35

Slide 35 text

こちらから動画も見れます https://twitter.com/1ft_seabass/status/1635135055503949829

Slide 36

Slide 36 text

デモしてみます!

Slide 37

Slide 37 text

ここまでしっかりお願いしてると GPT3.5 でも 4 でもあんまり変わらない http request ノードでピュアに叩くことをしました https://www.1ft-seabass.jp/memo/2023/05/02/openai-gpt-4-api-first-step/

Slide 38

Slide 38 text

➔ Node-RED で ChatGPT するノードはいろいろあってとっ つきやすい ➔ JSON で返すことができると Node-RED に受けて IoT と か VR にアレコレと料理ができるのでたのしい ➔ Unity で確かに開発できるけど Unity 内で ChatGPT API の試行錯誤を直結するのは大変なので Node-RED であれ これできるがめっちゃありがたい まとめ