前に説明したように、この Chatbot システムでは、ユーザーが次の 2 種類のトピックに関する情報を確認できます:
ユーザーがどのタイプの情報を求めているかを尋ねるフローを定義できます。ユーザーの返答に応じて、そのトピックに関する情報を提供する別のフローにリダイレクトします。
ユーザーは具体的な情報を直接尋ねることもできます。この場合、必要な情報のタイプの入力を求める必要はありません。対応するフローがすぐに実行されます。
ここに示すソリューションは、必要な情報のタイプの入力をユーザーに求めるメインのフローから始まります。このフローに Conversational オブジェクトは定義されていません。
informationType の
User Input は、プロバイダーで定義されている
エンティティに
対応しています (値は Formalities または Activities のいずれかです):
ここでは User Input に複数の
Redirection があります。それぞれに、モデルのエンティティ値に基づく
条件が定義されています。ユーザー入力がいずれかのエンティティ値と一致すると、対話はフローの別のスレッドに続きます。
ここで応答のメッセージテキストが定義されていることに注目してください。これは、リダイレクトの条件がいずれも True にならない場合にトリガーされます。
[ Redirect to Flow ] プロパティの値 (Get Activities Information と Get Administrative Formalities information) に応じて使用されるフローを定義する必要があります。例として、値が Get Activities Information の場合のフローを見てみましょう。
このフローでは、
Conversational オブジェクトとしてデータプロバイダーが使用されています。
最初に、ユーザーは関心のある活動のカテゴリを入力するよう求められます。ユーザーが入力した内容は、AI プロバイダーで定義されている
エンティティ (Activities エンティティ、値は art、culture、nature のいずれか) に対して検証されます。
[ On Error Messages ] プロパティでは &UserName が参照されています。これは、ユーザー名を格納する
Chatbot のコンテキストの値になります (別のフローでユーザーに尋ねた値)。
Conversational オブジェクトとして使用されているデータプロバイダーから SDT コレクションが返され、Chatbot ジェネレーターで自動的に生成される Web フォームに表示されます。フローの出力は設定が可能です。この例では、対話に埋め込まれたフォームに表示されます。
これは、Message ノードの
[ Show Response As ] プロパティを使用して設定します。
[ Web Component ] プロパティと
[ SD Component ] プロパティは、それぞれ Web と SD の場合に表示するオブジェクトを示します。
会話は次のようになります。