Chatbot Overview
Conversational Bots
Intents & Entities
Intelligent Bots
Kore.ai's Approach
Kore.ai Conversational Platform
Bot Concepts and Terminology
Natural Language Processing (NLP)
Bot Types
Bot Tasks
Starting with Kore.ai Platform
How to Access Bot Builder
Working with Kore.ai Bot Builder
Building your first Bot
Getting Started with Building Bots
Using the Dialog Builder Tool
Creating a Simple Bot
Release Notes
Latest Updates
Older Releases
Deprecations
Bot Builder
Creating a Bot
Design
Develop
Storyboard
Dialog Task
User Intent Node
Dialog Node
Entity Node
Supported Entity Types
Composite Entities
Supported Time Zones
Supported Colors
Supported Company Names
Form Node
Logic Node
Message Nodes
Confirmation Nodes
Service Node
Custom Authentication
2-way SSL for Service nodes
Script Node
Agent Transfer Node
WebHook Node
Grouping Nodes
Connections & Transitions
Managing Dialogs
Prompt Editor
Alert Tasks
Alert Tasks
Ignore Words and Field Memory
Digital Forms
Digital Views
Knowledge Graph
Terminology
Building
Generation
Importing and Exporting
Analysis
Knowledge Extraction
Small Talk
Action & Information Task
Action Tasks
Information Tasks
Establishing Flows
Natural Language
Overview
Machine Learning
ML Model
Fundamental Meaning
NLP Settings and Guidelines
Knowledge Graph Training
Traits
Ranking and Resolver
NLP Detection
Bot Intelligence
Overview
Context Management
Session and Context Variables
Context Object
Dialog Management
Sub-Intents
Amend Entity
Multi-Intent Detection
Sentiment Management
Tone Analysis
Sentiment Management
Default Conversations
Default Standard Responses
Channel Enablement
Test & Debug
Talk to Bot
Utterance Testing
Batch Testing
Record Conversations
Publishing your Bot
Analyzing your Bot
Overview
Dashboard
Custom Dashboard
Conversation Flows
Bot Metrics
Advanced Topics
Bot Authorization
Language Management
Collaborative Development
IVR Integration
Data Table
Universal Bots
Defining
Creating
Training
Customizing
Enabling Languages
Smart Bots
Defining
Sample Bots
Github
Asana
Travel Planning
Flight Search
Event Based Bot Actions
koreUtil Libraries
Bot Settings
Bot Functions
General Settings
PII Settings
Customizing Error Messages
Bot Management
Bot Versioning
Using Bot Variables
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
Bot Administration
Bots Admin Console
Dashboard
User Management
Managing Users
Managing Groups
Managing Role
Bots Management
Enrollment
Inviting Users
Bulk Invites
Importing Users
Synchronizing Users from AD
Security & Compliance
Using Single Sign-On
Security Settings
Cloud Connector
Analytics
Billing
How Tos
Creating a Simple Bot
Creating a Banking Bot
Transfer Funds Task
Update Balance Task
Context Switching
Using Traits
Schedule a Smart Alert
Configure Digital 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
  1. Home
  2. ダイアログタスク
  3. エンティティノードでの作業

エンティティノードでの作業

ボットはユーザーのインテントを満たすために、ユーザーの発言から関連情報を抽出する必要があります。

発言サンプルを見てみましょう:「日曜日発のLAからNYCまでのフライトを予約してください。」。航空券を予約するというユーザーのインテントに基づいて動作するためには、ボットは出発地 (LA) 、目的地 (NYC) 、出発日 (日曜日) などのエンティティを抽出する必要があります。

ダイアログタスクでは、ユーザーの発言から取得したい重要なデータごとに、対応するエンティティノードを作成する必要があります。これらのノードにプロンプトメッセージを追加して、ユーザーが必要な値を入力できるようにすることができます。
Kore.aiは住所、空港、数量、タイムゾーンなど、30種類以上のエンティティをサポートしています。またリストからの選択、自由形式の入力、ユーザーからのファイルや画像の添付、正規表現としてエンティティを定義することができます。

注意:ユーザー名、場所、金額や期日などの一連のユーザー入力を収集して取引を完了させるためには、1つのエンティティノードを他のいくつかのエンティティノードでフォローし、その後にWebフックノードでAPIへのリクエストを処理してオンライン取引を完了させる必要がある場合があります。

エンティティノードの設定

ダイアログタスクでエンティティノードを設定するには、次のステップを実行します。

ステップ1:ダイアログタスクにエンティティノードを追加する

  1. エンティティノードを追加するところでダイアログタスクを開きます。
  2. エンティティノードを追加するノードの隣のノードにカーソルを合わせ、その上のプラスアイコンをクリックします。
  3. エンティティ > 新規エンティティノードを選択します (既存のエンティティノードをリストから選択して使用することもできます) 。
  4. エンティティノードのコンポーネントプロパティパネルが開きます。

ステップ2:コンポーネントプロパティを設定する

エンティティのコンポーネントプロパティでは、一般設定およびユーザーとエラープロンプトを設定することができます。

注意:このセクションにおける設定や調整は、このノードを使用する他のすべてのダイアログタスクに反映されます。

  1. エンティティノードの名前表示名を入力します。エンティティ名にスペースを含めることはできません。
  2. タイプのドロップダウンから、期待されるユーザー入力に応じてエンティティタイプを選択します。たとえば、ユーザーに出発日を入力させたい場合、ドロップダウンから 日付 を選択します。プラットフォームは、選択されたタイプに基づく基本的な検証を行います。
    エンティティタイプは、認識とシステムパフォーマンスの向上のため、ユーザーの発言から期待されるデータのタイプをNLPインタプリタに提供します。詳細については、エンティティタイプを参照してください。
  3. 選択されたタイプにより、エンティティをマルチアイテムとして設定し、ユーザーが複数選択できるようにするオプションがある場合があります。
  4. ユーザープロンプトテキストボックスに、このエンティティに対してユーザーに表示するプロンプトメッセージを入力します。たとえば、「出発日を入力してください」のように入力してください。ユーザープロンプトには、チャンネル特定のメッセージを入力することができます。詳細については、プロンプトエディタの使用を参照してください。
  5. エラープロンプトボックスでデフォルトのエラーメッセージを確認し、必要に応じてエラーの編集をクリックして変更します。詳細については、プロンプトエディタの使用を参照してください。

ステップ3:インスタンスプロパティを設定する

インスタンスプロパティを使用して、エンティティの値を必須にするかどうかを決定し、エンティティをキャプチャするために以前のユーザーの発言からの値を考慮するかどうかを選択します。

注意:インスタントプロパティパネルの設定は現在のダイアログタスク固有のものであり、このエンティティノードを使用する他のダイアログタスクには反映されません。

  1. エンティティノードのインスタンスプロパティアイコンをクリックします。
  2. ユーザー入力のセクションで、オプションを選択します。 (エンティティフローの管理方法については以下を参照してください。)
    • 必須:このエンティティは必須であり、ユーザーはダイアログフローを進める前に有効なエントリーを提供しなければなりません。ユーザーの発言でエンティティのあいまいな値が検出された場合、ユーザーに解決させるためのプロンプトが表示されます。
    • 任意:ユーザーはこのエンティティに対しては一度だけプロンプトが表示され、システムはユーザーによって提供されたすべての入力を処理します。ユーザーの発言でこれらのオプションのエンティティのあいまいな値が検出された場合、ユーザーに正しい値を選択させて解決するためのプロンプトが表示されます。
    • 非表示:有効にすると、ユーザーが明確にエンティティの値を提供しない限り、ボットはエンティティの値の入力を要求しません。
  3. ユーザー入力補正 セクション (このセクションはプラットフォームの ver7.3に導入済み) で、ユーザー入力を自動補正する必要があるかどうかを定義します。このオプションは文字列型エンティティでのみ利用可能です。2つのオプションは次のとおりです。
    • デフォルト設定はユーザー入力を自動補正するになっています。プラットフォームは、標準の辞書の上に、すべての同義語、タスク名、パターン単語、および世間話の発言の単語を含めるために、各ボット用のカスタム辞書を構築します。この機能がサポートされていない言語があります。詳細については、こちらを参照してください
    • ユーザー入力を自動補正しない
      後方互換性を確保するために、以下の設定が既存のボットに適用されます (ver7.3より古いボットをver7.3に移行する場合) :

      旧状態 (エンティティ抽出) 新状態 (ユーザー入力補正)
      前回の発言の未使用テキストを評価する ユーザー入力を自動補正しない
      過去の発言からエンティティの抽出に使われたテキストと未使用テキストを評価する ユーザー入力を自動補正しない
      前の発言を評価せず、ユーザーに明確にプロンプトする-自動補正しない[有効] ユーザー入力を自動補正しない
      前の発言を評価せず、ユーザーに明確にプロンプトする-自動補正しない[無効] ユーザー入力を自動補正する
  4. エンティティの抽出セクションには、以下のオプションのいずれかを選択します。
    • 以前の発言で未使用のテキストを評価:このオプションを選択すると、エンティティはこれまでダイアログ内の他のエンティティによって使用されなかったテキストを使用します。
    • 以前の発言から未使用のテキストとエンティティの抽出に使用したテキストを評価する:ダイアログ内で別のエンティティノードにより抽出されたエンティティ値を再利用したい場合は、このオプションを選択します。
    • 以前の発言を評価せず、ユーザーに明確にプロンプトする:ボットが以前のユーザーの発言を無視し、ユーザーに明確にエンティティの値を提供するように促す場合は、このオプションを選択します。
      • さらに、再利用しないのオプションを選択することで、このエンティティに提供された入力を再利用して他のエンティティを抽出することからプラットフォームを制限することができます。
  5. これらのオプションを設定するには、高度なコントロールをクリックします。
    • ユーザープロンプトクリックして無効にするボタンを使用して、エンティティノードのこの特定のインスタンスに対してカスタムユーザープロンプトを記述します。コンポーネントプロパティパネルのユーザープロンプトセクションは無効になります。また、これらのユーザープロンプトは、ノードの他のインスタンスには適用されません。
    • エラープロンプトクリックして無効にするボタンを使用して、エンティティノードのこの特定のインスタンスに対してカスタムエラープロンプトを記述します。コンポーネントプロパティパネルのエラープロンプトセクションは無効になります。また、これらのエラープロンプトは、ノードの他のインスタンスには適用されません。
    • インテント検出 (文字列と説明エンティティにのみ適用されます) 。これらのオプションのうち1つを選択すると、ボットが文字列または説明エンティティのユーザーエントリーの一部としてのエンティティに遭遇した場合の動作を決定することができます。
      • 入力をエンティティ値として受入れ、検出されたインテントを破棄する:ボットはユーザーの入力を文字列または説明としてキャプチャし、インテントを無視します。
      • ユーザー入力をインテントとして優先し、保留と再開設定で処理する:ユーザー入力はインテント検出とみなされ、保留と再開設定に従って処理されます。
      • 処理についてユーザーに確認する:インテントかエンティティかをユーザーが指定できるようにします。
  6. 保留と再開でこのノードでの割り込み処理を定義するには、以下から選択します。
    • タスクレベルの「保留と再開」設定を使用する:ボットは、ダイアログタスクレベルで設定された保留と再開の設定を参照します。
    • このノード用にカスタマイズするオプション:このオプションを選択して同じように構成することで、このノードの保留と再開設定をカスタマイズできます。 詳細については、割り込み処理とコンテキスト切り替えの記事を参照してください。
  7. 優先順位 (文字列と説明ノードを除くすべてのエンティティ型に適用) :あるエンティティに対するユーザーの入力が、そのエンティティに対する有効な値と別のインテントからなる場合、『エンティティよりインテントを優先』か『インテントよりエンティティを優先』のどちらかを選択することで、動作を制御することができます。たとえば、フライト予約ボットが目的地の入力を促し、ユーザーが『バンガロール、そこの天気はどうだ?』と入力した場合、ボットの反応を定義することができます。エンティティを選択し、インテントをフォローアップインテントのスタックに追加したり、または保留と再開設定に基づいて最初にインテントを実行するかです。
  • カスタムタグでは、ボットの会話のカスタムプロファイルを構築するためのタグを定義します。詳細については、こちらを参照してください。
  • ユーザー入力フロー

    ユーザーが入力を促されると、プラットフォームが行う処理は以下のようになります。

    • ユーザーが有効な値を返した場合、エンティティにはその値が入力され、ダイアログフローは続行されます。
    • ユーザーの応答であいまいな値が識別された場合、あいまいさ解決のためのプロンプトが表示されます。
    • ユーザーが無効な発言、つまりあいまいさ解決のための有効な入力が含まれていない発言で応答した場合:
      • 与えられた値がエンティティに対して有効であれば (エンティティに対して使用可能な任意の値) 、その値がエンティティに使用され、会話は継続されます。
      • 与えられた値がエンティティに対して有効でない場合、そして
        • 値がタスクインテント、FAQや世間話を作動させた場合、
          • インテントは保留と再開の設定に従って実行され、 (エンティティを含む) ダイアログが再開されたとき (再開された場合) 、ユーザーはエンティティの値の入力を再び促されます。
        • この値が、タスクインテント、FAQ、世間話を作動させない場合は、エンティティは空白のままとなり、エンティティの遷移点から会話が継続されます。

    ステップ4:接続プロパティを設定する

    ダイアログタスク内の任意のエンティティまたはコンテキストオブジェクトの値に基づいて条件文を記述したり、遷移にインテントを使用することができます。
    コンポーネントの遷移を設定するには、次のステップを実行します。

    1. デフォルト接続の下にある利用可能なノードから選択できます。
    2. 条件付きフローを構成するには、IFを追加をクリックします。
    3. 次のいずれかの基準に基づいて条件式を設定します。
      1. エンティティ:これらの演算子のいずれかを使用して、ダイアログ内のエンティティノードを特定の値と比較します。存在する等しいより大きいか等しいより小さいか等しい等しくないより大きいより小さい。それぞれのドロップダウンリストを使用するエンティティ、演算子を選択し、ボックスに数値を入力します。例:PassengerCount (エンティティ) が5 (指定された値) より大きい (演算子)
      2. コンテキスト:これらの演算子のいずれかを使用して、ダイアログ内のコンテキストオブジェクトを特定の値と比較します。b>存在する、等しいより大きいか等しいより小さいか等しい等しくないより大きいより小さい。Context.entity.PassengerCount (コンテキストオブジェクト) が5 (指定された値) より大きい (演算子)
      3. インテント:次のユーザー発言と一致するインテントを選択します。
    4. Then go toのドロップダウンリストから、条件式が成功した場合にダイアログフローで実行する次のノードを選択します。たとえば、PassengerCount (エンティティ) が5 (指定された値) より大きい (演算子) 場合、次に (Then go to) Offers (サブダイアログ) に進みます。
    5. Elseのドロップダウンリストから、条件式が失敗した場合に実行するノードを選択します。
    注意:複数のIf条件を書く場合は、最後のIf条件式の下でElse Ifを追加するをクリックしてください。

    ステップ5:NLPプロパティを設定する

    1. < エンティティ名>の提案同義語ボックスに、エンティティ名の同義語を入力します。各入力のあとにEnterキーを押して保存します。詳細については、同義語の管理を参照してください。
    2. <エンティティ名>の提案パターンで、+パターンを追加をクリックして、エンティティ用の新しいパターンを追加します。パターンフィールドが表示されます。詳細については、パターンの管理を参照してください。
    3. コンテキストの管理
      • このエンティティが、コンテキスト出力フィールドを使用して入力されたときにコンテキストに設定されるコンテキストタグを定義します。
      • コンテキストオブジェクトの一部としてキャプチャしたエンティティ値を自動的に発行します。
        (コンテキストの管理についてはこちらを参照してください。)

    ステップ6:IVRプロパティの設定

    このタブを使用して、IVRチャンネルで使用するこのノードの入力モード、文法、プロンプト、呼び出し動作のパラメータをノードレベルで定義することができます。詳細はこちらをご覧ください

    Menu