カテゴリー: 未分類

  • Function Callingとは?意味・使い方・具体例をわかりやすく解説

    まず一言でいうと

    Function Calling(ファンクション・コーリング) とは、AIがユーザーの質問や指示に応じて、あらかじめ用意された外部機能(関数)と必要な引数を選び、その呼び出し要求を構造化して返す仕組みです。実際に関数を実行するのは、原則としてAIを組み込んだアプリケーション側です。

    通常のチャットAIは、学習済みの知識だけを使って回答しますが、Function Callingを使うと、天気予報APIやデータベース、社内システムなどと連携して、リアルタイムの情報や特定の処理結果を回答に反映できます。

    読み方・英語表記・略称

    • 読み方:ファンクション・コーリング
    • 英語表記:Function Calling
    • 略称:FC(まれに使われる程度で、一般的には「Function Calling」とそのまま呼ばれます)

    意味

    Function Callingは、大規模言語モデル(LLM)が外部のツールやAPIと連携するためのインターフェースです。具体的には、AIが以下の流れで動作します。

    1. ユーザーが「東京の明日の天気は?」と質問する
    2. AIが「この質問には天気APIを呼び出す必要がある」と判断する
    3. アプリケーションが、事前に定義された関数(例:get_weather(city, date))を検証して実行する
    4. 関数の戻り値(例:{"weather": "晴れ", "temperature": 25})をAIが受け取る
    5. AIがその結果を元に「東京の明日の天気は晴れで、気温は25度です」と回答する

    この一連の連携を組み立てやすくするのがFunction Callingです。AIは「どの関数をどんな引数で呼ぶか」を提案し、アプリケーションが権限確認、入力検証、実行を担当します。

    使われる場面

    Function Callingは、以下のような場面で特に威力を発揮します。

    • リアルタイム情報の取得:天気、株価、ニュース、交通情報など、常に変化するデータをAPIから取得する
    • データベース検索:社内の顧客情報や在庫データを検索し、その結果を回答に含める
    • 計算や変換処理:単位変換、為替レート計算、複雑な数式の実行
    • 外部システムの操作:メール送信、カレンダー予約、タスク管理ツールへの登録
    • 業務プロセスの自動化:問い合わせ対応の自動化、レポート生成、承認フローの起動

    具体例

    例1:カスタマーサポートでの活用

    ユーザー:「注文番号A12345の配送状況を教えてください」

    AIは get_order_status(order_id) の呼び出し要求を返します。アプリケーションが権限を確認して社内の注文管理システムへ問い合わせ、返された「配送中、明日到着予定」という情報をAIへ渡すと、AIが利用者向けの回答に整えます。

    例2:スケジュール管理

    ユーザー:「来週の月曜日の午後3時に、田中さんとの打ち合わせを予約して」

    AIはカレンダーAPI用の create_event(title, datetime, attendees) を選び、引数を返します。書き込み操作なので、アプリケーション側で日時と参加者を表示して利用者の確認を得てから実行する設計が安全です。

    例3:データ分析

    ユーザー:「先月の売上を地域別に集計して」

    AIはデータベースの関数 get_sales_by_region(month, year) を呼び出し、結果を表形式で表示します。

    似た言葉との違い

    用語違い
    プラグインプラグインはAIに機能を追加する拡張機能全体を指します。Function Callingはその中の「関数呼び出し」という具体的な仕組みです。プラグインはFunction Callingを使って実装されることが多いです。
    ツール使用(Tool Use)基本概念は近い言葉です。Function Callingが関数名と引数の構造化に焦点を当てるのに対し、Tool Useは検索やコード実行などを含む、より広いツール連携全体を指す場合があります。製品ごとに仕様と名称を確認する必要があります。
    RAG(検索拡張生成)RAGは外部のドキュメントを検索して回答に反映する技術です。Function Callingは関数を実行して結果を得る点が異なります。RAGは「情報を探す」、Function Callingは「処理を実行する」という違いがあります。
    API連携API連携は広い概念で、システム同士の接続全般を指します。Function Callingはその中でも「AIが自律的に関数を選んで呼び出す」という高度な連携方法です。

    できること・できないこと

    できること

    • 外部APIやデータベースと連携したリアルタイム情報の取得
    • 複数の関数を組み合わせた複雑な処理(例:天気を調べてから、その結果に基づいてアラートメールを送信)
    • 関数の実行結果を元にした自然な日本語での回答生成
    • エラーハンドリング(関数がエラーを返した場合のフォローアップ)

    できないこと

    • 関数の定義や実装をAIが自動で行うこと(人間が事前に関数を準備する必要があります)
    • 関数の実行権限を超えた操作(セキュリティ設定で制限されている操作は実行できません)
    • 関数の戻り値が不正確な場合の自動修正(AIは受け取った結果をそのまま使います)
    • 関数の呼び出し履歴の完全な保証(ログは別途管理が必要です)

    AIツールでの活用例

    OpenAI APIの場合

    対応モデルをAPIから利用し、アプリケーション側でツール定義と実行処理を用意します。例えば、以下のような仕組みを作成できます。

    • 社内のナレッジベースを検索するGPT
    • 天気予報や為替レートを取得するGPT
    • タスク管理ツールと連携するGPT

    Claude(Anthropic)の場合

    Claudeは「Tool Use」という名称で同機能を提供しています。特に長文の処理や複雑な推論が必要なタスクで活用されています。

    その他のツール

    • Gemini(Google):Google CloudのVertex AIでFunction Callingをサポート
    • Llama(Meta):オープンソースモデルでもFunction Callingが実装可能

    代表的なAIツール例

    1. OpenAI API:対応モデルへツールを定義し、構造化された呼び出し要求を受け取れる
    2. Anthropic Claude API:Tool Useとして提供。安全性に配慮した設計
    3. Google Vertex AI:GeminiモデルでFunction Callingをサポート。Google Cloudとの連携が強み
    4. Azure OpenAI Service:Microsoft Azure上でOpenAIのFunction Callingを利用可能。エンタープライズ向け

    初心者が間違えやすいポイント

    1. 「AIが関数を自動生成してくれる」と思い込む

    Function Callingは、人間が事前に関数を定義し、AIはそれを呼び出すだけです。関数の設計や実装は開発者の仕事です。

    2. 関数の戻り値をそのまま表示してしまう

    AIは関数の戻り値を自然言語に変換して回答します。戻り値がJSON形式でも、ユーザーにはわかりやすい日本語で伝えるのが基本です。

    3. エラー処理を忘れる

    関数がエラーを返した場合の処理を定義しておかないと、AIが「エラーが発生しました」としか言えなくなります。適切なフォールバックメッセージを用意しましょう。

    4. セキュリティを軽視する

    Function Callingで外部APIを呼び出す場合、APIキーの管理やアクセス制御を適切に行わないと、情報漏洩のリスクがあります。

    独自整理

    Function Callingを理解するための3つのポイント:

    1. 「呼び出し」と「実行」の分離:AIは関数を「呼び出す判断」をしますが、実際の「実行」はシステム側が行います。これにより、セキュリティと制御を維持できます。
    1. 「判断力」と「実行力」の組み合わせ:AIの強みは「どの関数を呼ぶべきか」を文脈から判断できる点です。関数自体の実行は従来のプログラムと同じですが、その判断をAIが行うことで、より柔軟な自動化が可能になります。
    1. 「API連携」の判断部分を柔軟にする仕組み:従来は分岐条件を細かくプログラムしていましたが、Function CallingではAIが自然言語の文脈から候補関数と引数を選べます。ただし、関数の実装、認証、検証、実行制御には開発作業が必要です。

    注意点

    • 関数の設計は慎重に:関数の引数や戻り値の形式を明確に定義しないと、AIが誤った判断をすることがあります。
    • レート制限に注意:APIの呼び出し回数制限を超えないよう、指数バックオフ付きリトライ、呼び出し回数の上限、キャッシュなどを実装します。
    • 書き込み操作は確認を挟む:送信、購入、削除、予約など元に戻しにくい操作は、実行直前に対象と内容を表示し、利用者の承認を得る設計が安全です。
    • コスト管理:Function CallingはAPI呼び出しが発生するため、従量課金の場合はコストが増加します。
    • プライバシーとコンプライアンス:個人情報を含むデータを関数で扱う場合は、適切なデータ保護対策が必要です。
    • テストと検証:本番環境で使用する前に、様々なパターンでテストし、意図通りに動作するか確認しましょう。

    関連用語

    • API(Application Programming Interface):ソフトウェア同士が通信するためのインターフェース
    • JSON(JavaScript Object Notation):データを構造化して表現する形式。関数の引数や戻り値でよく使われる
    • LLM(Large Language Model):大規模言語モデル。ChatGPTなどの基盤技術
    • プロンプトエンジニアリング:AIに適切な指示を与える技術
    • エージェント(AI Agent):Function Callingを発展させ、複数のツールを自律的に使いこなすAIシステム

    よくある質問

    Q1: Function Callingを使うにはプログラミングが必要ですか?

    A: 基本的には必要です。関数の定義やAPIとの連携にはプログラミング知識が求められます。ただし、ノーコードツール(例:ZapierやMake)を使えば、プログラミングなしでFunction Calling的な機能を実現できる場合もあります。

    Q2: ChatGPTの画面からFunction Callingを設定できますか?

    A: 開発者が関数定義と実行処理を組み込む用途では、主にAPIを利用します。ChatGPT内の機能や利用条件は変更されることがあるため、用途ごとにOpenAIの公式案内を確認してください。

    Q3: Function CallingとRAGはどちらを選べばいいですか?

    A: 目的によって異なります。静的なドキュメントやナレッジベースから情報を取得するならRAG、リアルタイムデータの取得やシステム操作が必要ならFunction Callingが適しています。両方を組み合わせることも可能です。

    Q4: 関数の実行結果が間違っていた場合、AIは修正できますか?

    A: 基本的にはできません。AIは関数から受け取った結果をそのまま使います。ただし、複数の関数を組み合わせて検証するような設計にすることで、精度を高めることは可能です。

    Q5: セキュリティ面でのリスクはありますか?

    A: あります。特に、関数がデータベースや社内システムにアクセスする場合、適切なアクセス制御と認証が必要です。また、関数の引数に悪意のあるデータが渡される可能性もあるため、入力値の検証は必須です。

    参考リンク

  • トークンとは?意味・使い方・具体例をわかりやすく解説

    まず一言でいうと

    トークンとは、AIがテキストを処理するときの「最小の単位」です。日本語では「単語の一部」や「文字のかたまり」と考えるとイメージしやすいでしょう。ChatGPTなどの生成AIは、文章をこのトークンに分割して理解し、新しいトークンを生成することで応答を作り出します。

    読み方・英語表記・略称

    • 読み方:トークン(カタカナ)
    • 英語表記:Token
    • 略称:特にありませんが、文脈によって「トークン数」「トークン制限」などと使われます。

    意味

    トークンは、自然言語処理(NLP)において、テキストを解析・生成するための基本単位です。1トークンは1文字や1単語と一致するとは限りません。分割結果は、言語、記号、空白、使用するモデルのトークナイザーによって変わります。

    トークンは以下の2つの役割を持ちます。

    1. 入力の分割:ユーザーが入力した文章をAIが理解できる形に分解する。
    2. 出力の生成:AIが新しい文章を1トークンずつ作り出す。

    また、API利用時の課金単位としても使われます。多くのAIサービスは「入力トークン数+出力トークン数」に応じて料金が決まります。

    使われる場面

    トークンという概念は、以下のような場面で登場します。

    • ChatGPTやClaudeなどのチャットAI:応答の長さや料金を計算するとき
    • APIの利用:OpenAI APIやAnthropic APIの料金体系
    • プロンプトエンジニアリング:トークン制限を意識した指示の書き方
    • テキスト分析:文章の長さや複雑さを測る指標
    • 翻訳・要約ツール:処理できる最大文字数をトークンで管理

    具体例

    実際のトークン分割を見てみましょう。

    例1:英語の場合

    • 文章:「I love AI.」
    • 分割イメージ:単語や句読点に近い単位へ分かれることがあります。

    例2:日本語の場合

    • 文章:「私はAIが好きです。」
    • 分割イメージ:「私」「は」「AI」のような単位や、さらに細かい単位へ分かれることがあります。

    例3:長い文章の場合

    • 文章:「この商品のレビューを100文字以内で書いてください。」
    • ポイント:文字数を指定しても、実際のトークン数とは一致しません。

    正確な分割とトークン数はモデルごとに確認する必要があります。文字数から固定比率で換算すると、料金や入力上限の見積もりを誤る可能性があります。

    似た言葉との違い

    言葉意味トークンとの違い
    文字数単純な文字の数トークンは文字数と一致せず、対応関係はモデルや言語で変わる
    単語数意味のある単語の数トークンは単語より細かい単位(「好き」が「好」「き」に分割される場合がある)
    バイト数データサイズトークンはバイト数と直接関係しない
    セッション会話や操作が続くひとまとまりセッションは会話の範囲、トークンはその中のテキストを数える処理単位

    できること・できないこと

    できること

    • 文章の長さを制御する:トークン制限を意識して、プロンプトや応答を調整できる
    • 料金を予測する:API利用前にトークン数を計算してコストを見積もれる
    • 処理効率を最適化する:不要なトークンを減らして、応答速度を上げられる

    できないこと

    • トークン数を正確に手計算できない:モデルや言語によって分割ルールが異なるため、ツールを使わないと正確な数はわからない
    • トークン制限を超えて処理できない:AIは設定された最大トークン数を超える入出力ができない
    • トークン数だけで品質を判断できない:トークン数が多い=良い文章とは限らない

    AIツールでの活用例

    1. プロンプトの最適化

    • 例:「300トークン以内で要約してください」と指定することで、応答の長さを制御
    • 効果:無駄な冗長表現を削り、必要な情報だけを抽出できる

    2. コスト管理

    • 例:利用モデルの公式料金表で入力・出力それぞれの単価を確認し、想定トークン数を掛けて試算する
    • 効果:長い会話や大量のデータ処理を始める前に予算を立てられる

    3. コンテキストウィンドウの活用

    • 例:使用モデルのコンテキスト上限を確認し、長い資料を分割・要約して渡す
    • 効果:重要な情報がトークン制限で消えないように、会話を整理できる

    代表的なAIツール例

    ツール名確認する項目特徴
    ChatGPT利用中のモデルとプランの上限会話画面から生成AIを利用できる
    Claude利用中のモデルとプランの上限長文の入力や文章作成に使われる
    Gemini利用中のモデルとプランの上限テキスト以外も扱うモデルがある
    OpenAI APIモデル別の入力・出力上限と料金用途に合わせてモデルや出力量を設定できる

    初心者が間違えやすいポイント

    1. 「トークン=文字数」と思い込む
    • 実際:文字とトークンの対応は言語やモデルで変わる。正確な値は対象モデルのツールで確認する。
    1. 「トークン制限=回答の長さ」だけと考える
    • 実際:入力(プロンプト)もトークン数に含まれる。長い指示を書くと、回答が短くなる可能性がある。
    1. 「トークン数が多いほど良い」と誤解する
    • 実際:トークン数が多いと料金が高くなり、処理も遅くなる。必要十分な長さに抑えるのがコツ。
    1. 「無料版でもトークン制限を気にしなくていい」と考える
    • 実際:無料版でもトークン制限は存在する。長い会話を続けると、過去の内容が忘れられることがある。

    独自整理

    トークンを「AIの作業スペース」として考えると理解しやすいです。

    • 作業スペースの広さ=コンテキストウィンドウ(トークン制限)
    • 作業に使う材料=入力トークン(プロンプト)
    • 作業の成果物=出力トークン(応答)

    このスペースが狭いと、一度に多くの材料を置けず、成果物も小さくなります。逆に広いと、大量の情報を扱えますが、その分コストがかかります。

    実務でのポイント:

    • 短いプロンプトで済むタスクは、トークン消費が少ないモデルを選ぶ
    • 長文の分析や翻訳には、トークン制限の大きいモデルを使う
    • 料金を抑えたいなら、出力トークンを制限する設定を活用する

    注意点

    1. 同名用語との区別:本記事のトークンは文章の処理単位です。ログインやAPI認証に使うアクセストークンとは役割が異なります。
    1. 料金の見落とし:API利用時は、入力と出力の両方にトークンが消費されます。特に長い会話履歴を送信すると、予想以上にコストがかかることがあります。
    1. モデルによる違い:同じプロンプトでも、モデルによってトークン分割の仕方が異なる場合があります。正確なトークン数を知りたい場合は、各サービスのトークン化ツール(例:OpenAIのTokenizer)を使いましょう。
    1. 言語による差:同じ内容でも言語や表記によってトークン数は変わります。実データに近い文章で事前計測してください。

    関連用語

    • コンテキストウィンドウ:AIが一度に処理できるトークンの最大数
    • プロンプト:AIに与える指示や入力テキスト
    • API:プログラムからAIを利用するためのインターフェース
    • トークナイゼーション:テキストをトークンに分割する処理
    • レート制限:APIの呼び出し回数やトークン数の制限
    • ファインチューニング:特定のタスク向けにAIを追加学習させること(トークン数が学習コストに影響)

    よくある質問

    Q1: トークン数はどこで確認できますか? A: ChatGPTのWeb版では、応答の下にトークン数が表示される場合があります。API利用時は、レスポンスに含まれるusageフィールドで確認できます。また、OpenAIのTokenizerツール(https://platform.openai.com/tokenizer)を使うと、任意のテキストのトークン数を事前に計算できます。

    Q2: トークン制限を超えたらどうなりますか? A: 入力がトークン制限を超えると、エラーが発生するか、古い情報から順に切り捨てられます。ChatGPTなどのチャットAIでは、会話が長くなると過去の内容を忘れる原因になります。対策として、重要な情報は新しいメッセージで再送するか、要約して送信しましょう。

    Q3: トークン数を減らすコツはありますか? A: 以下の方法が効果的です。

    • 不要な修飾語や繰り返しを削除する
    • 箇条書きや短い文を使う
    • 専門用語は略語を使う(ただし、AIが理解できる範囲で)
    • 英語の方がトークン消費が少ないため、可能なら英語でプロンプトを書く

    Q4: 無料版と有料版でトークン制限は違いますか? A: 利用できるモデルや使用量の上限は、サービスやプランによって異なります。仕様は変更されるため、利用時点の公式ヘルプやモデル仕様を確認してください。

    Q5: トークンと認証トークンは同じものですか? A: 全く別のものです。本記事で説明しているトークンは「テキストの処理単位」です。一方、認証トークン(例:IDトークン、アクセストークン)は、ユーザー認証やAPIアクセス権限を管理するためのセキュリティ情報です。混同しないように注意しましょう。

    参考リンク