koboriakira.com

原宿ぽむ選手撮影の「ぽむとれーと」が届いた。被写体は坂崎ユカ選手。たかがポートレート、なんて思ってた時期が私にもありました。


function callingの実装

今日は1日かけてFunction Callingの実装を試す。あとで絶対にブログに書こうと思うけど、すこしメモを。

たとえば「今日の天気を教えて」みたいな命令をしたいとき、ChatGPTは今日の天気情報を持っていないし、そもそも「今日」が何日かも知らない。

このような「まだできないこと」を補完してあげられるのがfunction callingなのでは、という理解。

ゆえに、

  • 今日の日付を取得する
  • 指定された天気を調べるAPIを呼び出す

という2つの関数をfunction callingとして利用できるようにする。そうすると、次のような感じでAIが処理してくれる

AIの処理イメージ

今日の天気を教えてほしい

まず今日の日付を知りたいから、今日の日付がわかる関数を呼び出そう…今日は2023年8月27日なのか。

2023年8月27日の天気を教えてほしい

この日の天気に関する情報は、天気を調べるAPIを呼び出せばよさそうだ。日付は2023年8月27日…JSON形式のデータが得られたぞ。

2023年8月27日の天気を教えてほしい。天気の情報は{JSON形式のデータ}を参照。

これなら返答できるな。返答しよう。

感想

このとき大事なのは「今日の天気を取得する関数」を作ってはいけないのだろう、ということ。通常の設計と同様に、無駄な依存関係は省くべきだ(※そのうえで複数のfunctionをまとめて利用したいケースはあるかも、と思っている)。

このあと画像生成のfunctionも追加したことで、「今日の天気をイラストで表して」みたいなことも回答してくれるようになった。

これの凄いところは、自分しか欲しくない機能を自分で作れるところだと思う。

たとえばNotionで管理しているデイリーログのページに何かを追加してほしい。そのための関数をOpenAIが用意してくれることはありえない。でも自身で実装することは簡単にできる。

前に「多くの情報をひとつに集めることが重要」と書いたけれど、さらにその確信を深めた。せめてAPI経由ですべての情報にアクセスできるべきだ。「めちゃくちゃ便利だし内部にAI機能も設けられているけれど、外部サービスと自由に連携できない」というサービスは、すくなくともAI目線ではもう使い物にならないサービスになるかもしれない。

※今日の天気を表したイラスト。プロンプトさえ改善すれば、結構いい感じになるのではと夢見ている。

2023 08 27


Kobori Akira

IT業界の社会人。最近はプロレスと音楽の話題が多め。
読む価値のある記事は Qiitanote に投稿します。
過去人気だったブログ記事はこちらから。