【ふぁんくしょんこーりんぐ】

Function Calling(ファンクションコーリング) とは?

最終更新:
💡 AIに「電話をかける力」を与える仕組み

LLMが関数名と引数を返し、アプリケーション側がその関数を実行する連携の仕組み。外部APIやデータ検索の結果をモデルへ渡し、回答づくりに使える。

📌 このページのポイント
指示を返すモデル、実行するアプリ アプリ側 モデル側 ① 質問+関数定義 ② 関数名+引数 ④ 実行結果 ⑤ 回答/再要求 実行を管理 LLM 指示を返す 関数・外部API ③ アプリが実行 結果を受け取る
矢印は情報の受け渡し。①→②→③→④→⑤の例で、アプリが関数を実行し結果をモデルへ渡す。モデルが直接APIを実行する図ではない。実行前の入力・権限確認やエラー処理もアプリが担う。
ひよこ ひよこ
Function Callingって、AIが勝手にプログラムを動かすってこと?
ペンギン先生 ペンギン先生
モデルが「この関数をこの引数で呼んでほしい」と返し、アプリ側が実行する仕組みだよ。レストランなら、注文を伝える係と料理を作るキッチンの役割を分けるようなもの。呼び出し指示だけで外部APIの実行が終わったわけではないんだ。
ひよこ ひよこ
どうやってAIに関数のことを教えるの?
ペンギン先生 ペンギン先生
名前、説明、引数の形式などを定義してリクエストへ添えるよ。OpenAIの関数ツールでは引数の形式をJSON Schemaで定める。モデルは定義や質問に基づいて呼び出しを返すけど、必ず意図どおりの関数や値を選ぶとは限らないんだ。
ひよこ ひよこ
具体的にはどんな場面で使うの?
ペンギン先生 ペンギン先生
たとえば仮のget_weather関数なら、東京を指定する引数をモデルが返し、アプリが天気APIへ問い合わせる。その結果をモデルへ渡すと、自然な文で回答できるね。データベースの検索や業務処理との連携にも使えるよ。
ひよこ ひよこ
引数の形式を決めれば間違いはなくなるの?
ペンギン先生 ペンギン先生
OpenAIのstrictモードは、対応するスキーマに沿った呼び出しを返すための機能だよ。でも、場所や日付がユーザーの意図に合うか、処理を許可してよいかまでは別の問題。アプリ側で値や権限、実行エラーの扱いを確認する必要があるんだ。
ひよこ ひよこ
Tool Useとは違うの?
ペンギン先生 ペンギン先生
ツールを使うという広い枠組みの中に、定義した関数への呼び出しがあると考えるといいよ。サービスが用意したWeb検索などのツールは、実行の管理方法も違うことがある。どのツールを誰が実行するのか、使うAPIの仕様を確認しよう。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「Function Calling」って出てきたら「AIが関数の呼び出し指示を返し、アプリが実行する連携」と思えばだいたいOK!
📖 おまけ:英語の意味
「Function Calling」 = 関数呼び出し
💬 Functionは関数、Callingは呼び出し。LLMとの連携では、モデルの呼び出し指示と実際の実行を分けて考えるよ

参考資料

← 用語集にもどる