最近のアクセス:
Chatbot ジェネレーター

Chatbot ジェネレーターの目的は、ナレッジベースを自動的にビルドし、サポートされている任意の Chatbot プロバイダーにデプロイすることです。
GeneXus の [ 設定 ] ビューの Patterns ノードに、Conversational Flows というパターンが存在します。

(1) Chatbot の作成に伴う作業

Chatbot を作成するには、Conversational Flows オブジェクトを定義し、最低限必要な設定を行う必要があります。つまり、使用する AI プロバイダーに応じて、[ NLP Provider ] プロパティとプロバイダー資格情報を設定します。「Chatbot ジェネレーターを使用するための GeneXus の設定」を参照してください。
イメージ:39232.png
次に、Conversational Flows Instance の Flow ノードを定義して会話を設定します。
インスタンスは、アプリケーションで必要になる分だけいくつでも作成できます。

(2) パターンから生成されるもの

Chatbot を作成する際には、モデルを設計するだけで、ユーザーと AI プロバイダーの会話を解決するために必要なすべてのオブジェクトがパターンに基づいて自動的に生成されます。
Chatbot ジェネレーターのパターンから生成されるオブジェクトの目的は、ユーザーから受信したメッセージをダイジェストし、AI プロバイダーに送信するクエリをビルドすることです。応答はハンドラーによって処理され、結果がユーザーに表示されます。結果はテキストメッセージとして表示されるか、グラフィカルインターフェースで GeneXus オブジェクトとして表示されます。「Chatbot アーキテクチャ」を参照してください。
具体的には、[ Chatbot を生成 ] メニューオプションを初めて選択すると、モジュールが自動的に作成されます (ナレッジベースには Conversational Flows オブジェクトごとに 1 つのモジュールが存在することになります)。
このモジュールには、Chatbot ジェネレーターによって自動的に生成されるすべてのオブジェクトの定義が含まれています。
イメージ:39234.png
ビルドプロセスでは、オブジェクトが適宜生成されます (Chatbot インスタンスが変更された場合は、新しいオブジェクトを生成する必要があります)。その場合、インスタンスのすべてのオブジェクトが生成されます。

(2.1) パターンから生成されるオブジェクト

UI オブジェクトの呼び出し元:
具体的には、PanelChatWeb オブジェクトは、メインWeb Panel オブジェクトである <インスタンス名>WebUI オブジェクトによって呼び出されます。
同様に、対応するインスタンスの PanelChatSD オブジェクトは、<インスタンス名>SDUI オブジェクトによって呼び出されます。
: PanelChatWeb または PanelChatSD の呼び出し方法は次のとおりです。

CommonChatbots.PanelChatWeb(!"CitizenService") // パラメーターはインスタンス名です。
Handler オブジェクト: ハンドラーとは、ユーザーのクエリをその意図に合った生成済みプロシージャーにルーティングするサービスです。クエリがプロバイダーに送信されると、ハンドラーが実行され、提供されたデータに基づいてリダイレクト先が特定されます。リダイレクト先は生成済みオブジェクトになります。
イメージ:39237.png
xxBot オブジェクト: ハンドラーによってルーティング先として選択されるプロシージャーです。名前は、ボットの [ Conversational Object ] プロパティの名前に「bot」を加えたものになります。これらのオブジェクトは、定義済みのフローに基づいて生成されます。これらのオブジェクトでは、コンテキストを的確に解釈することによって、(適切なパラメーターが設定された) フローに関連付けられた Conversational Flows オブジェクトをいつ実行すべきかが判断されます。
xxComponent および xxComponentSD: 応答のコンポーネントタイプを使用して、フローで自動的に生成されるコンポーネントです (Web および SD)。

(2.2) パターンのリソース

もう 1 つ、CommonChatbots というモジュールが作成されます。このモジュールには、すべてのパターンリソースが含まれています。
リソースは、[ Keep Resources Updated ] プロパティの設定に基づいて更新されます。
ビルドプロセス (Conversational Flows Instance に生成が必要な変更がある場合のみ) および [ Chatbot を生成 ] アクションでは、ナレッジベース内のリソースのバージョンと比較してリソースに変更がないかどうかがチェックされ、 [ Keep Resources Updated ] プロパティに基づいて更新されているかどうかが判断されます。
まとめると、いくつかのオブジェクトは、パターンに基づいて生成され、インスタンスのモジュールに組み込まれます。それとは別に、CommonChatbots モジュールに組み込まれるオブジェクト (リソース) もあります。後者は必要に応じて変更できますが、パターン設定 ([ Keep Resources Updated ] プロパティ) で許可している場合にのみ更新されます。

(3) パターンで使用される外部モジュール

パターンでは、AI API と会話するサービスが定義された外部モジュールが使用されます。外部モジュールには、さまざまなプロバイダーとの通信に必要なサービスが含まれています。
Conversational Flows オブジェクトを作成すると、ナレッジベースに Chatbot モジュールが自動的にインストールされます。 [ ナレッジマネージャ ] > [ 参照モジュールの管理 ] メニューを使用して、インストール (および更新) の有無をチェックできます。このモジュールは、ビルドプロセスおよび [ Chatbot を生成 ] アクションの実行時に、(ナレッジベースでまだ更新されていなければ) 必要に応じて自動的に更新されます。
イメージ:42977.png
モジュールの内容は、GeneXus ユーザー向けに公開されたプロシージャーと SDT です (SendEntityValues プロシージャーなど)。

AI プロバイダー側では、パターンに基づいて、対話の設定に使用される意図、エンティティ、ダイアログが生成されます。詳細については、「Conversational Flows パターン設定」を参照してください。

(4) 独自のボットの生成方法

インスタンスの保存:
インスタンスを保存すると、ダイアログがプロバイダーと同期され、対話モデルが更新されます。
Chatbot ジェネレーターにより、JSON ファイルが生成され、モデルのディレクトリー <KB_Directory>\Models\bot\ に格納されます。この JSON ファイルは、ワークスペースを作成または更新するためにプロバイダーに POST されます。この処理は、インスタンスを保存するか、[ Chatbot を同期 ] メニューオプションを実行したときに行われます。
イメージ:222.png インスタンスを変更しても、ビルドが必要ないものもあります。たとえば、トリガーメッセージの追加だけなら、インスタンスを保存すれば済みます。
ビルド:
ビルドプロセスでは、必要に応じてパターンインスタンスが更新されます (オブジェクトが生成されます)。
[ Chatbot を生成 ] アクション:
[ Chatbot を生成 ] メニューオプション」を参照してください。

(5) Chatbot プロバイダーとの接続

Chatbot プロバイダーとの接続は、与えられた資格情報 (プロバイダーによって異なる) を使用して行われます。
Web ディレクトリーに GXCF_Chatbot.config という XML ファイルが生成され (GX 16 Upgrade 7 より前のバージョンではファイル名が GXCF_<インスタンス名>Chatbot.config になります)、実行時に AI サービスとの接続に使用される資格情報が格納されます。このファイルは、インスタンスを保存したとき (または、[ Chatbot を同期 ] メニューオプションを実行したとき) に生成されます。アプリケーションのビルド時にも、Web ディレクトリーにまだ存在しない場合は生成されます。この場合、GeneXus は AI プロバイダーに接続されず、インスタンスに設定された資格情報のチェックは行われません。
注: Chatbot プロバイダーの設定が空の場合、次のような警告が表示されます。
Watson を使用する場合:
警告: Watson Assistant サービスのユーザーとパスワードが空です。ワークスペースは Watson Assistant にはアップロードされません。
DialogFlow を使用する場合:
<インスタンス名> Conversational Flows Instance のクライアント ID が空です。
<インスタンス名> Conversational Flows Instance のクライアントシークレットが空です。

(6) 要件

Web Chatbot の場合、Web 通知は使用されないため、Web 通知とプログレス UC の要件をチェックしてください。クライアントでは、ユーザーエクスペリエンスを向上させるために、サーバーからの応答を待たず、非同期呼び出しが実行されます。







サブページ
Created: 19/03/25 17:58 by Admin Last update: 22/04/05 18:18 by Admin
カテゴリ
Powered by GXwiki 3.0