見出し画像

ChatGPT APIの回答を元に適切な処理を行うfunction callingについての基礎知識(初心者向け)

ChatGPT APIを利用する時にGPTから返ってきた回答を元に、次の処理を行わせたい場合があります。そのような時に使えるのが、function callingという機能です。
この記事では、背景知識としての一般的なITシステムの仕組みの説明も含めて、function callingの基本的な説明を行います。

一般的なAPI呼び出しとCallbackの概要

まず、一般的なAPI(Application Programming Interface)呼び出しとCallback(コールバック)関数について理解することが重要です。

呼び出しに応じて、天気や株価情報を返してくれる(Web)APIがあるとします。(Web)APIから返ってきたレスポンス(回答)を元にCallback関数が呼び出され処理を行います。

例えば、レスポンスに含まれる株価情報がデータのみの場合、それを元にCallback関数でグラフを描画して、画面に表示したりします。

Callback関数は1つとは限りません。レスポンスの内容に応じて呼び出すCallback関数を切り替えることも出来ます。
あるいは、呼び出したCallback関数内で、どの機能を次に呼び出すかの判断を行うようにします。

下の図は、(Web)APIを呼び出して、返ってきたレスポンスを元に処理を行う一般的なフロー図です。

  • API呼び出し: アプリケーションが外部サービスに対して何らかの操作を要求します。

  • APIサーバー: 外部サービスがその要求を受け取り、必要な処理を行います。

  • レスポンス: 処理が完了した後、結果がアプリケーションに返されます。

  • Callback関数: レスポンスを受け取った後、特定の関数(コールバック関数)が自動的に実行されます。

  • 結果の処理: コールバック関数内でレスポンスに基づいた処理が行われます。

ChatGPT APIのFunction Calling

ChatGPT APIのfunction calling機能は、この一般的なコールバック処理をさらに拡張したものです。この機能を使うと、API呼び出し時に特定の関数定義を渡すことができます。そして、ChatGPTからのレスポンスには、どの関数をコールバックとして使用すべきかの情報が含まれます。

通常のAPIにおけるCallback関数の処理との違いは、どのCallback関数を呼び出すかの判断をChatGPT側に任せられる、という点です。

つまり、通常のプログラミングでは、判断させるのが難しい(条件分岐の設定が難しい)文章の内容(文脈や含まれる情報)に基づいて、どのようなCallBack関数を使用するかを判断させることが出来る、というのが、ChatGPT APIのfunction calling機能の大きなメリットです。

使い方の例

  1. 関数定義の送信: APIリクエストを作成する際に、特定の関数(例:getWeatherInfo)の定義を渡します。

  2. レスポンスの受信: ChatGPTからのレスポンスには、コールバックとして使用すべき関数(例:getWeatherInfo)の情報が含まれます。

  3. 関数の実行: レスポンスをパースして、指定された関数(getWeatherInfo)を実際に呼び出します。

このように、function calling機能を使用することで、ChatGPT APIをより柔軟に活用することが可能です。


いいなと思ったら応援しよう!