見出し画像

OpenAI の Function Calling を使って iOS アプリに天気予報プラグインを実装

上記の記事で課題となった「明日の天気」が上手く処理できない問題を解決した。プラグインがない標準の場合とプラグインがある場合の違いが分かるように動画を作成。入力の部分は編集しているが、API からの応答は編集していない実時間。今回は API 側の負荷が高い状態が続いたので応答が遅かった。gpt-3.5-turbo-0613のモデルを利用。

前回、上手く処理できなかった「明日の天気」にも対応できているのが分かる。これは、function に「今日」「明日」「その他」の日付情報を推測して設定してもらうパラメータを追加して解決した。チャットログは次のような内容。function_call のデータの "date":"tomorrow" が「明日」の日付情報となる。そのため、num_days が 1 でも実装した関数側で上手く処理できるようになった。


明日の天気の Function Calling の内容

次に週末までの天気予報である。前回は月曜日に実行したため、num_days の値が 5 であったが、今回は火曜日に実行したので、num_days は 4 となっていた。API 側でちゃんと計算して値を設定しているようだ。すごいな。
また、"date":"other" と「今日」でも「明日」でもない日付であると明示してくれている。この部分の推測用のパラメータを追加したら、処理が遅くなった気がするけど気のせいなのかな。


週末までの天気の Function Calling の内容

Function Calling を使った天気予報プラグインは期待通りの動作をするのが確認できた。あと二つほど Function Calling を使った iOS アプリ向けのプラグインを作って、ノウハウを溜めよう。

以下、補足。今回作成した Function Calling の function 内のproperties の parameter の description は、すべて英語で記述してある。元のサンプルコードが英語だったのもあるが、販売中のアプリ自体が国外も対象にしているからでもある。試しに description を日本語で記述して見たけど、日本語以外ではちょっと動作が微妙だった。Function Calling で期待通りのパラメータを返して欲しい場合は、description は英語で記述した方が良い気がする。翻訳も ChatGPT でできるからね。


この記事が気に入ったらサポートをしてみませんか?