LangCore

開発ノウハウ

【デモ付き】ChatGPT Function Callingの使い方

公開日|2023.9.15

概要

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は応用範囲が広く、既存のシステム連携だけではなく幅広い活用方法があります。弊社でも多数の活用事例がありますので、気になる方はお問い合わせください。

AIで自動化したい
業務について、
お気軽に
ご相談ください。

生成AIシステムや
AIエージェントの構築について、
対象業務の整理から実装方法まで
ご相談いただけます。