関数呼び出しと生成 AI を使用してよりスマートなアプリを構築する方法 | Mendix

メインコンテンツへスキップ

関数呼び出しと生成 AI でよりスマートなアプリを構築する方法

ダイナミックでインタラクティブな スマートアプリケーション は、特に急速に進化するテクノロジー環境において、ソフトウェア企業にとって重要な差別化要因です。生成型 AI (GenAI) は、組織がこれを実現するのに役立つ多くの機会を提供します。課題は、GenAI の機能を静的テキスト生成を超えて拡張することです。

大規模言語モデル (LLM) のデフォルトのテキスト生成機能は、多くの場合不十分です。これは、リアルタイムのコンテキスト知識が不足しており、トレーニング後にプライベート データにアクセスできないためです。

関数呼び出しは、マイクロフローを LLM からアクセス可能にすることで、データ取得からタスク自動化までの複雑な問題を解決するのに役立ちます。つまり、実質的には、ローコードの方法で仮想エージェントを作成できます。

究極のAIアシスタント

AI サポート アシスタントが次のようなあらゆることを実行するところを想像してみてください。

  • プライベートナレッジベースにある情報に基づいてよくある質問に回答し、
  • データベースからリアルタイムのユーザーデータを取得する
  • プライベートナレッジベースで解決策を検索し、
  • 従業員に代わってサポート チケットを作成する – すべて 1 回の会話内で実行できます。

この機能は、実装を担当するソフトウェア開発者にとって非常に役立ちます。また、ユーザー満足度と運用効率の向上を目指す製品所有者にとっても役立ちます。

最も重要なのは、エンドユーザーが合理化された効率的なサポート プロセスの恩恵を受けることです。ここで、関数呼び出し (ツールの使用とも呼ばれます) が役立ちます。これにより、AI モデルが現在のユーザーに代わってさまざまなタスクを実行できるようになります。

以下のビデオは、新しくリリースされたユーザーインターフェースを示しています。 サポートアシスタントスターターアプリこのアニメーションは、前述の IT サポートのユースケースに基づいています。また、この投稿全体で例としても使用されます。Support Assistant Starter App を使用すると、仮想エージェントの構築を有利に進めることができます。 (開始方法に関するヒントについては、「開始する方法詳細は、このブログの最後にある「」セクションをご覧ください。

関数呼び出しが、データ取得からタスク自動化まで、複雑な問題を解決するのにどのように役立つかを見てみましょう。また、プラットフォームでサポートされているGenAIコネクタを統合する方法についても説明します。 Mendix アプリケーション。GenAI の潜在能力を最大限に活用して、よりスマートなアプリを構築するための実用的な例と実用的な洞察を提供します。

関数呼び出しとは何ですか?

関数呼び出しは、テキスト生成機能のオプション機能であり、チャット補完とも呼ばれます。これにより、LLM は外部のツールやシステムに接続できるようになります。

関数呼び出しは、多くの LLM でサポートされている標準パターンです。

  • OpenAI チャット GPT
  • アントロピック・クロード
  • メタ・ラマ
  • Cohereコマンド。

LLM が外部ツールやシステムに接続できるようにすると、次のようなさまざまなユースケースに役立ちます。

データ検索

  • リアルタイムデータ(例:ライブプロダクションメトリクス)やドメイン固有の情報(例:内部ドキュメント)にアクセスして、適切な応答を提供します。
  • 現在のユーザーに関するデータを取得し、アカウントや最近のアクティビティについて質問できるようにする
  • 公開外部 API からリアルタイム データを取得します。たとえば、「明日のロッテルダムの天気はどうなるか」などの質問に答えるための株価や天気データなどです。

トリガーアクション

  • チャット会話に基づいて注文などのオブジェクトを作成する
  • LLMを使用して複雑なリクエストを解釈し、内部または外部システムでワークフローを開始する
  • 非構造化データに基づく計算の実行
  • ページ上のオブジェクトを変更したり、何かを表示するよう要求したりして操作する

関数呼び出しの使い方 Mendix

良いニュースは、開発者が関数呼び出しを使用するために追加のデプロイメント、ツール、サービス、スキルを必要としないことです。 Mendixすべては内部で設定できます Mendix プラットフォームでサポートされている GenAI コネクタを備えた Studio Pro。

下の図は、 Mendix アプリは動作します。

ステップ 1

の機能 Mendix 基本的に、LLM へのリクエストの一部として記述および登録できるマイクロフローです。一般に、リクエストに関数を追加することはオプションです。リクエストに関数が含まれていない場合、手順 2 から 5 は適用されず、手順 6 に示すように、LLM はユーザー プロンプトに基づいて直接回答を生成します。

ステップ 2

モデルは、現在のコンテキストと関数の説明に基づいて、定義済みの関数(マイクロフロー)を呼び出して、より多くの情報を収集するか、ユーザーのメッセージに基づいてアクションを実行する必要があるかどうかを決定します。これは、ユーザープロンプトと呼ばれます。

ステップ 3

LLMは関数自体を呼び出すのではなく、どの関数を実行するかの指示を含む構造化された応答を返します。 Mendix アプリとその必要な入力パラメータ。

ステップ4および5

関数マイクロフローは、 Mendix app。戻り値は LLM に送り返され、処理中の初期ユーザー プロンプトに追加されます。

このプロセスは、下の図のステップ 2 から 5 で視覚化されており、次のステップで LLM が最終応答を返すまで繰り返されます。

ステップ 6

LLM は最終的なアシスタント応答を返します。

プラットフォームでサポートされている GenAI コネクタのチャット完了操作は、6 つのステップすべてを自動的に処理します。これにより、開発者はリクエストに追加する関数マイクロフローの作成のみに集中でき、残りは自動的に管理されます。

Mendix 開発者が完全にコントロールしている

で Mendix アプリでは、関数マイクロフローは現在のユーザーのコンテキストで実行されます。これにより、開発者は現在のユーザーに関連するデータのみが取得され、公開されることを確認できます。したがって、 Mendix アプリは、呼び出されるマイクロフローと LLM によって使用されるデータを完全に制御します。

ユーザーは、データ セキュリティとアクション検証に対してきめ細かなアクセス権を持ちます。データの取得に加えて、ユーザーはプロンプトに基づいてアクションをトリガーし、現在のページと対話することもできます。

オブジェクトの作成、マイクロフローのトリガー、UI 要素の更新など、現実世界に影響を与える可能性のあるアクションの場合は、ユーザーの関与を維持するために確認手順を含めることをお勧めします。100 枚のピザを注文するつもりだったのに、アシスタントが誤って 10 枚のピザを注文してしまうようなことは避けたいものです。(他の例としては、電子メールの送信、注文の送信、予約などがあります。)

両方の OpenAIコネクタ および Amazon ベッドロックコネクタ 関数呼び出しによるチャット補完をサポートするには、 GenAI Commonsモジュールこれらのモジュールは、リクエストに機能を追加するための使いやすい操作を提供します。

以下のマイクロフローは、次の例を示しています。

  • リクエストオブジェクトが作成される
  • 複数の機能が追加されました
  • Amazon Bedrockや(Azure) OpenAIなどの好みのAIプロバイダーとのチャット完了操作が実行されます。
  • アシスタントの応答が更新され、ページに表示されるようになりました

プラットフォームでサポートされている GenAI コネクタでチャット完了操作を使用する場合、開発者はリクエストに関数マイクロフローを追加するだけで済みます。コネクタは応答を処理し、LLM が最終的なアシスタント応答を提供するまで関数マイクロフローを実行します。

サポートアシスタントスターターアプリで関数呼び出しがどのように使用されるか

を詳しく見てみましょう サポートアシスタントスターターアプリ魅力的でインタラクティブなユーザー エクスペリエンスを作成する上で、関数呼び出しがいかに重要であったかを確認したいと思います。

通常、従業員が IT サポート アプリケーションにアクセスするのは、IT 関連の問題がある場合です。この場合、サポート チャットボットは、第一線のサポートにかかるオーバーヘッドを削減することを目的としています。これは、作成されるチケットの数と、チケットの処理に必要なリソースを削減することで実現します。

関数呼び出しを使用することで、サポート アシスタントに次の操作を選択する機会が与えられます。

マニュアル付きのナレッジベースを検索する

ここで、LLMは、一般的なITの問題に対する解決策を含む静的なマニュアルやガイドを含むプライベートナレッジベースを照会します。これは基本的に 検索拡張生成 (RAG) 関数にラップされた静的テキスト データ。

解決済みのチケットを含むナレッジベースをクエリする

この機能は、同様の説明を持つ解決済みのチケットを検索して、可能な解決策を提案します。静的なフリーテキストデータを使用する最初の機能とは異なり、この機能は Mendix オブジェクトに関連し、時間の経過とともに変化する可能性のあるデータ (RAG と呼ばれます)。

ユーザーがマニュアルまたは解決済みのチケットの解決策で問題を解決した場合、チャットは終了し、チケットは作成されません。これにより、ユーザーだけでなくヘルプデスクの従業員の時間の節約にもなります。

ユーザーの同様のオープンチケットを確認し、チケットを更新する

新しいチケットを作成する前に、同じ従業員が同様の問題ですでにチケットを開いているかどうかを確認します。開いている場合は、チケット更新機能を使用して、既存のチケットに新しい情報を追加できます。

クローズされたチケットやナレッジ ベースの以前の手順や解決策がどれも機能しない場合は、アシスタントがユーザーに新しいチケットを作成するかどうかを尋ねることができます。これにより、ユーザーは重要な詳細を含めることができ、サポート スタッフの作業が簡単になり、余分な作業が削減されます。

新しいチケットを作成する

この機能は、会話ですでに提供されている情報を使用して、ユーザーのチケットを作成します。これにより、関連するすべての詳細が記録された高品質のチケットが作成され、チケットの解決が迅速化されます。

関数を定義するときは、その目的と使用時期を明確に説明することが重要です。説明は LLM のプロンプトとして機能し、関数をいつ呼び出すか、どのような入力が必要か、戻り値をどのように解釈するかを示します。

システム プロンプトに、機能の実行順序に関する一般的なガイドラインを含めることができます。たとえば、サポート アシスタントは、新しいチケットを作成する前に、必ずナレッジ ベースをチェックしたり、チケットを解決して解決策を探したりする必要があります。

関数呼び出しを使用する理由 Mendix アプリ

データの取得に関しては、プロンプト エンジニアリングまたは関数呼び出しのいずれかを使用できます。ただし、関数呼び出しには明らかな利点がいくつかあります。

  • 将来の会話でどのような情報が重要になるかを予測することは難しく、システム プロンプトに過剰な情報を追加してしまう可能性があります。関数呼び出しでは、関数を事前に定義する必要がありますが、これにより、無関係な情報によってチャット コンテキストが乱雑になることを防止できます。その後、LLM は、必要に応じて取得して含めるデータを決定できます。
  • システム プロンプトに不要な情報を追加すると、LLM が重要な情報に集中できなくなる可能性があります。その結果、予期しない動作や応答が発生する可能性があります。
  • さらに、ユーザーは通常、リクエスト内の入力トークンと出力トークンの数に基づいて課金されます。追加データを多く含めるとプロンプトが長くなり、入力トークンが増加してコストが不必要に上昇します。

関数呼び出しは、必要なデータのみを適切なタイミングで提供し、常に最新の状態に保つことで、これらの課題を解決するのに役立ちます。

関数内でアクションをトリガーする必要があるその他のケースでは、プロンプト エンジニアリングはうまく機能しません。関数呼び出しは、通常はエージェントまたはアシスタントを必要とする新しい機会を提供しますが、ローコード方式で実行できます。

プラットフォームでサポートされている関数呼び出しを使用する利点 Mendix GenAI Commons モジュールに基づくコネクタには次のものがあります。

  • マイクロフローは、 Mendix 外部システムから利用できるように API 経由で公開する必要はありません。
  • 外部にコードを書く必要はありません Mendix関数呼び出しを真のローコード体験にする

開始する方法

新をチェック サポートアシスタントスターターアプリ 議論したユースケースに基づいて仮想エージェントを素早く構築するのに役立ちます。また、関数呼び出しを実装する方法を学ぶのにも最適です。 Mendix.

GenAI機能を初めて追加する場合は、 Mendix アプリケーションをご利用になる場合は、 GenAI ショーケース アプリケーションシンプルなチャットの実装から、 会話型UIモジュール 関数呼び出し、検索拡張生成 (RAG)、ビジョン、画像生成などのより高度な機能まで。

Support Assistant スターター アプリと GenAI ショーケース アプリはどちらも、次の 2 つの一般的な AI プロバイダーのプラットフォームでサポートされているコネクタを使用します。 (Azure) オープンAI および アマゾンの岩盤これらのプロバイダーとそのモデルを簡単に切り替えることができるため、並べてテストしたり比較したりすることが簡単になります。

これらのコネクタは、 GenAI Commonsモジュールは、関数を登録してリクエストに追加するための共有ドメイン モデルと再利用可能なアクションを提供します。コネクタは、LLM からの関数呼び出し応答を処理し、現在のユーザーのコンテキストに基づいて関数を実行します。

チェックアウトしてください 関数呼び出しをサポートするモデルの概要 を確認します 技術文書.

GenAIのユースケースに取り組んでいて、サポートが必要な場合やフィードバックを提供したい場合は、ぜひご連絡ください。カスタマーサクセスマネージャーに連絡するか、 #genaiコネクタ のチャンネル Mendix コミュニティSlack。 ここでサインアップ!

言語を選択してください