LLM向けカスタムツールとプラグイン
LLMが中核知識を超えた能力を発揮できるよう、カスタムツールを開発して統合します。
「LLM向けカスタムツールとプラグイン」はCoddyKit上の無料AI Prompt Engineeringレッスンです。 これはレッスン3/3です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはAI Prompt Engineering学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 AI Prompt Engineeringコースには全3レッスンが含まれています。
カスタムツールとは
「ツールとエージェントを活用した高度なプロンプト」コースの最後のレッスンへようこそ。本日は、Large Language Models(LLM)向けのカスタムツールとプラグインについて詳しく学びます。
カスタムツールを使うと、LLMは学習データの範囲を超えて、現実世界や特定のシステムとやり取りできるようになります。LLMに教える特別なスキルだと考えてください。
- 機能を拡張する:新しい関数を追加します。
- リアルタイムデータにアクセスする:最新情報を取得します。
- アクションを実行する:外部システムに変更を加えます。
カスタム機能と組み込み機能
基本的な関数呼び出しとAPI統合について学びました。カスタムツールは、そこからさらに一歩進んだものです。
LLMは「テキストを要約する」方法を本来知っているかもしれませんが、ツールを提供しない限り「ロンドンの天気を確認する」方法は知りません。カスタムツールはこの隔たりを埋め、LLMの中核知識ベースに含まれていない、特定の外部機能を提供します。
カスタムツールの構成
LLMがカスタムツールをいつ、どのように使うか理解できるように、すべてのカスタムツールには明確な定義が必要です。主な構成要素は次のとおりです。
- 名前:一意の識別子(例:
get_current_time)。 - 説明:ツールの機能と使用するタイミングを説明します。これはLLMの意思決定において非常に重要です。
- パラメーター:ツールが機能するために必要な入力(例:時刻ツールの
timezone)。 - 想定される出力:ツールが返す情報の種類です。
スキーマによるツールの説明
LLMにカスタムツールを「教える」には、多くの場合JSONスキーマなどの構造化された形式で、その定義を提供します。このスキーマによって、LLMはツールを正しく呼び出すために必要なすべての情報を把握できます。
ここでは、get_current_timeツールをどのように記述するか、簡略化した例を見てみましょう。
{
"name": "get_current_time",
"description": "Gets the current time in a specified timezone.",
"parameters": {
"type": "object",
"properties": {
"timezone": {
"type": "string",
"description": "The timezone to get the time for (e.g., UTC, America/New_York)."
}
},
"required": []
}
}シンプルなツールの構築:時刻の取得
実用的な例として、get_current_timeという名前のツールを作成しましょう。このツールは、指定されたタイムゾーン(任意)における現在時刻を返します。
LLMが理解するのはスキーマに記述された説明ですが、説明されたアクションを実行する実際のコードを書くのは私たちの役割です。このコードは、LLMがツールの呼び出しを決定したときに外部で実行されます。
ツールの実装例
このPythonコードのスニペットは、get_current_timeツールが内部でどのように実装されるかを示しています。LLMがツールを呼び出すと、この関数(または選択した言語で記述した同様のロジック)が実行され、結果が取得されます。
実行して、出力を確認してみましょう。
import datetime
def get_current_time(timezone="UTC"):
"""
Returns the current time in the specified timezone.
"""
# For simplicity, we'll return UTC time and note timezone
now = datetime.datetime.now(datetime.timezone.utc)
return f"Current time in {timezone}: {now.strftime('%Y-%m-%d %H:%M:%S')} (UTC basis)"
# This is the entry point that would be called by the LLM's integration layer
if __name__ == "__main__":
print(get_current_time())
print(get_current_time(timezone="America/New_York"))LLMによるツール呼び出しの流れ
LLMがカスタムツールを使用する一般的な流れは次のとおりです。
- ユーザープロンプト:LLMに質問します(例:「ニューヨークは今何時ですか?」)。
- LLMの判断:LLMがプロンプトと、利用可能なツールの説明を分析します。
- ツール呼び出し:関連するツールがある場合、LLMがツール呼び出しを生成します(例:
get_current_time(timezone="America/New_York"))。 - 実行:システムが実際のツールコードを実行します。
- 結果:ツールの出力がLLMに返されます。
- LLMの応答:LLMがツールの出力を使って、ユーザーへの最終的な回答を作成します。
カスタムツールを使ったプロンプト
カスタムツールにアクセスできるLLMにプロンプトを送るとき、ツールを使うよう明示的に指示する必要はありません。ツールが必要になることを示す質問をするだけで構いません。
LLMがツールの説明を理解できるかどうかが重要です。適切な説明があれば、LLMは適切なタイミングで適切なツールを選択できます。
- プロンプト:
"What is the current time right now?" - LLMのアクション:
get_current_time()を呼び出します - ツールの出力:
"Current time in UTC: 2023-10-27 10:30:00 (UTC basis)" - LLMの応答:
"The current time is 10:30 AM UTC."
カスタムツールのメリット
カスタムツールによって、LLMに強力な機能を追加できます。
- ドメイン特化:一般的な学習の範囲を超える知識をLLMに提供します。
- リアルタイムのインタラクション:最新情報(株価や天気など)にアクセスします。
- 実行可能なAI:メールの送信や予定の予約など、LLMがアクションを実行できるようにします。
- 精度の向上:事実に基づくツールの出力を利用して、ハルシネーションを減らします。
- モジュール性:LLMのロジックを外部システムとのやり取りから分離できます。
クイックチェック:カスタムツール
LLM向けのカスタムツールの定義に不可欠な構成要素は、次のうちどれですか。
復習:LLMの能力を拡張する
このレッスンでは、LLMの能力を拡張する強力な方法であるカスタムツールとプラグインについて学びました。
- カスタムツールによって、LLMは外部システムやデータとやり取りできます。
- 多くの場合、JSONスキーマを使って、明確な定義(名前、説明、パラメーター)を指定する必要があります。
- LLMがツールを呼び出したときに実行される実際のロジックは、開発者が実装します。
- カスタムツールによって、LLMはドメイン固有の知識を得たり、リアルタイムデータにアクセスしたり、アクションを実行したりできるようになり、単純なテキスト生成を超えた処理が可能になります。
カスタムツールを使いこなせば、本当にインテリジェントでインタラクティブなAIアプリケーションを構築できます。
よくある質問
「LLM向けカスタムツールとプラグイン」レッスンは無料ですか?
はい。「LLM向けカスタムツールとプラグイン」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、AI Prompt Engineeringコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 AI Prompt Engineeringコースには全3レッスンが含まれています。
「LLM向けカスタムツールとプラグイン」で何を学びますか?
LLMが中核知識を超えた能力を発揮できるよう、カスタムツールを開発して統合します。 ブラウザで直接実行するハンズオンコードでAI Prompt Engineeringを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
AI Prompt Engineeringを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのAI Prompt Engineeringは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/3です。
「LLM向けカスタムツールとプラグイン」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このAI Prompt Engineeringレッスンでコードを書いて実行できますか?
はい。すべてのAI Prompt Engineeringレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- Function CallingとAPI統合
- マルチエージェントプロンプティングシステム
- LLM向けカスタムツールとプラグイン