Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ALGYAN ChatGPT研究会 第 3 弾

ALGYAN ChatGPT研究会 第 3 弾

ALGYAN ChatGPT研究会 第 3 弾「OpenAI 社の ChatGPT API の使ってみて考えたこと」の登壇資料です。

◆スライド内の素材は以下を使用させて頂いております。ありがとうございます!

・シルエットデザイン http://kage-design.com/
・human pictogram 2.0 http://pictogram2.com
・ICOOON MONO http://icooon-mono.com/
・Adobe Stock https://stock.adobe.com/jp

1ft-seabass
PRO

April 10, 2023
Tweet

More Decks by 1ft-seabass

Other Decks in Technology

Transcript

  1. ALGYAN ChatGPT研究会 第 3 弾
    OpenAI 社の ChatGPT API の使ってみ
    て考えたこと
    ワンフットシーバス 田中正吾

    View Slide

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

    View Slide

  3. 45 分くらいを目指してアレコレ話します
    のこり時間は質疑応答などで

    View Slide

  4. 田中正吾(たなかせいご)
    屋号:ワンフットシーバス
    2004年よりフリーランス。最近ではWEBフロン
    トエンドをベースにしながらも、情報とインター
    フェースが合わさるアプローチという視点でIoT
    やMixed Realityといった技術も取り入れながら
    活動しています。
    Microsoft MVP。IBM Champion。
    ウォンバットが好き。

    View Slide

  5. 画像生成 AI と何とか仲良くなりつつある近況
    Bing 画像生成でかわいいウォンバット画像を生成したら良いものも生成できつつあるメモ
    https://www.1ft-seabass.jp/memo/2023/04/08/microsoft-bing-image-creator-wombat-try/

    View Slide

  6. ChatGPT の私の印象
    人間の言葉(自然言語)で聞くと、うまく理解してくれて、かなりジャンルは万能に対応でき、
    人間の言葉(自然言語)で人間が分かるように返答してくれる仕組みあるいは相手
    人間の言葉を理解 人間の言葉で回答
    回答ジャンルは万能
    (得手不得手はある)

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  10. クラスメソッドさんの記事で言及があった
    「gpt-3.5-turbo」は小規模で速度が速く、比較的簡単な自然言語処理タスクに
    使用されることが多い点があります。とのこと。
    https://dev.classmethod.jp/articles/open-api-lambda-test/

    View Slide

  11. 簡単なデモを通して OpenAI 使ってみます!

    View Slide

  12. 2023/4/1 ごろの情報で進めます
    進化が目まぐるしいので違いがあったらご容赦

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  18. Chat の API の説明はこのあたり
    簡単に仕様をご紹介します。見やすい。
    https://platform.openai.com/docs/api-reference/chat/create

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  27. デモしてみます!

    View Slide

  28. ➔ ChatGPT API で Web 版のような応答ができる
    ➔ 少し応答を待つのは Web 版だと徐々に出てくるので緩和
    されて見えるが同じくらいっぽい
    ➔ おなじ質問も聞くたびに少しずつ変わって面白い
    ウォンバット質問デモのポイント

    View Slide

  29. ChatGPT はこういったカジュアルな質問も
    良い感じに答えてくれる
    人間の言葉を理解 人間の言葉で回答
    回答ジャンルは万能
    (得手不得手はある)

    View Slide

  30. ところで、なぜ ChatGPT API をつかうの?

    View Slide

  31. API の使う理由の一つとして
    プライバシーが保たれるので使ってます
    OpenAIのAPIを利用する場合、オプトインしない限りユーザーが送信したデータが
    学習に利用されることはない、と改定されました。とのこと。
    https://dev.classmethod.jp/articles/openai-data-usage-policy/

    View Slide

  32. Web 版での「自然言語で答えてくれる」ことが
    他の IT な仕組みに入れにくい悩ましさがある
    これを事例に話します

    View Slide

  33. 一見いいように素敵な回答見えるんですが
    ここからコピーしてペーストして使う手間がある
    つまり人間の目視でうまーくコピーアンドペーストして取り出す

    View Slide

  34. このように API 経由でデータをもらえれば
    活用しやすくなるので注目してます

    View Slide

  35. さらに IT の仕組みに ChatGPT を
    なじませるアプローチ!

    View Slide

  36. さきほどのように返答されても
    他で扱うためには加工や抽出が重要
    JSON で返してくれた方が扱いやすいはず

    View Slide

  37. 人間の言葉で返される特性は
    チャットには良いがシステムに組み込みにくい
    「人間の言葉で回答」部分をうまくブラッシュアップしてみます!
    人間の言葉を理解 人間の言葉で回答
    回答ジャンルは万能
    (得手不得手はある)

    View Slide

  38. ChatGPT API でも Web 版でも
    共通に大事なのは良い質問をつくること
    プロンプトをうまく組んでみる

    View Slide

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

    View Slide

  40. いざデモしてみます!
    さきほどの質問を API で聞いてみる

    View Slide

  41. ➔ 人間の言葉で回答というのがシステムに組み込みにくいの
    で JSON データで返すようにして親和性を高めた
    ➔ ちゃんと JSON 例を質問の中で明示すれば ChatGPT は理
    解してくれて返答してくれました。「人間の言葉を理解」
    の特性がうまく効いてる。
    ➔ JSON の回答をした上で、聞きたいことの値をうまく返答
    してくれました。
    JSON 縛り質問デモのポイント

    View Slide

  42. ChatGPT はこちらの質問やルール次第で
    回答も JSON に合わせてくれました
    人間の言葉を理解
    JSON データに
    加工して回答
    回答ジャンルは万能
    (得手不得手はある)
    ブラッシュアップ!

    View Slide

  43. 次は万能な回答能力をルールを決めて
    絞り込むことで回答精度アップ!
    人間の言葉を理解
    JSON データに
    加工して回答
    回答ジャンルは万能
    (得手不得手はある)
    ブラッシュアップ!

    View Slide

  44. 回答精度をより実用へ目指してみたら
    もどかしい部分もありました
    LED へ設定する RGB 値を JSON データで返答し HTTP API 的に ChatGPT が答えてくれる質問例のメモ
    https://www.1ft-seabass.jp/memo/2023/03/14/chatgpt-http-api-like-json-response-tips2/

    View Slide

  45. このナレッジでフロー作りました

    View Slide

  46. template ノードで「赤」などと指定された言葉を
    質問文に埋め込んで使っています

    View Slide

  47. それではやってみます!

    View Slide

  48. ➔ しっかり質問を定義すれば、柔軟に返してくれる
    ➔ ただし、おなじ質問でも、少し違うカラーを返してくれる
    ことがあっておもしろい
    ➔ 例外についてはたまに JSON 縛りを忘れてしまうことが
    あっておもしろいけど、JSON データ壊れちゃうのでやめ
    てほしいw
    色の質問デモ ver.1 のポイント

    View Slide

  49. さらにブラッシュアップしたものがこちら!
    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/

    View Slide

  50. このナレッジでデモしてみます!

    View Slide

  51. ➔ ルール・返答する JSON データ・返答前にチェック!とい
    う見出しでお願いを分かりやすくするとより通じる
    ➔ 例外処理を明確にお願いすることで説明文を加えないよう
    に誘導できる
    ➔ 説明を入れる値を入れるお願いを明確にすることで説明文
    を加えないように誘導できる
    ➔ 質問をチューニングすると、ちゃんと JSON で回答してく
    れる仕組みができる!
    色の質問デモ ver.2 のポイント

    View Slide

  52. 回答精度をアップさせてしっかり
    JSON 回答できるようブラッシュアップ!
    人間の言葉を理解
    JSON データに
    加工して回答
    回答ジャンルは万能
    (得手不得手はある)
    ブラッシュアップ!
    ブラッシュアップ!

    View Slide

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

    View Slide

  54. やっぱり ChatGPT でも
    IoT LEDチカチカさせてみたい!

    View Slide

  55. obniz の LED システムに
    ChatGPT 経由で点灯命令してみます!
    さきほどの仕組みに obniz の LED 点灯をつないでみます!

    View Slide

  56. それではやってみます!

    View Slide

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

    View Slide

  58. こんな機能です
    ● {"type":"on"}
    ○ 機能 : LED がつく
    ○ セリフ : 「おんにして」
    ● {"type":"off"}
    ○ 機能 : LED が消える
    ○ セリフ : 「おふにして」
    ● {"type": "blink", "interval": 1, "count": 3}
    ○ 機能 : 3 回点滅する
    ○ セリフ : 「3回点滅して」

    View Slide

  59. やってみます!

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  64. すこしだけ料金の話
    いろいろ情報が新しくなる昨今、計算が難しかったり有料・無料範囲がピンと来なかったりで
    実際に使うときはご自分で調べていただいたほうが良いと思います~。

    View Slide

  65. 私も 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

    View Slide

  66. いまの料金はこんな感じ
    今後も変わると思うのであまり断言はできませんが
    https://openai.com/pricing

    View Slide

  67. 使いすぎると怖いので
    Usage limits を設定しました

    View Slide

  68. ➔ OpenAI の他の API (DALL·E とか Wisper とか)
    ◆ https://platform.openai.com/docs/guides/images
    ➔ センサー値+タイムスタンプの JSON データを与えてみた
    ら異常検知にも使えるかもしれない話
    ➔ 地点に応じた日の出日の入りのデータを返すように作って
    いるが、なかなかうまくいかない話
    ➔ 質問を多くするとテキスト量(トークン)多くなり悩み。
    その点では GPT4 だとより質問作成負荷が下がる?話
    エクストラ
    時間があれば

    View Slide

  69. 異常検知ネタ

    View Slide

  70. 日の出・日の入りネタ

    View Slide

  71. 柴犬 API に自分で取って行ってもらうネタ
    現状では自ら HTTP アクセスして答える機能はないみたい

    View Slide

  72. ➔ ChatGPT API を使うと Node-RED のようなサーバーなど
    と連携しやすくなる
    ➔ ChatGPT の特性も質問でうまく誘導すると IoT などに他
    の仕組みに組み込みやすい JSON データの回答にできた
    ➔ 自然言語の理解がつよいので音声認識を加えるとより強力
    になる
    ➔ 今回の案はあくまで一例だが質問次第で自分の仕組みに組
    み込める可能性を感じた
    ➔ みなさんも是非 ChatGPT API 使ってみてください!
    まとめ

    View Slide