function Callingとは?GPTアップデートでの関数呼び出し機能アップ

function Callingとは?GPTアップデートでの関数呼び出し機能アップ

初めてAIチャットボットに触れた際の優秀さの一つに、「自分で調べてくれる」ことだと思った人は多いのではないでしょうか。

その機能について簡単に調べました。

Function calling(関数呼び出)とは

Function callingとは、OpenAIの言語モデルが外部のツールやAPIと連携するために、開発者が定義した関数を自然言語で呼び出すことです。

Function callingを使うと、言語モデルは、外部ツールを使って質問に回答したり、データベースを検索したり、テキストから構造化データを抽出したりすることができます。この機能はOpenAIのGPT-4やGPT-3.5などの言語モデルに対応しており、関数のシグネチャ(データ)に沿ったJSONレスポンス(テキストでの返事)を生成することができます。Function callingによって、言語モデルはより多機能になり、現実世界の複雑な課題に取り組むことができるようになります。

具体例

Function callingの具体的な例としては、以下のようなものがあります。

  • ユーザーが「メールを送信して、Anyaに来週の金曜日にコーヒーを飲みたいかどうか聞いて」というクエリを入力すると、言語モデルは、send_email (to: string, body: string)という関数呼び出しに変換し、OpenAIから返されたJSONレスポンスを使ってメールを送信する。
  • ユーザーが「東京の今日の天気を教えてください」というクエリを入力すると、言語モデルは、get_weather_info (city: string)という関数呼び出しに変換し、OpenAIから返されたJSONレスポンスを使って天気情報を表示する。
  • ユーザーが「織田信長について10文字で答えよ」というクエリを入力すると、言語モデルは、chatgptという関数呼び出しに変換し、OpenAIから返されたJSONレスポンスを使って回答を生成する。

最新のGPTのアップデート

最新のGPTのアップデートで、Function callingの機能が強化されました。具体的には、以下のような点が改善されています。

ひとつのプロンプトで複数の関数を呼び出すことができるように

例えば、「クルマの窓を開けて エアコンをオフに」というクエリを入力すると、言語モデルはopen_window()とturn_off_ac()という関数を同時に呼び出して、両方の操作を実行できます。

関数変換の正確性UP

関数のパラメーターをより正確に認識して返すことができるようになりました。

例えば、「メールを送信して、Anyaに来週の金曜日にコーヒーを飲みたいかどうか 聞いて」というクエリを入力すると、言語モデルはsend_email(to: “Anya”, body: “Hi, do you want to have coffee with me next Friday?”)という関数呼び出しに変換して、正しい宛先と本文を指定できます。

JSONモードが導入

JSONモードが導入され、JSONで細かい指示を出せるようになりました

JSONモードでは、モデルが有効なJSONを応答することを保証します。例えば、「東京の今日の天気を教えてください」というクエリを入力すると、言語モデルはget_weather_info(city: “Tokyo”)という関数呼び出しに変換して、以下のようなJSONレスポンスを返します4

JSONAI で生成されたコード。

{
  "city": "Tokyo",
  "date": "2023-11-11",
  "weather": "Sunny",
  "temperature": 18,
  "humidity": 55,
  "wind": 5
}

以上が、最新のGPTのアップデートで、Function callingの機能が強化された方法についての説明です。Function callingは、言語モデルが外部のツールやAPIと連携して、より多機能になり、現実世界の複雑な課題に取り組むことができるようになる技術です。