4D 21 で、AI は大きな飛躍を遂げました。この進化の中心にあるのが AI Kit のツール呼び出し (tool calling) です。これは、アプリケーションへの AI統合のあり方を一変させる強力な新機能です。
ツール呼び出しを使用すると、独自のメソッドや関数を登録することでモデルの機能を拡張でき、AI は関連性があると判断した際にそれらを自動的に呼び出すことができます。これは、すべてのやり取りを手動で処理する代わりに、チャットヘルパーがハンドラーを自動的に起動することを意味し、デベロッパーに柔軟性と制御の両方をもたらします。
なぜこれが重要なのか
私たちの実装は、デベロッパーに主導権を与えます。どのようなツールが存在するか、そしてどのようなデータが共有されるかを決定するのはデベロッパーです。AI がデータベースに直接アクセスすることはありません。デベロッパーがツールを宣言し、そのパラメーターを定義し、返却するデータを正確に決定します。これにより、定義した出力結果を AI が利用できるようにしつつ、データを保護することができます。
ツール呼び出しは、RAG (Retrieval-Augmented Generation: 検索拡張生成) への道も開きます。RAG において、モデルは自身の知識だけに頼るのではなく、回答を生成する前に、4Dデータベースなどの外部ソースから動的に情報を取得することができます。その結果、インテリジェントで自然なだけでなく、現実のビジネス文脈に基づいた回答が得られるようになります。
会話中における AIツール呼び出しの起動
AI Kit における主要なイノベーションは、アシスタントが会話中にツールを自動的に起動できるようにしたことです。ツールとは、デベロッパーによって登録されたカスタム関数のことで、特定の条件が満たされたときには、モデルがトリガーすることができます。これにより、手動の介入なしに専門的なタスクを実行できるようになり、アシスタントがはるかにダイナミックなものになります。
たとえば、人物情報の取得・請求書のキャンセル・メールの送信・注文の検証などをおこなうツールを作成できます。これにより、アシスタントを「4Dアプリが提供するサービスとのやりとりを担う新しいインターフェース」へと変貌させることができます。そして何より素晴らしいのは、これがプロンプトベースの UI を通じて実現できる点です。これこそが、次世代のユーザーがソフトウェアとの対話に期待している形なのです。
例題: “GetPeopleInfo” ツールの作成
AI Kit にツールを登録して使用する方法の具体的な例を以下に示します。
- まず、ツールについて記述する Tool_GetPeopleInfo クラスを作成します:
// --- ツールの定義 ---
property tool:={}
Class constructor
// "GetPeopleInfo" ツールを JSON 形式で記述します:
This.tool.name:="GetPeopleInfo"
This.tool.description:="姓名に基づいて人物に関する情報を返します。"
This.tool.parameters:={type: "object"; properties: {}}
This.tool.parameters.properties.firstname:={type: "string"; description: "探している人物の名前"}
This.tool.parameters.properties.lastname:={type: "string"; description: "探している人物の姓"}
Function handler($info : Object) : Text
$result:=ds.People.query("Firstname=:1 and Lastname=:2"; $info.firstname; $info.lastname)
// 人物情報を返します
return $result.length>0 ? JSON Stringify($result[0].toObject()) : "その人物は見つかりませんでした"
- 次に、チャットヘルパーにツールを登録します:
var $client:=cs.AIKit.OpenAI.new($openAIKey)
var $chatHelper:=$client.chat.create("あなたは人事アシスタントです。")
// --- ツールの登録 ---
// チャットヘルパーにツールを登録します。
// これにより、リクエストが一致したときにモデルが自動的にツールを起動できるようになります。
$chatHelper.registerTool(cs.Tool_GetPeopleInfo.new())
var $result:=$chatHelper.prompt("Faye Back さんの住所を教えてください。")
//$result.choice.message.text="Faye Back さんの住所は Earl Boulevard (178), Lanesville, 12450, USA です。"
ユーザーが「John Smith さんの住所は?」と尋ねると、モデルはツール定義を参照して “GetPeopleInfo” ツールを呼び出すことを決定します。handler 関数は、提供されたパラメーターと共に AIKit によって自動的に呼び出されます。モデルはそのレスポンスを受け取り、会話に組み込んで、整形された回答を返します。これらすべてが、クエリごとに手動でコーディングすることなく実行されます。

例題の先へ: 広がるユースケース
ツール呼び出しの可能性は、単なるデータの取得に留まりません。以下のような活用例が考えられます:
-
ユーザーのリクエストに基づいた請求書のキャンセル
-
カスタムコンテンツを含むメールの自動送信
-
処理前の注文の検証
-
4Dアプリ内でのワークフローのトリガー
これらのツールにより、アシスタントはアプリ機能への強力なインターフェース、つまりサービスのための自然言語UI となります。これは単なる「あれば便利な機能」ではなく、次世代が期待するソフトウェア操作のあり方なのです。
まとめ
4D 21 の AI Kit における AI ツール呼び出しは、独自のロジックでモデルの能力をシームレスに拡張することを可能にします。AI を 4D のメソッドや関数と橋渡しすることで、アシスタントにデータやプロセスへの直接的なアクセス権を与え、その回答をよりスマートにするだけでなく、ビジネスニーズに完璧に適合させることができます。なお、すべてのモデルがこの機能をサポートしているわけではない点にご注意ください。
Comments are not currently available for this post.