ALGYAN ChatGPT研究会 第 3 弾
by
1ft-seabass
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
ALGYAN ChatGPT研究会 第 3 弾 OpenAI 社の ChatGPT API の使ってみ て考えたこと ワンフットシーバス 田中正吾
Slide 2
Slide 2 text
私の話はスライドを後ほど共有します。 話す内容に注力いただいて大丈夫です!
Slide 3
Slide 3 text
45 分くらいを目指してアレコレ話します のこり時間は質疑応答などで
Slide 4
Slide 4 text
田中正吾(たなかせいご) 屋号:ワンフットシーバス 2004年よりフリーランス。最近ではWEBフロン トエンドをベースにしながらも、情報とインター フェースが合わさるアプローチという視点でIoT やMixed Realityといった技術も取り入れながら 活動しています。 Microsoft MVP。IBM Champion。 ウォンバットが好き。
Slide 5
Slide 5 text
画像生成 AI と何とか仲良くなりつつある近況 Bing 画像生成でかわいいウォンバット画像を生成したら良いものも生成できつつあるメモ https://www.1ft-seabass.jp/memo/2023/04/08/microsoft-bing-image-creator-wombat-try/
Slide 6
Slide 6 text
ChatGPT の私の印象 人間の言葉(自然言語)で聞くと、うまく理解してくれて、かなりジャンルは万能に対応でき、 人間の言葉(自然言語)で人間が分かるように返答してくれる仕組みあるいは相手 人間の言葉を理解 人間の言葉で回答 回答ジャンルは万能 (得手不得手はある)
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
クラスメソッドさんの記事で言及があった 「gpt-3.5-turbo」は小規模で速度が速く、比較的簡単な自然言語処理タスクに 使用されることが多い点があります。とのこと。 https://dev.classmethod.jp/articles/open-api-lambda-test/
Slide 11
Slide 11 text
簡単なデモを通して OpenAI 使ってみます!
Slide 12
Slide 12 text
2023/4/1 ごろの情報で進めます 進化が目まぐるしいので違いがあったらご容赦
Slide 13
Slide 13 text
API reference ページで API Keys の リンクがあるので、そこからアクセス https://platform.openai.com/docs/api-reference/authentication
Slide 14
Slide 14 text
ログイン聞かれるのでログインします わたしはうっかり Sign up 押しがちなのは秘密
Slide 15
Slide 15 text
API Keys のページで Create new secret key ボタンをクリックしてキーをメモ
Slide 16
Slide 16 text
一度しか生成されないので 閉じる前にメモしておきましょう!
Slide 17
Slide 17 text
素の REST API であったり公式の Python や Node.js ライブラリが使えます
Slide 18
Slide 18 text
Chat の API の説明はこのあたり 簡単に仕様をご紹介します。見やすい。 https://platform.openai.com/docs/api-reference/chat/create
Slide 19
Slide 19 text
今回はつなぐツールとして Node-RED 使います API や IoT につなぎやすい Node.js 製ローコードツール
Slide 20
Slide 20 text
Node-RED では chatgpt で調べると すでに 3 つもあります API ベースでつながるものです
Slide 21
Slide 21 text
今回は node-red-contrib-simple-chatgpt を つかってつないでみます
Slide 22
Slide 22 text
作者のがおまるさんの記事がくわしいです API Key 入れるだけでサッと使えるところが素敵すぎる https://zenn.dev/gaomar/articles/e46cba8e489dfa
Slide 23
Slide 23 text
ウォンバットの質問をしてみます Web 版ではこう返ってくる。
Slide 24
Slide 24 text
こんなフローで質問チャレンジ
Slide 25
Slide 25 text
ChatGPT ノードは API Key を Token に設定
Slide 26
Slide 26 text
ChatGPT ノードに送り込む質問を 手前の change ノードで仕込んでおく
Slide 27
Slide 27 text
デモしてみます!
Slide 28
Slide 28 text
➔ ChatGPT API で Web 版のような応答ができる ➔ 少し応答を待つのは Web 版だと徐々に出てくるので緩和 されて見えるが同じくらいっぽい ➔ おなじ質問も聞くたびに少しずつ変わって面白い ウォンバット質問デモのポイント
Slide 29
Slide 29 text
ChatGPT はこういったカジュアルな質問も 良い感じに答えてくれる 人間の言葉を理解 人間の言葉で回答 回答ジャンルは万能 (得手不得手はある)
Slide 30
Slide 30 text
ところで、なぜ ChatGPT API をつかうの?
Slide 31
Slide 31 text
API の使う理由の一つとして プライバシーが保たれるので使ってます OpenAIのAPIを利用する場合、オプトインしない限りユーザーが送信したデータが 学習に利用されることはない、と改定されました。とのこと。 https://dev.classmethod.jp/articles/openai-data-usage-policy/
Slide 32
Slide 32 text
Web 版での「自然言語で答えてくれる」ことが 他の IT な仕組みに入れにくい悩ましさがある これを事例に話します
Slide 33
Slide 33 text
一見いいように素敵な回答見えるんですが ここからコピーしてペーストして使う手間がある つまり人間の目視でうまーくコピーアンドペーストして取り出す
Slide 34
Slide 34 text
このように API 経由でデータをもらえれば 活用しやすくなるので注目してます
Slide 35
Slide 35 text
さらに IT の仕組みに ChatGPT を なじませるアプローチ!
Slide 36
Slide 36 text
さきほどのように返答されても 他で扱うためには加工や抽出が重要 JSON で返してくれた方が扱いやすいはず
Slide 37
Slide 37 text
人間の言葉で返される特性は チャットには良いがシステムに組み込みにくい 「人間の言葉で回答」部分をうまくブラッシュアップしてみます! 人間の言葉を理解 人間の言葉で回答 回答ジャンルは万能 (得手不得手はある)
Slide 38
Slide 38 text
ChatGPT API でも Web 版でも 共通に大事なのは良い質問をつくること プロンプトをうまく組んでみる
Slide 39
Slide 39 text
うまく JSON で返ってくる質問の 試行錯誤をしてみました! いい感じのエアコン設定温度を JSON データで返答し HTTP API 的に ChatGPT が答えてくれる質問例のメモ https://www.1ft-seabass.jp/memo/2023/03/13/chatgpt-http-api-like-json-response-tips1/
Slide 40
Slide 40 text
いざデモしてみます! さきほどの質問を API で聞いてみる
Slide 41
Slide 41 text
➔ 人間の言葉で回答というのがシステムに組み込みにくいの で JSON データで返すようにして親和性を高めた ➔ ちゃんと JSON 例を質問の中で明示すれば ChatGPT は理 解してくれて返答してくれました。「人間の言葉を理解」 の特性がうまく効いてる。 ➔ JSON の回答をした上で、聞きたいことの値をうまく返答 してくれました。 JSON 縛り質問デモのポイント
Slide 42
Slide 42 text
ChatGPT はこちらの質問やルール次第で 回答も JSON に合わせてくれました 人間の言葉を理解 JSON データに 加工して回答 回答ジャンルは万能 (得手不得手はある) ブラッシュアップ!
Slide 43
Slide 43 text
次は万能な回答能力をルールを決めて 絞り込むことで回答精度アップ! 人間の言葉を理解 JSON データに 加工して回答 回答ジャンルは万能 (得手不得手はある) ブラッシュアップ!
Slide 44
Slide 44 text
回答精度をより実用へ目指してみたら もどかしい部分もありました LED へ設定する RGB 値を JSON データで返答し HTTP API 的に ChatGPT が答えてくれる質問例のメモ https://www.1ft-seabass.jp/memo/2023/03/14/chatgpt-http-api-like-json-response-tips2/
Slide 45
Slide 45 text
このナレッジでフロー作りました
Slide 46
Slide 46 text
template ノードで「赤」などと指定された言葉を 質問文に埋め込んで使っています
Slide 47
Slide 47 text
それではやってみます!
Slide 48
Slide 48 text
➔ しっかり質問を定義すれば、柔軟に返してくれる ➔ ただし、おなじ質問でも、少し違うカラーを返してくれる ことがあっておもしろい ➔ 例外についてはたまに JSON 縛りを忘れてしまうことが あっておもしろいけど、JSON データ壊れちゃうのでやめ てほしいw 色の質問デモ ver.1 のポイント
Slide 49
Slide 49 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 50
Slide 50 text
このナレッジでデモしてみます!
Slide 51
Slide 51 text
➔ ルール・返答する JSON データ・返答前にチェック!とい う見出しでお願いを分かりやすくするとより通じる ➔ 例外処理を明確にお願いすることで説明文を加えないよう に誘導できる ➔ 説明を入れる値を入れるお願いを明確にすることで説明文 を加えないように誘導できる ➔ 質問をチューニングすると、ちゃんと JSON で回答してく れる仕組みができる! 色の質問デモ ver.2 のポイント
Slide 52
Slide 52 text
回答精度をアップさせてしっかり JSON 回答できるようブラッシュアップ! 人間の言葉を理解 JSON データに 加工して回答 回答ジャンルは万能 (得手不得手はある) ブラッシュアップ! ブラッシュアップ!
Slide 53
Slide 53 text
他のシステムに馴染ませる調整の一例でした! ChatGPT さんは回答できるジャンルは万能だけど、あえてルールを決めて回答しやすく特化。 さらに JSON データに加工して回答してもらい、他のシステムにつなぎやすく。もう人間同士の対話っぽい。 人間の言葉を理解 JSON データに 加工して回答 ルールを決めて 回答しやすく特化 ブラッシュアップ! ブラッシュアップ! 人間の言葉を理解 人間の言葉で回答 回答ジャンルは万能 (得手不得手はある) ■ChatGPT の基本キャラクター ■他のシステムに馴染ませる調整(今回)
Slide 54
Slide 54 text
やっぱり ChatGPT でも IoT LEDチカチカさせてみたい!
Slide 55
Slide 55 text
obniz の LED システムに ChatGPT 経由で点灯命令してみます! さきほどの仕組みに obniz の LED 点灯をつないでみます!
Slide 56
Slide 56 text
それではやってみます!
Slide 57
Slide 57 text
さらにステップアップしたもの
Slide 58
Slide 58 text
こんな機能です ● {"type":"on"} ○ 機能 : LED がつく ○ セリフ : 「おんにして」 ● {"type":"off"} ○ 機能 : LED が消える ○ セリフ : 「おふにして」 ● {"type": "blink", "interval": 1, "count": 3} ○ 機能 : 3 回点滅する ○ セリフ : 「3回点滅して」
Slide 59
Slide 59 text
やってみます!
Slide 60
Slide 60 text
ChatGPT API を上手く組み込めました 人間の言葉を理解 JSON データに 加工して回答 ルールを決めて 回答しやすく特化 ブラッシュアップ! ブラッシュアップ! IoT 制御
Slide 61
Slide 61 text
入り口に音声認識を加えると より可能性が広がりました 人間の言葉を理解 JSON データに 加工して回答 ルールを決めて 回答しやすく特化 ブラッシュアップ! ブラッシュアップ! IoT 制御 なんらかの音声認識
Slide 62
Slide 62 text
HoloLens2 の音声認識から ChatGPT 経由の obniz への自然な呼びかけで指示できました 動画をお見せします!
Slide 63
Slide 63 text
こちらから動画も見れます https://twitter.com/1ft_seabass/status/1635135055503949829
Slide 64
Slide 64 text
すこしだけ料金の話 いろいろ情報が新しくなる昨今、計算が難しかったり有料・無料範囲がピンと来なかったりで 実際に使うときはご自分で調べていただいたほうが良いと思います~。
Slide 65
Slide 65 text
私も 3 ヶ月トライアルを大事に使ってましたが 最近越えたので課金しました https://help.openai.com/en/articles/4936830-what-happens-after-i-use-my-free-tokens-or-the-3-m onths-is-up-in-the-free-trial
Slide 66
Slide 66 text
いまの料金はこんな感じ 今後も変わると思うのであまり断言はできませんが https://openai.com/pricing
Slide 67
Slide 67 text
使いすぎると怖いので Usage limits を設定しました
Slide 68
Slide 68 text
➔ OpenAI の他の API (DALL·E とか Wisper とか) ◆ https://platform.openai.com/docs/guides/images ➔ センサー値+タイムスタンプの JSON データを与えてみた ら異常検知にも使えるかもしれない話 ➔ 地点に応じた日の出日の入りのデータを返すように作って いるが、なかなかうまくいかない話 ➔ 質問を多くするとテキスト量(トークン)多くなり悩み。 その点では GPT4 だとより質問作成負荷が下がる?話 エクストラ 時間があれば
Slide 69
Slide 69 text
異常検知ネタ
Slide 70
Slide 70 text
日の出・日の入りネタ
Slide 71
Slide 71 text
柴犬 API に自分で取って行ってもらうネタ 現状では自ら HTTP アクセスして答える機能はないみたい
Slide 72
Slide 72 text
➔ ChatGPT API を使うと Node-RED のようなサーバーなど と連携しやすくなる ➔ ChatGPT の特性も質問でうまく誘導すると IoT などに他 の仕組みに組み込みやすい JSON データの回答にできた ➔ 自然言語の理解がつよいので音声認識を加えるとより強力 になる ➔ 今回の案はあくまで一例だが質問次第で自分の仕組みに組 み込める可能性を感じた ➔ みなさんも是非 ChatGPT API 使ってみてください! まとめ