Slide 1

Slide 1 text

AI彼女の感情制御を頑張る話 @kokushing AI捻じ伏せプロンプト選手権 〜言うこと聞いてよLLM2023〜

Slide 2

Slide 2 text

自己紹介 Yusuke Ishiguro (こくしん) 株式会社メイクリー Co-Founder 得意: Webフロントエンド領域 趣味: 一人ハッカソン 最近はAIイラスト, 合成音声技術を研究中 Twitter: @kokushing

Slide 3

Slide 3 text

AI彼女について

Slide 4

Slide 4 text

ChatGPT×Live2Dを用いたブラウザで動く対話型アプリ Next.js+Vercelで実装 PWA対応 https://ai-girl.app/

Slide 5

Slide 5 text

一つ大きな問題が...

Slide 6

Slide 6 text

No content

Slide 7

Slide 7 text

返答と感情が一致していない😭 ※現状、ランダムでモーションを再生しているため

Slide 8

Slide 8 text

このままだとUXが良くないため、感情の制御を行う どう実装するか? Natural Language API や kuromoji.js などを用いてネガポジ判定を行う? でも料金/実装コストがかかりそうだし、レスポンス速度が落ちそう...

Slide 9

Slide 9 text

ChatGPTに感情を出力してもらおう!

Slide 10

Slide 10 text

JSON形式で返却するように指定してみる { role: "system", content: ` ... キャラ設定 ... また、セリフの感情を判断して、ポジティブなら 1、ネガティブなら-1を 下記のJSONフォーマットで出力してください { "emotion": "" } ` }

Slide 11

Slide 11 text

No content

Slide 12

Slide 12 text

No content

Slide 13

Slide 13 text

なんかいけそう?と思ったが... ● JSON形式で返してくれない (よく見たらオブジェクト...) ● 指定したプロパティや値で返してくれない ● そもそもメッセージだけでJSONを返してくれない

Slide 14

Slide 14 text

どうしよ〜🤔と悩んでいた頃...

Slide 15

Slide 15 text

Function calling 爆誕!

Slide 16

Slide 16 text

Function calling とは? ● ユーザが入力した内容に応じて、任意の関数を実行できる機能 → 返答に関数呼び出しが必要とGPTが判断した場合に実行される → 外部APIとの連携処理などを簡単に組み込める ● サードパーティ製に頼らず、OpenAI純正のAPIとして実装できる ● 現状 gpt-3.5-turbo-0613 及び gpt-4-0613 モデルでのみ利用可能

Slide 17

Slide 17 text

簡単な図解 「明日の天気教えて」 (アカン...これはAPIで取得せな...) 「明日は晴れです」 「晴れやで」 「やったぜ」 GPT 天気API ユーザ Function calling !!

Slide 18

Slide 18 text

Function calling 使って AI彼女の返答と感情を JSON形式で取得してみる

Slide 19

Slide 19 text

Function callingでJSON形式の結果を得るには ポイントは2つ 1. createChatCompletion の function_call に関数名を直接指定する → デフォルトは "auto" (GPTが関数呼び出しを判断する) → 直接関数名を指定することで、必ず呼び出すことができる function_call: { name: "getMessageAndEmotion" } 2. GPTがFunction callingを行うと function_call オブジェクトをJSON形式(string)で 取得できるため、JSON.parseしてそのまま返答として利用する

Slide 20

Slide 20 text

関数はこんな感じ

Slide 21

Slide 21 text

関数が呼ばれた結果 ※ createChatCompletion のレスポンス内容

Slide 22

Slide 22 text

クライアント側でのレスポンス結果 ※ emotion: 1 は「喜」の感情

Slide 23

Slide 23 text

JSON形式で取得できた👏

Slide 24

Slide 24 text

他の感情も問題なさそう

Slide 25

Slide 25 text

あとはLive2Dと連携すれば...

Slide 26

Slide 26 text

No content

Slide 27

Slide 27 text

素敵な笑顔が見れました!

Slide 28

Slide 28 text

Thank You 🙏 ご清聴ありがとうございました。 メイクリーではAI×サブカルチャー領域での お仕事を募集しております! ご相談は @kokushing まで DMお待ちしてます!