Slide 1

Slide 1 text

ChatGPTの新機能「Function calling」 を試してみた KMiura(@k_miura_io)

Slide 2

Slide 2 text

自己紹介 • 三浦 耕生(こうき) • 自動運転のスタートアップのエ ンジニア • JAWS UG名古屋運営 @k_miura_io koki.miura05

Slide 3

Slide 3 text

祝・IoT LT 100回

Slide 4

Slide 4 text

ChatGPT使ってますか? • それまでのAIチャットと違ってテキスト以外 にもソースコードを生成することができる のでエンジニアにも重宝されている • リリースされてから半年たっても日々進化 し続けている • 無料でも割と精度高く返答される(無課金 なのでGPT-4は未検証)

Slide 5

Slide 5 text

ChatGPTにはAPIが存在する • APIを使えば自分のシステムに入れること で自前のアプリケーションに簡単に ChatGPTを導入できる • PythonやNode.jsのSDKも提供されている • 無料でトライアルから始めることができる

Slide 6

Slide 6 text

ベタな事例 やっぱりチャットといえばLINE

Slide 7

Slide 7 text

ChatGPT Plugin • いろんなサービスがサードパーティのプラ グインを提供している • スマートスピーカーで言うところのスキル みたいなもん? • ChatGPT Plusのユーザーが優先的に使 える

Slide 8

Slide 8 text

自分でも機能拡張したい

Slide 9

Slide 9 text

Function calling • 6/13にリリースされた新機能 • メッセージの内容をもとに予め用意した関 数を呼び出すために必要な引数をJSON オブジェクトを生成する機能 • 関数を呼び出すために必要なデータ構造 を定義すると確実に関数を呼び出すため に必要なデータを取り出せる

Slide 10

Slide 10 text

LINE botに実装してみた • 指定した場所の天気を尋ねるLINE bot • 指定した都市の天気をAPIから取得している • 天気以外は普通にChatGPTが返答する

Slide 11

Slide 11 text

DEMO

Slide 12

Slide 12 text

1回目のAPIリクエスト • 入力のパラメータと型を指定することでそれを もとに入力されたメッセージを解析してくれる • 解析した内容を関数の入力に使用する • ある程度意味のあるプロパティー名を指定す ることで意図した名前が取得できる • Enumも定義できる https://openai.com/blog/function- calling-and-other-api-updates

Slide 13

Slide 13 text

2回目のリクエスト • 1回目のリクエストによってfuncitonsに定義し た解析モデルにより取得した値をもとに関数を 実行した結果をリクエストに追加する • 関数の出力を ”role”: “function”の値として 入力することでその入力値をよしなにレスポン スに変換してくれる https://openai.com/blog/function- calling-and-other-api-updates

Slide 14

Slide 14 text

まとめ • ChatGPTの新機能Function Callを使えば自前のアプリのための機能拡張を簡単に作 ることができる • 関数の入力、出力をJSONでやり取りすることであとはよしなに返答を作ってくれる • ある程度プログラミングセンスが問われる(AIに寄り添おう)

Slide 15

Slide 15 text

宣伝 https://machine-learning.connpass.com/event/284031/

Slide 16

Slide 16 text

ちょっとだけ展示物紹介 • IoTLTブースにてマスクをつけている人を識別 するシステムを展示中 • Vol.71のLTで発表した内容のイベント向けデモ • マスクを付けている人も付けてない人も是非お 試しを! https://bit.ly/42JrIEI ↑ ProtoPedia

Slide 17

Slide 17 text

END