2023/06/18【ブース出展もあるよ】IoT縛りの勉強会! IoTLT vol.100 @ #NT金沢
ChatGPTの新機能「Function calling」を試してみたKMiura(@k_miura_io)
View Slide
自己紹介• 三浦 耕生(こうき)• 自動運転のスタートアップのエンジニア• JAWS UG名古屋運営@k_miura_io koki.miura05
祝・IoT LT 100回
ChatGPT使ってますか?• それまでのAIチャットと違ってテキスト以外にもソースコードを生成することができるのでエンジニアにも重宝されている• リリースされてから半年たっても日々進化し続けている• 無料でも割と精度高く返答される(無課金なのでGPT-4は未検証)
ChatGPTにはAPIが存在する• APIを使えば自分のシステムに入れることで自前のアプリケーションに簡単にChatGPTを導入できる• PythonやNode.jsのSDKも提供されている• 無料でトライアルから始めることができる
ベタな事例やっぱりチャットといえばLINE
ChatGPT Plugin• いろんなサービスがサードパーティのプラグインを提供している• スマートスピーカーで言うところのスキルみたいなもん?• ChatGPT Plusのユーザーが優先的に使える
自分でも機能拡張したい
Function calling• 6/13にリリースされた新機能• メッセージの内容をもとに予め用意した関数を呼び出すために必要な引数をJSONオブジェクトを生成する機能• 関数を呼び出すために必要なデータ構造を定義すると確実に関数を呼び出すために必要なデータを取り出せる
LINE botに実装してみた• 指定した場所の天気を尋ねるLINE bot• 指定した都市の天気をAPIから取得している• 天気以外は普通にChatGPTが返答する
DEMO
1回目のAPIリクエスト• 入力のパラメータと型を指定することでそれをもとに入力されたメッセージを解析してくれる• 解析した内容を関数の入力に使用する• ある程度意味のあるプロパティー名を指定することで意図した名前が取得できる• Enumも定義できるhttps://openai.com/blog/function-calling-and-other-api-updates
2回目のリクエスト• 1回目のリクエストによってfuncitonsに定義した解析モデルにより取得した値をもとに関数を実行した結果をリクエストに追加する• 関数の出力を ”role”: “function”の値として入力することでその入力値をよしなにレスポンスに変換してくれるhttps://openai.com/blog/function-calling-and-other-api-updates
まとめ• ChatGPTの新機能Function Callを使えば自前のアプリのための機能拡張を簡単に作ることができる• 関数の入力、出力をJSONでやり取りすることであとはよしなに返答を作ってくれる• ある程度プログラミングセンスが問われる(AIに寄り添おう)
宣伝https://machine-learning.connpass.com/event/284031/
ちょっとだけ展示物紹介• IoTLTブースにてマスクをつけている人を識別するシステムを展示中• Vol.71のLTで発表した内容のイベント向けデモ• マスクを付けている人も付けてない人も是非お試しを!https://bit.ly/42JrIEI↑ ProtoPedia
END