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

ボットの概念と用語

このセクションでは、Kore.ai Botプラットフォームに関連する主要な用語や概念について説明しています。

Bot

Botとは、人やデジタルシステム、インターネット対応のものとの間でインテリジェントな仲介役を務めるバーチャルアシスタントの一つの形態を指します。Botは、機械学習、自然言語処理、およびその他の形態の高度なソフトウェアを備えたインテリジェントなものであり、人間による複雑な会話を処理したり、過去のやり取りから学習したり、時間の経過とともに応答を改善したりすることができます。

発話

ユーザーがチャットBotに言ったことはすべて発話となります。例えば、ユーザーが次の日曜日のオーランド行きのフライトを予約してくださいと入力した場合、その文全体がユーザーの発話とみなされます。

インテント

ユーザーがチャットBotにしてほしいことについて説明している、発話中のいくつかの重要な単語のことを指します。通常は動詞と名詞の組み合わせです。例えば、上記のユーザーの次の日曜日のオーランド行きのフライトを予約してくださいという発話では、インテントはフライトを予約するになります。

エンティティ

ユーザーのインテントを満たすために、Botはその他の情報やパラメータを必要とすることがあります。例えば、フライトを予約するためには、出発地と目的地の都市や旅行日が必要になります。上記の例では、ユーザーの次の日曜日のオーランドへのフライトを予約してくださいという発話では、オーランド次の日曜日がエンティティになります

エンティティとは、チャットBotがユーザーからの要求を完了させるために必要なフィールド、データ、単語のことを指します。必要なエンティティが手元にあれば、Botプラットフォームはウェブサービスにアクセスして、特定のデータを取得したり、ユーザーインテントに沿ったアクションを実行したりすることができます。

パラメータとユーザー入力の詳細については、Botタスクの定義で、特定のタスクタイプのパラメータおよびフィールドを参照してください。

発話のサンプル インテント エンティティ
オーランド行きのフライトを予約する フライトを予約する 都市:オーランド
今週の日曜日にBillとのミーティングを予約する ミーティングを予約する 人名:Bill
日付:2018年4月22日
赤ワイン2本をカートに追加する カートに追加する アイテム:赤ワイン
数:2

自然言語処理

Botがユーザーインテントを識別し、ユーザーの発話から有用な情報を抽出し、そのデータ(エンティティ)を関連するタスクにマッピングするプロセスを指します。これにより、Botは複雑なメニューやプログラミング言語ではなく、テキスト形式で要求を処理することができます。
Kore.aiのプラットフォームは独自のNLP戦略を採用しています。ファンダメンタルミーニングと機械学習エンジンを組み合わせ、最適な会話精度を実現します。Kore.aiのプラットフォーム上に構築されたBotは、以下のことを理解して処理することができます。

  • 複数センテンスのメッセージ
  • 複数のインテント
  • コンテキストに沿った参照
  • パターンや慣用句など

人工知能

音声認識や理解、言語翻訳など、通常は人間のような知能を必要とする作業を行うために、人間の行動や意思決定をシミュレートする機械の能力のことを指します。

機械学習

明示的にプログラムされることなく、アルゴリズムやパターン、学習データを使って学習したり、隠れた洞察を見つけたりする機械の能力を指します。

エンティティ抽出

タスクを完了させるために、ユーザーの発話から関連性のある貴重なデータを抽出することを指します。Botは、ユーザーのタスクを完了させるためのデータがすべて揃っているかどうかを確認し、揃っていない場合は、不足している情報を送信するようユーザーに促す場合があります。

Botタスク

タスクとは、開発者によってチャットBotに指定されたさまざまなタイプの単純なジョブと複雑なジョブを指します。これらのタスクは、ユーザーインテントを満たすためにチャットBotによって実行されます。

旅行Botの場合、タスク名はチケットの予約、ホテルの検索、天気予報の提供など、ユーザーインテントに応じたものになります。

Botがユーザーインテントを理解すると、ウェブサービスにアクセスし、現在の天気予報を抽出し、その応答を解析し、ユーザーにデータを配信するなどのタスクを実行する準備が整います。

Kore.aiは5つの事前定義済みのタスクタイプを提供しており、事実上すべてのBotシナリオに対応しています。

アクションタスク

Botは、スケジューの予約、商品の検索、重要な情報の更新など、記録システムで情報を収集、修正、投稿することができます。

アラートタスク

Botは、バックエンドシステムをポーリングしたり、定期的に情報を取得したりすることで、エンタープライズシステムから直接、顧客や従業員にタイムリーで関連性の高い、パーソナライズされた通知を送信することができます。ユーザーやBot開発者はアラートを設定することができます。

ナレッジグラフ

Botは、事前定義済みの情報を照会することで、よくある質問への回答をユーザーに提供することができます。例えば、Botは、営業時間に関する顧客の質問に答えると同時に、返品ポリシーに関する質問にも答えることができます。

情報タスク

Botは、バックエンドシステムからのデータをレポート形式でユーザーに提供することができます。これらのレポートは、ユーザーの好み、適用可能なフィルタに基づいて書式設定およびまとめられ、後に使用するためにダウンロードすることができます。例えば、Botは、売上の多い順にまとめられた、昨年の営業担当者の地域別トップ10の詳細なレポートを営業マネージャーに提供することができます。

ダイアログタスク

Botは、人々が毎日行う自然なやり取りを再現した、複数のラリーを含む複雑な会話体験を処理することができます。

学習

学習とは、チャットBotがいかにして新しいインテントやエンティティを認識し、質問に正しく回答し、ユーザーの発話の重要な部分を識別するかということを指します。学習は手動でも自動でも行えます。そして人間と同様に、Botは自分が間違っているのはどんな時か、そして正しい行動、応答、または回答とは何であるかについて知る必要があります。

教師あり学習

入力変数(X)と出力変数(Y)があり、アルゴリズムを使用して入力から出力へのマッピング関数を学習する学習の形式です。ここでは、Botの開発者は教師としての役割を果たし、Botが学習する内容をコンピュータ上で完全に制御することができます。つまり、アルゴリズムは提供されたトレーニングデータに基づいて予測を行います。Bot作成者である開発者は、検出された結果が正しいか正しくないかのフラグを立てることで、これらの予測を手動で修正することができます。Botが何を理解すべきかについてBot開発者は
すでに把握しているため、開発者が決定した時点、またはモデルが許容できるレベルの性能に達した時点で、学習を停止することができます。

教師なし学習

Bot開発者の管理を必要としない学習の形式です。ここでは、Botは良好なすべての発話(つまりBotによって正常に認識された発話)と完了済みのタスクから学習します。Botは、これらの結果を利用してモデルを自動的に拡張し、不一致があった場合にはユーザーが提供するインテントの確認を含めて、Botを再トレーニングします。この形式のトレーニングにより、Botは言語能力を拡張し、問題のあった発話を除外しつつ、人間が介入することなく精度を向上させることができます。

メッセージチャネル

チャネルとは、SMS、電子メール、モバイルアプリ、ウェブサイト、メッセージアプリなど、Botが存在できる様々なコミュニケーションプラットフォームを指します。Botビルダーを使用すると、一度チャットBotのタスクを設計し、ボックスにチェックを入れるだけでチャネルをまたいで展開することができます。また、メッセージの応答を変更したり、日付セレクタやカルーセルなどのチャネル固有のUI要素を活用したりすることで、チャネル横断的な体験を差別化することができます。

変数、コンテキスト、セッションデータ

開発者がタスクを作成して定義すると、以下を利用することができるようになります。

  • Botプラットフォームが提供するセッション変数
  • それらが定義するカスタム変数
  • 変数の範囲を定義するコンテキスト

例えば、一部のAPIリクエストではタスクを実行する前にセッション変数を設定する必要があったり、次のノードに移動するためにダイアログタスクコンポーネントがセッション変数にアクセスする必要があったりします。ダイアログタスクは、追加のシステム変数でコンテキストオブジェクトにアクセスすることもできます。これらのセッション変数とコンテキスト変数によって、データを永続化して保存することができます。例えば、商業、輸送、宅配に特化したサービスに使用されるユーザーの自宅住所は、Botがタスクを実行するときに使用します。

Botプラットフォームは、JavaScriptを使用してセクション内でタスクを定義する際に使用されるセッション変数をサポートしています。セッション変数は、使用されるコンテキストや範囲によって異なります。例えば、エンタープライズレベル、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

Bot Concepts and Terminology

This section helps you with the key terms and concepts related to the Kore.ai Bots Platform.

Bot

A bot is a form of virtual assistant that acts as an intelligent intermediary between people, digital systems, and internet-enabled things. Bots are intelligent with machine learning, natural language processing, and other forms of advanced software that allows them to handle complex human conversations, learn from past interactions, and improve responses over time.

Utterance

Anything that a user says to the chatbot is an utterance. For example, if the user types Book me a flight to Orlando for next Sunday, the entire sentence is considered as the user utterance.

Intent

A few essential words in the utterance that describe what the user wants the chatbot to do. It is usually a combination of a verb and a noun. For example, in the above user utterance Book me a flight to Orlando for next Sunday, the intent is Book me a flight.

Entities

To fulfill user intent, the Bot may require additional information or parameters. For example, to book a flight, it needs the source and destination city along with the travel date. In the above example, user utterance Book me a flight to Orlando for next Sunday, Orlando and next Sunday are entities.

Entities are the necessary fields, data, or words for a chatbot to complete the user’s request. With the required entities in hand, the Bots Platform can reach out to the web service and get the specific data or perform the action as per the user intent.

For more information about parameters and user input, refer to the particular task type parameters and fields at Defining Bot Tasks.

Sample Utterance Intent Entity
Book me a flight to Orlando Book flight City: Orlando
Schedule a meeting with Bill this Sunday Schedule a meeting Person name: Bill
Date: April 22, 2018
Add two bottles of red wine to the cart Add to cart Item: Red Wine
Count: Two

Natural Language Processing

The process by which a bot identifies the user intent; extracts useful information from their utterance and maps that data (entities) to the relevant task. This allows bots to process requests in text form, rather than complicated menus or programming language.
Kore.ai’s platform uses a unique NLP strategy. It combines Fundamental Meaning and Machine Learning Engines for optimal conversation accuracy. Bots built on Kore.ai’s platform can understand and process the following:

  • Multi-sentence messages
  • Multiple intents
  • Contextual references
  • Patterns and idiomatic sentences, and more.

Artificial Intelligence

A machine’s ability to simulate human behavior and decision-making to perform tasks that normally require human-like intelligence, such as speech recognition and understanding, language translation, and more.

Machine Learning

A machine’s ability to use algorithms, patterns, and training data to learn and find hidden insights, without being explicitly programmed.

Entity Extraction

The extraction of relevant and valuable data from a user’s utterance to complete a task. Bots can ensure they have all the data to complete the user tasks and, if not, can prompt the user for the missing information.

Bot Tasks

Tasks refer to different types of simple and complex jobs that are designated to the chatbot by the developer. These tasks are performed by the chatbot to fulfill the user intents.

For a travel bot, task names are to book tickets, find hotels, provide weather forecasts, and so on which cater to different user intents.

Once the bot understands a user intent, it is ready to perform a task, such as reaching out to a web service, extracting the current weather conditions report, parsing that response, and then delivering the data to the user.

Kore.ai provides five pre-defined task types that virtually cover all bot scenarios.

Action Tasks

Bots can collect, modify, and post information in systems of record, like scheduling an appointment, searching for a product, or updating critical information.

Alert Tasks

Bots can deliver timely, relevant, and personalized notifications to customers and employees directly from the enterprise system by polling backend systems or by pulling information at regular intervals. Users or bot developers can configure alerts.

Knowledge Graph

Bots can provide users with answers to their most commonly asked questions by querying a predefined set of information. For example, a bot can answer customer questions regarding hours of operation while also answering questions about return policies.

Information Tasks

Bots can provide users with data from back-end systems in the form of reports. These reports are formatted and organized based on user preferences, applicable filters, and they can be downloaded for later use. For example, a bot can provide a sales manager with a report detailing the top 10 sales reps last year by region, organized from most to least sales.

Dialog Tasks

Bots can handle complex multi-turn conversational experiences that replicate the natural back and forth exchanges people have every day.

Learning

Learning is about how chatbots recognize new intents and entities, answer questions correctly, and identify the important aspects of a user utterance. Learning can be manual or automatic. And, just like humans, bots need to know when they are wrong and what the right action, response, or answer should be.

Supervised Learning

A form of learning in which you have input variables (X) and an output variable (Y), and you use an algorithm to learn the mapping function from the input to the output. Here, the bot developer acts as a teacher and has virtually full control over what the bot learns. This means that the algorithm makes predictions based on the training data provided. The bot creator developer can manually correct these predictions by flagging the findings as correct or incorrect. Since the bot developer already knows what the bot should understand, learning can be stopped as soon as the developer decides or when the model reaches an acceptable level of performance.

Unsupervised Learning

A form of learning that does not require a bot developer’s supervision. Here, the bot learns from all successful utterances, meaning those utterances that were successfully recognized by the bot and the completed tasks. It uses these findings to automatically expand the model and retrain the bot, including user-provided confirmations of intents in case of conflicts. This form of training allows bots to expand their language capabilities and improve their accuracy while excluding failed utterances and without human intervention.

Messaging Channels

Channels refer to various communication platforms where a bot can exist such as SMS, email, mobile apps, websites, messaging apps, and more. With the Bot Builder, you can design chatbot tasks once, and deploy across channels by merely checking a box. You can also differentiate cross-channel experiences by altering message responses or leveraging channel-specific UI elements like date selectors, carousels, and more.

Variables, Context, and Session Data

When developers create and define tasks, they can access the following:

  • Session variables provided by the Bots Platform.
  • Custom variables that they define.
  • The context that defines the scope of the variable.

For example, some API requests require you to set session variables before executing the task, or a dialog task component needs to access a session variable to transit to the next node. Dialog tasks can also access the context object with additional system variables. These session and context variables allow you to persist data and store. For example, a user’s home address for commerce, transportation, and home delivery-focused services is used by the bot when executing a task.

The Bots platform supports session variables that are used when defining tasks in sections using JavaScript. Session variables depend on the context or scope in which they are used. For example, enterprise-level, bot-level, user-level, and session level.