これからサンプルのバンキングBotを作成するステップを詳しく説明しています。このBotは開発者向けドキュメントのハウツーセクションで紹介されているさまざまな使用事例のシナリオで使用されます。前提条件:
- Kore.aiのBotプラットフォームへのサインアップが必須となります
- Bot構築の基本についておさえている必要があります(こちらのリンクを参照してください)
- 簡単なBotを作成している必要があります(例としてこちらを参照してください)
Botの概要
構築するBotは基本的な銀行取引を実行します。このBotは次のことを行います。
- ユーザーが入力した口座番号と口座種類に基づいて口座残高を取得します(このドキュメントより)。
- 残高から口座を更新します(こちらを参照してください)。
- 指定した金額をユーザーの口座から受取人口座に送金します。
Botの構築を開始し、残高の取得タスクを追加しましょう。
ステップ1:ダイアログタスク
Botが正常に作成されると、Bot Summaryページに移動します。Botの最初のステップとして、インテントダイアログを追加する必要があります。インテントダイアログは、ユーザーとBotの会話フローの最初のステップとなります。
-
- タスクウィジェット内にある+新しいタスクをクリックします。
- ダイアログタスクを選択します。
- Botタスクページが開きます。
- 次の詳細事項を入力します。
- インテント名-インテント名を入力します。これはダイアログをトリガーするフレーズとなります。インテント名は3〜4語以内のシンプルなものにしてください(「Get Balance」など)。
- 詳細オプションで、説明およびその他のダイアログ関連の詳細を追加することができます。デフォルト設定を保持しておきましょう。
- 作成して続行をクリックします。
- ユーザーインテントのプロパティパネルが表示されます。デフォルトのプロパティを保持しておきます。
- ユーザーインテントのプロパティパネルを閉じます。
ステップ3:エンティティノード
エンティティノードは通常、ユーザーから情報を収集するために使用されます。ここでは、口座番号と口座種類のユーザー入力を取得するために使用します。
- ユーザーインテントノードの横にある+をクリックします。
- エンティティオプションを選択します。
- 新しいエンティティノード+をクリックします。
- エンティティノードのプロパティパネルが表示されます。
- 次の詳細事項を入力します。
- 名前:AccountNumber
- 表示名:口座番号
- タイプ:数
- ユーザープロンプト:次のテキストを入力し、Enterキーを押して保存します。
Please enter your account number.
- AccountNumberエンティティのプロパティパネルを閉じます。
- 上記のステップを繰り返して、次の詳細で別のエンティティを追加します。
- 名前:AccountType
- 表示名:口座種類
- タイプ:ドロップダウンから項目リスト(列挙)を選択します。ユーザーが選択可能な値のリストを用意する必要があります。
- ユーザープロンプト:次のテキストを入力し、Enterキーを押して保存します。
Enter the type of account.
- 値のリストの表示:はい、デフォルトのメッセージにチャネル固有の標準フォーマットを使用し、利用可能な値のリストをエンドユーザーに表示しますをマークします。これにより、サポートされているチャネルのボタンテンプレートに値のリストが表示されます。
- AccountTypeエンティティのプロパティパネルを閉じます。
ステップ4:サービスノード
サービスノードを使用することで、バックエンドのAPIコールを行うことができます。ここでは、サービスノードを使用してAPIを呼び出し、ユーザーが入力した口座番号の口座残高を取得します。このチュートリアルでは、仮のAPIセットアップを使用します。この目的のために特別に作成された模擬APIを、FirstName、LastName、Address、City、Country、ZipCode、AccountNumber、AccountType、Balance、のフィールドで使用します。
- AccountTypeのエンティティノード横の+をクリックします。
- サービスを選択します。サービスノードは、バックエンドAPIコールで口座残高情報を取得するために使用されます。
- 新しいサービスノード+をクリックします。
- サービスノードのプロパティパネルが表示されます。
- 次の詳細事項を入力します。
- 名前: GetAccountBalance
- 表示名:口座の残高取得
- サービスの種類:カスタムサービス
- タイプ:Webサービス
- サブタイプ:REST
- リクエストの定義をクリックします。
- リクエストページの定義では、次の詳細を入力します。
- リクエストのタイプ–取得
- リクエストURL–
https://5c3c633d29429300143fe4d2.mockapi.io/AccountDetails?filter={{context.entities.AccountNumber}}
仮のAPIサービスの制限により、指定された口座番号の記録を取得する代わりに、必要な口座番号の応答をフィルタリングしています。 - このAPIでは、認証またはヘッダーパラメータは必要ありません。
- テストリクエストタブを選択します。
- サンプルコンテキスト値セクションに口座番号を入力します。これはAPIに必要なフィルターパラメータであり、02929664の口座番号を使用できます。
- テストボタンをクリックします。
- テストが完了するのを待ち、ステータスを取得します。200
- APIコールによってレコードの配列が返されるのが分かりますので、次のステップではJavaScriptを使用して値を解析します。
- サンプル応答として保存をクリックします。
- 保存をクリックします
- リクエストページの定義では、次の詳細を入力します。
- サービスプロパティパネルを閉じます。
ステップ5:メッセージノード
メッセージノードは、Botからユーザーへメッセージを表示するために使用されます。ここでは、メッセージノードを使用して残高を表示します。
- GetAccountBalanceサービスノードの横の+をクリックします。
- メッセージを選択し、新しいメッセージノード+をクリックします。
- メッセージノードのプロパティパネルが表示されます。
- 次の詳細事項を入力します。
- 名前: BalanceMessage
- 表示名:残高メッセージ
- Botの応答:プロンプトの管理:すべてのチャネルのメッセージを解析するためにJavaScriptを定義します。応答の管理をクリックします。
- プロンプトメッセージを追加をクリックします。
- チャネルドロップダウンのすべてのチャネルを保持します。
- メッセージの下のJavaScriptタブをクリックして移動します。
- 以下のJavaScriptを追加します。JavaScriptは、ユーザーが入力したAccountTypeでフィルタリングされたすべてのレコードを比較し、残高を表示するために記述されています。
var balance, i; for (i=0; i < context.GetAccountBalance.response.body.length; i++ ) { if (context.GetAccountBalance.response.body[i].AccountType == context.entities.AccountType) { balance = context.GetAccountBalance.response.body[i].Balance; } } if (balance === undefined) { print ('Invalid Account, try again '); } else { print ('The Balance in your account is ' + balance); }
- 保存をクリックします。
- ダイアログビルダーに戻ります。
- Botの応答プロパティパネルで、接続アイコンをクリックして接続タブを開きます。
- デフォルトの接続を接続なしからダイアログの終了に変更します。
- 保存をクリックします
- プロパティパネルを閉じます。
テスト
ダイアログタスクをテストするには、右下隅にある「Botとの会話」を使用できます。次の発話(インテント名)を入力してください「残高取得」次のBotの指示に従ってください。
- 口座番号を入力してください-02929664
- 口座種類を選択してください-普通預金または当座預金
- 口座残高を参照してください。
次のステップ
バンキングBotに「残高取得」ダイアログタスクを追加したので、次のステップとして「残高更新」タスクを追加します。便宜上、残高更新の手順は別のドキュメントに分割して記載されています。こちらをクリックして先に進みます。