OVERVIEW
Virtual Assistants
Kore.ai Platform
Key Concepts
Natural Language Processing (NLP)
Accessing Platform
VIRTUAL ASSISTANTS
Virtual Assistant Builder
Virtual Assistant Types
Getting Started
Create a Simple Bot
SKILLS
Storyboard
Dialog Tasks
Introduction
Dialog Builder (New)
Dialog Builder (Legacy)
User Intent Node
Dialog Node
Entity Node
Supported Entity Types
Composite Entities
Supported Colors
Supported Company Names
Form Node
Logic Node
Message Nodes
Confirmation Nodes
Bot Action Node
Service Node
Custom Authentication
2-way SSL for Service nodes
Script Node
Agent Transfer Node
WebHook Node
Grouping Nodes
Connections & Transitions
Manage Dialogs
User Prompts
Knowledge Graph
Terminology
Building
Generation
Importing and Exporting
Analysis
Knowledge Extraction
Train
Build
Alert Tasks
Introduction
Ignore Words and Field Memory
How to Schedule a Smart Alert
Small Talk
Digital Views
Introduction
How to Configure Digital Views
Digital Forms
Overview
How to Configure Digital Forms
NATURAL LANGUAGE
Overview
Machine Learning
Introduction
Model Validation
Fundamental Meaning
Introduction
NLP Guidelines
Knowledge Graph
Traits
Introduction
How to Use Traits
Ranking and Resolver
Advanced NLP Configurations
INTELLIGENCE
Overview
Context Management
Overview
Session and Context Variables
Context Object
How to Manage Context Switching
Manage Interruptions
Dialog Management
Sub Intents & Follow-up Intents
Amend Entity
Multi-Intent Detection
Sentiment Management
Tone Analysis
Sentiment Management
Event Based Bot Actions
Default Conversations
Default Standard Responses
TEST & DEBUG
Talk to Bot
Utterance Testing
Batch Testing
Record Conversations
Conversation Testing
CHANNELS
PUBLISH
ANALYZE
Overview
Dashboard
Custom Dashboard
Overview
How to Create Custom Dashboard
Conversation Flows
NLP Metrics
ADVANCED TOPICS
Universal Bots
Overview
Defining
Creating
Training
Customizing
Enabling Languages
Store
Smart Bots
Defining
koreUtil Libraries
SETTINGS
Authorization
Language Management
PII Settings
Variables
Functions
IVR Integration
General Settings
Management
Import & Export
Delete
Bot Versioning
Collaborative Development
Plan Management
API GUIDE
API Overview
API List
API Collection
SDKs
SDK Overview
SDK Security
SDK App Registration
Web SDK Tutorial
Message Formatting and Templates
Mobile SDK Push Notification
Widget SDK Tutorial
Widget SDK – Message Formatting and Templates
Web Socket Connect & RTM
Using the BotKit SDK
Installing
Configuring
Events
Functions
BotKit SDK Tutorial – Agent Transfer
BotKit SDK Tutorial – Flight Search Sample Bot
Using an External NLP Engine
ADMINISTRATION
HOW TOs
Create a Simple Bot
Create a Banking Bot
Transfer Funds Task
Update Balance Task
Context Switching
Using Traits
Schedule a Smart Alert
Configure UI Forms
Add Form Data into Data Tables
Configuring Digital Views
Add Data to Data Tables
Update Data in Data Tables
Custom Dashboard
Custom Tags to filter Bot Metrics
Patterns for Intents & Entities
Build Knowledge Graph
Global Variables
Content Variables
Using Bot Functions
Configure Agent Transfer
RELEASE NOTES

バンキングBotの作成

これからサンプルのバンキングBotを作成するステップを詳しく説明しています。このBotは開発者向けドキュメントのハウツーセクションで紹介されているさまざまな使用事例のシナリオで使用されます。前提条件

Botの概要

構築するBotは基本的な銀行取引を実行します。このBotは次のことを行います。

  • ユーザーが入力した口座番号と口座種類に基づいて口座残高を取得します(このドキュメントより)。
  • 残高から口座を更新します(こちらを参照してください)
  • 指定した金額をユーザーの口座から受取人口座に送金します。

Botの構築を開始し、残高の取得タスクを追加しましょう。

Botの作成

標準Botを作成します。

  • Kore.aiのBotプラットフォーム口座にログインします
  • Botのランディングページに移動します
  • ページ右上の+新しいBotボタンをクリックします
  • 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
    • リクエストの定義をクリックします。
      • リクエストページの定義では、次の詳細を入力します。
        • リクエストのタイプ取得
        • リクエストURLhttps://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に「残高取得」ダイアログタスクを追加したので、次のステップとして「残高更新」タスクを追加します。便宜上、残高更新の手順は別のドキュメントに分割して記載されています。こちらをクリックして先に進みます

OVERVIEW
Virtual Assistants
Kore.ai Platform
Key Concepts
Natural Language Processing (NLP)
Accessing Platform
VIRTUAL ASSISTANTS
Virtual Assistant Builder
Virtual Assistant Types
Getting Started
Create a Simple Bot
SKILLS
Storyboard
Dialog Tasks
Introduction
Dialog Builder (New)
Dialog Builder (Legacy)
User Intent Node
Dialog Node
Entity Node
Supported Entity Types
Composite Entities
Supported Colors
Supported Company Names
Form Node
Logic Node
Message Nodes
Confirmation Nodes
Bot Action Node
Service Node
Custom Authentication
2-way SSL for Service nodes
Script Node
Agent Transfer Node
WebHook Node
Grouping Nodes
Connections & Transitions
Manage Dialogs
User Prompts
Knowledge Graph
Terminology
Building
Generation
Importing and Exporting
Analysis
Knowledge Extraction
Train
Build
Alert Tasks
Introduction
Ignore Words and Field Memory
How to Schedule a Smart Alert
Small Talk
Digital Views
Introduction
How to Configure Digital Views
Digital Forms
Overview
How to Configure Digital Forms
NATURAL LANGUAGE
Overview
Machine Learning
Introduction
Model Validation
Fundamental Meaning
Introduction
NLP Guidelines
Knowledge Graph
Traits
Introduction
How to Use Traits
Ranking and Resolver
Advanced NLP Configurations
INTELLIGENCE
Overview
Context Management
Overview
Session and Context Variables
Context Object
How to Manage Context Switching
Manage Interruptions
Dialog Management
Sub Intents & Follow-up Intents
Amend Entity
Multi-Intent Detection
Sentiment Management
Tone Analysis
Sentiment Management
Event Based Bot Actions
Default Conversations
Default Standard Responses
TEST & DEBUG
Talk to Bot
Utterance Testing
Batch Testing
Record Conversations
Conversation Testing
CHANNELS
PUBLISH
ANALYZE
Overview
Dashboard
Custom Dashboard
Overview
How to Create Custom Dashboard
Conversation Flows
NLP Metrics
ADVANCED TOPICS
Universal Bots
Overview
Defining
Creating
Training
Customizing
Enabling Languages
Store
Smart Bots
Defining
koreUtil Libraries
SETTINGS
Authorization
Language Management
PII Settings
Variables
Functions
IVR Integration
General Settings
Management
Import & Export
Delete
Bot Versioning
Collaborative Development
Plan Management
API GUIDE
API Overview
API List
API Collection
SDKs
SDK Overview
SDK Security
SDK App Registration
Web SDK Tutorial
Message Formatting and Templates
Mobile SDK Push Notification
Widget SDK Tutorial
Widget SDK – Message Formatting and Templates
Web Socket Connect & RTM
Using the BotKit SDK
Installing
Configuring
Events
Functions
BotKit SDK Tutorial – Agent Transfer
BotKit SDK Tutorial – Flight Search Sample Bot
Using an External NLP Engine
ADMINISTRATION
HOW TOs
Create a Simple Bot
Create a Banking Bot
Transfer Funds Task
Update Balance Task
Context Switching
Using Traits
Schedule a Smart Alert
Configure UI Forms
Add Form Data into Data Tables
Configuring Digital Views
Add Data to Data Tables
Update Data in Data Tables
Custom Dashboard
Custom Tags to filter Bot Metrics
Patterns for Intents & Entities
Build Knowledge Graph
Global Variables
Content Variables
Using Bot Functions
Configure Agent Transfer
RELEASE NOTES

Create a Banking Bot

This document helps you create a sample banking bot. This bot is used in various use case scenarios presented in the How-Tos section of the developer documentation.

Prerequisites

The following are the prerequisites:

  • You must have signed up with the Kore.ai Bots Platform.
  • You must be aware of the basics concepts of bot-building (refer to this link).
  • You must have created a simple bot (refer here for an example).

Bot Overview

The bot we build will perform the basic banking transactions. This bot will:

  • Get account balance based on the user’s Account Number and Account Type.
  • Update accounts with the balance. For more information, click here.
  • Transfer a specified amount from the user account to a payee account. For more information, click here.

Let us start building the bot and add Get Balance task to it.

Create a Bot

This document helps you to create a Standard Bot for banking activities. To create a standard bot, follow the below steps:

  1. Log in to your Kore.ai Bots Platform with valid credentials.
  2. On the bots landing page, click New Bot on the top-right and select Start from Scratch from the list.
  3. On the Create New Bot window, enter the bot details:
    1. Bot Name – Provide a name to your bot. For example, Banking Bot. If the name is already used, provide a different name.
    2. Set the Default Bot Language to English.
    3. Select the Bot Type as Standard Bot.
  4. Click Create.

Get Balance Intent

  • The Get Balance task prompts the user to enter an account number and the account type (Savings/Current).
  • It makes a service call to fetch the details.
  • The balance for the requested account is displayed.

Dialog Task

Successful creation of the bot directs you to the Bot Summary page. We need to add a Dialog Task as the first step in the Bot. Intent Dialog is the first step in the user-bot conversation flow.

  1. On the Bot Summary page, click + New Task on the Tasks widget.
  2. Select Dialog Task from the list.
  3. On the Create Dialog window, enter the following details:
    • Enter a name in the Intent Name field. This is the phrase that triggers the dialog. The intent name must be simple and not more than 3-4 words. For example, Get Balance.
    • Enter a description in the Description field.
    • In the Intent Training field, add unique utterances to improve the user intent recognition.
    • Under More Options, you can add other dialog-related details. Let us retain the default settings.
    • Select Try Conversation Driven Dialog Builder option.
  4. Click Proceed.
    Note: For instructions with the older Dialog Builder, refer here

Entity Node

Entity Node is typically used to gather information from the user. Here, it is used to capture the user input for Account Number and Account Type.

  1. Click the + icon below the User Intent (Get Balance) node.
  2. Select Entity from the list and click + Entity.
  3. Click on the newly created Entity node to open the Property window.
  4. Under the General Settings section, enter the following details:
    • Name: AccountNumber
    • Display Name: Account Number 
    • TypeNumber
    • User Prompts: Enter the following text and press Enter to save:
      Enter the account number.

  5. Close the AccountNumber Entity Property window.
  6. Repeat the above steps to add another entity with the following details:
    • Name: AccountType
    • Display Name: Account Type 
    • User Prompts: Enter the following text and press Enter to save:
      Enter the account type.
    • Display List Of Values: Select Yes, use channel-specific standard formatting for default messages and show the available list of values to the end-user. This presents the list of values in a button template for the supported channels.
    • Type: Select List of Items (enumerated) from the drop-down list.
    • Provide the list of values that the user can select.
      1. Click the Settings icon that appears next to the field.
      2. Under the Account Type section, select the Static List radio button.
      3. Under the Keys & values to use section, enter
        1. the Display Name as Savings and Current. 
        2. Value and Synonym columns will auto-populate. Change the Value to savings and current, since our mockapi has the account type saved in lowercase.
      4. Click Save on the top-right of the page.
    • Close the AccountType Entity Property window.

Bot Action – Service Node

Service Node allows you to make a backend API call and is under Bot Action.

Here, the service node is used to call an API to fetch the account balance for the user-entered account number. You can find a dummy API setup for this tutorial. A mock API is created specifically for this purpose with the following fields – FirstName, LastName, Address, City, Country, ZipCode, AccountNumber, AccountType, Balance.

  1. From the left pane, drag and drop the Bot Action node below the Account Type entity node.
  2. The newly created Bot Action node would be expanded. If not, click the + icon to expand
  3. From the left pane, drag and drop the Service node to the Bot Action node layout,
    or on the Bot Action node layout, click the + icon and select Service from the list, and click + New Service.
  4. A Service node is added to the Bot Actions node layout.
  5. Click the Service node to open its Property window.
  6. Under the General Settings section, enter the following details:
    • Name: GetAccountBalance
    • Display Name: Get Account Balance
    • Description: Enter a description to describe the service node.
    • Click DEFINE REQUEST.
      • On the Define Request page, enter the following details:
        • Request typeGET
        • Request URLhttps://5c3c633d29429300143fe4d2.mockapi.io/AccountDetails?filter={{context.entities.AccountNumber}}
          Due to the limitations of the dummy API service, instead of fetching the record for the given account number, the response is filtered for the required account number.
        • This API does not require any Auth, or Header Parameters.
        • Click the Test Request tab.
        • Enter an account number in the Sample Context Values section. This is the filter parameter needed by the API, you can use the following account number 02929664.
        • Click Test on the top-right of the page. Wait for the test to be completed and you get a Status Code: 200.
        • You can see an array of records returned by the API call. In the next step, values are parsed using JavaScript.
        • Click Save as Sample Response.
        • Click Save on the top-right of the page.
  7. On the Service node Property window, click the Connections tab.
    • Under the Connection Rules section, ensure that the Default connection is set to End of Bot Action.
  8. Close the Service Property window.
  9. Click  next to the Bot Action node to collapse the bot action node.

Message Node

A Message node displays a message from the bot to the user. Here, the Message node is used to show the balance.

  1. From the left pane, drag and drop the Message node below the Bot Action node, or click the + icon below the Bot Action node.
  2. Select Message from the list and click + New Message.
  3. Click the Message node to open its Property window.
  4. Enter the following details:
    • Name: BalanceMessage
    • Display Name: Balance Message
    • Bot Responses: Define a standard message to send to the user.
      • Click Manage.
      • On the Manage User Prompts page, you can find the user prompt.
      • Open the user prompt to define JavaScript to parse the message for all channels.
      • Under the Channels section, select All from the drop-down list. Refer to the image below.
        • Under the Message section, click the Advanced tab.
        • Add the following JavaScript. The JavaScript is written to compare all the records filtered for the AccountType as entered by the user and then display the Balance.
          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);
              }
        • Click Save
  5. Go back to the Dialog Builder.
  6. On the Message node Property window, click the Connections tab.
    • Under the Connection Rules section, change the Default connection from Not Connected to End of Dialog.
  7. Close the Property window.

Test

To test the dialog task, you can use the Talk to bot option at the bottom-right.

  1. Enter the following utterance (intent name) Get Balance.
  2. Follow the bot instructions:
    • Enter Account Number – 67846279
    • Select Account Type – Savings
  3. See the Account Balance.

Next Steps

Now that you have added the Get Balance dialog task to the Banking bot, the next step is to add the Update Balance task. For convenience, the steps for Update Balance are split into different documents. Click here to continue.