概要Function Callingは名前からどうしても「関数を実行してくれる機能」と誤解されるケースがありますが、実態としては少し違います。確かに、ChatGPT Pluginsのような外部のAPIを活用して回答を作成する機能を作るのにFunction Callingは利用されますが、Function Calling自体に外部APIを実行する機能はありません。では、Function Callingは何をやってくれるのかと言いますと、大きく分けますと、2つのことを実施してくれます。会話履歴からこちらの定めたフォーマットのJSONを構築会話履歴からChatGPTが考える適切なタイミングで実行デモ上記の二つの振る舞いをデモを通して確認してみましょう。デモURL: https://langcore-function-calling.streamlit.app/json-extractorソースコードこちらの定めたフォーマットのJSONの構築デモでは自由記述の文章から、最低月収と最高月収を抽出するタスクを想定しています。取り出したいJSON定義に、フォーマットを定めています。単位等も自然言語で記載しています。自由記述の文章は「この求人は月収20万円から50万円です」と記載されているので、最低月収200000, 最高月収500000と抽出され、カラム名が最低月収はminimum_monthly_salaryそして最高月収はmaximum_monthly_salaryになっていれば成功です。実際に実行してみましょう。上手くいきました!このようにこちらの定めたフォーマットで正しい数値が抽出できています。もう一つやってみましょう。今度は年収で記述します。自由記述では年収で記述していましたが、指定したフォーマットは月収だったので、ChatGPTによって月収に変換をしてくれています。このように、自由記述の文章からこちらの定めたフォーマットのJSONを抽出することができます。ChatGPTが考える適切なタイミングで実行では次に、ChatGPTが考える適切なタイミングで実行されるのを見てみましょう。先ほどの例では、自由記述の中に月収についての記載がありました。ここで全く関係ない挨拶をしたらどうなるでしょうか?すると、Function Callingは呼ばれず、通常のChatGPTの回答が返ってきました。このようにFunction Callingを呼び出すべきタイミングをChatGPT自身がよしなに決めてくれるという特徴もあります。これによって、ユーザが欲した適切なタイミングで適切なFunction Callingが呼ばれる仕組みを構築することができます。まとめいかがだったでしょうか?Function Callingは応用範囲が広く、既存のシステム連携だけではなく幅広い活用方法があります。弊社でも多数の活用事例がありますので、気になる方はお問い合わせください。