$30 off During Our Annual Pro Sale. View Details »

20230614_AI捻じ伏せプロンプト選手権 〜言うこと聞いてよLLM2023〜

20230614_AI捻じ伏せプロンプト選手権 〜言うこと聞いてよLLM2023〜

AI捻じ伏せプロンプト選手権 〜言うこと聞いてよLLM2023〜「OpenAI 社 ChatGPT API に JSON データをお願いする試行錯誤とその先に見えたこと」の登壇資料です。

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

・シルエットデザイン 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

June 26, 2023
Tweet

More Decks by 1ft-seabass

Other Decks in Technology

Transcript

  1. 20230614_AI捻じ伏せプロンプト選手権 〜言うこと聞いてよLLM2023〜
    OpenAI 社 ChatGPT API に JSON データを
    お願いする試行錯誤とその先に見えたこと
    ワンフットシーバス 田中正吾

    View Slide

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

    View Slide

  3. 10 分くらいで話します!

    View Slide

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

    View Slide

  5. MR と IoT の間を ChatGPT が
    良き接着剤になったけど割と捻じ伏せてる話
    HoloLens2 ChatGPT API IoT (obniz)

    View Slide

  6. 実際のデモ
    最近はこれに手合わせ詠唱をきっかけにする仕組みを導入
    https://twitter.com/1ft_seabass/status/1635135055503949829

    View Slide

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

    View Slide

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

    View Slide

  9. こんな内容
    オン・オフ・点滅に応じたお願いをしている。 {{payload.message}} に発言した言葉が入る

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  13. Node-RED で HoloLens 2 の音声認識を受けて
    ChatGPT で IoT を動かす JSON を連携する仕組み

    View Slide

  14. こんなプロンプトです
    事前に条件を設定できる system 値に置き換えてもいいやつですが、今は質問文に含めてる

    View Slide

  15. これが最初のきっかけ
    いい感じのエアコン設定温度を JSON データで返答し HTTP API 的に ChatGPT が答えてくれる質問例のメモ
    https://www.1ft-seabass.jp/memo/2023/03/13/chatgpt-http-api-like-json-response-tips1/

    View Slide

  16. いろいろと試行錯誤した結果がこちら
    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

  17. 今回用にできあがったもの
    さっきのは RGB カラーを渡すものだが、今回のは照明のオンオフに特化したもの

    View Slide

  18. まだまだ試行錯誤が必要なところ

    View Slide

  19. いつもしゃべってテスト大変なので
    LINE BOT なりでテキストでテストするの大事

    View Slide

  20. 浮き彫りになったヤバい応答
    一文のなかに 2 つの指示が混ざると空気を読みすぎて謎の配列編返答をしてくれる。すごいけど、こまる。

    View Slide

  21. Function calling の登場で
    JSON 指定はよりやりやすくなりそうな気配
    この記事がわかりやすい
    https://dev.classmethod.jp/articles/understand-openai-function-calling/

    View Slide

  22. 別ネタで試してみてうまくいきそう!
    色名を聞くと RGB 値を JSON データで返答する仕組みを新機能 Function calling を導入したメモ
    https://www.1ft-seabass.jp/memo/2023/06/19/chatgpt-http-api-like-json-response-tips-with-node-
    red-using-function-calling/

    View Slide

  23. 今回の仕組みもやってみました!
    もともとの仕組みをつなぎかえます

    View Slide

  24. Function calling の仕組みをつくりました

    View Slide

  25. フローをつけかえて試してみます

    View Slide

  26. ON の Function calling の設定
    OFF の設定も同じアプローチ。固定値の指示が通ってる。

    View Slide

  27. 点滅時の Function calling の設定
    1 秒 とか 5 回は内容に応じてちゃんと入れてくれる。3 回点滅なら count に 3 が入る

    View Slide

  28. 該当なしの Function calling の設定

    View Slide

  29. 質問内容は Function calling の命令名で
    振り分けるところを担当する
    3. のお願いはしっかり練った。雑なお願いだとスルーされる場合はある。

    View Slide

  30. オンにして、オフにして、3 回点滅して
    しっかり動いてくれました
    確実に JSON が返ってくるという安心感がすごい

    View Slide

  31. 「オンにして. オフにして. 」でも
    ちゃんと冒頭のオンをとらえてオブジェクトくれる
    さっきだと謎の配列で返してたのが、賢く返してくれるし、JSON でくる。

    View Slide

  32. 「おんおふよろしく」だと
    else で逃がしてくれる確率が高まった
    ほぼ 100% !

    View Slide

  33. 時間があればデモもやってみます!

    View Slide

  34. JSON データお願い系で使うパワー
    Function calling 以前と登場後で比較してみる。こんな要素がある。
    基本的な指示設計
    (JSON 以外)
    JSON定義指示 念押し指示

    View Slide

  35. Function calling 以前の
    がちがち JSON データお願い系のプロンプト
    いろいろ考えてお願いする。最大魔法を撃ち続けてる感じ。消耗するw
    基本的な指示設計
    (JSON 以外)
    JSON定義指示 念押し指示
    登場
    以前
    40 40 20

    View Slide

  36. Function calling で行う
    安心感ある JSON データお願い系のプロンプト
    JSON を出させるいろいろがなくなっていい感じ!ねじ伏せ度が下がった!100 → 50 半減。わーい。
    基本的な指示設計
    (JSON 以外)
    JSON定義指示 念押し指示
    登場
    以前
    40 40 20
    30 20 0

    View Slide

  37. いろいろやりやすくなってうれしい!

    View Slide

  38. ➔ ChatGPT に JSON データをお願いする試行錯誤をするこ
    とで、IoT や VR など他の技術につながりやすくなる
    ➔ Function calling 以前は JSON データをしっかりもらうに
    は結構がんばる必要があり、作りやすさ・確実さの面で大
    変だった
    ➔ Function calling により確実に JSON データを受け取れて
    データ定義ができるので、だいぶやりやすくなった
    ➔ その結果、大変さは軽減され、つくるパワーを他の制作面
    に振り向けれそうでワクワクする!つなげていこう!
    まとめ

    View Slide