How Tos

グループノードを利用したインテントのスコーピング

文脈的に関連するサブインテントを追加することは、会話型ボットを構築する上で重要な要素の1つです。文脈的に関連するインテントは、ダイアログフローの中で異なるパスを利用して、過去に提供されたエンティティ値を修正するなど、さまざまな目的で必要となります。 コンテクスト切り替えの管理方法では、より自然で人間らしいボットとの対話を実現するために、コンテクストデータの割り込み処理と組み合わせて使用する方法を見てきました。 この機能の主な目的は、任意の2つのインテント間の割り込み動作を定義することです。 この機能を使用して、カスタムフルフィルメント動作を持つコンテクストに関連するインテントの動作を定義することは困難です。 コンテクストNLUを簡素化する目的で、グループノードの機能が強化され、インテントのスコープ、トレーニング、フルフィルメントの設定が可能になりました。詳細はこちらをご覧ください。 この手引きでは、余談、入力値の修正、文脈に沿ったフォローアップの質問等を含むフライト予約ボットのシナリオを探ります。グループノードを使用して、これらすべてを簡単かつ一か所から実現していきます。 問題点 航空券を予約する過程で、ユーザーが 目的地や日程を変更する場合、 予約を確定する前に、フライト予約タスクに含まれていない気象情報を確認したい場合 予約に関して質問がある場合 タスクをキャンセルする場合 前提条件 この手引きでは、以下のダイアログタスクを使用するフライト詳細ボットを使用します。 フライト予約ダイアログ 出発地、目的地、日程、オンラインチェックインのオプションの入力をユーザーに促す 予約確認メッセージを表示する(わかりやすくするため、実際に予約を行うためのサービスコールは追加していません) ユーザーがさらにサポートを必要としているかどうかを確認する 会話を終了する 天気予報ダイアログ 天気予報を知りたい場所をユーザに尋ねる 天気予報のメッセージを表示する(わかりやすくするため、実際の天気予報を検索するサービスコールは追加していません) 実装 エンティティの変更 ここでは、ユーザーが目的地や日程を変更する場合を想定します。以下は、そのための手順です。 ステップ1: サブインテントのスコーピングのため、ノードをグループ化します。 最初のステップは、目的地と日程の変更を引き起こすサブインテントのスコープを定義することです。 ユーザーは、会話中にいつでも目的地や日程を変更できる必要がありますが、実際は予約の前に変更されなければならないため、範囲はエンティティノードになります。マウスを使って、グループノードを形成するエンティティを選択します。 グループに名前を付けます。たとえば、旅行の詳細グループとします ステップ2a: サブインテントを定義し、目的地と日程の変更に対する動作をトレーニングしてプロパティを設定する 次に、サブインテントを定義し、トレーニングを追加し、オプションとして、サブインテントが特定されるべき条件と、その場合のボットの動作を設定する必要があります。 まず、目的地と日程の変更を可能にする場合を考えてみましょう。 エンティティグループウィンドウからインテントの追加ボタンをクリックします 日程と目的地の変更を許可するインテントを作成します インテントの名前を「変更日および変更先」のように入力します 説明を入力します 「トレーニング」の「機械学習」オプションを使用して、このインテントを特定できるようユーザーの発話でトレーニングしてみましょう 「別の日付と目的地を試してみましょう」というように、発話を追加します 「気が変わったから、もう一度やり直そう」というように、オプションで別の発話を追加します この発話のサブインテントをトレーニングします。 目的地と日程をリセットする 「フルフィルメント」の「コンテクストの変数を設定する」オプションで、以下のキー/値ペアを使用して、目的地の都市と日程をリセットします。 キー 値 context.entities.To null context.entities.When null…

エンティティルール

これらの値処理前のユーザー入力の検証は、Botの効率性とユーザー体験を改善する上で大きな役割を果たします。エンティティタイプが基本的制限を課さない一方、これらは必ずしも十分ではなく、特定のビジネス要件を満たしません。エンティティルールは追加処理のヒントと検証に使用できます。エンティティルールは、エンティティルールセクションの、対応するエンティティの インスタンスプロパティから追加できます。提供されたJSONエディタにルールを追加します。 方法はこちらを参照してください。これらのルールはエンティティのスクリプトでも設定できます。その場合、ルールはダイアログフローのエンティティプロンプトの前に設定する必要があります。スクリプトノードを、以下のスクリプトでダイアログの開始時、または関連エンティティノードの直前に追加します。 context.entityRules.<entityName> = { "ruleName": "value" } サブエンティティルールは複合エンティティルールの一部にできます。 context.entityRules.<compositeEntityName> = { <subentityName> : { "ruleName": "value" } } 以下は、必要なエンティティのJSONエディタに入力できる、または上のスクリプトに ruleName として含めることができるエンティティルールです。このリストは引き続き改善および更新していきます。フィードバックまたは提言がある場合は、コミュニティフォーラムに投稿していただければ、可能な場合は当社の開発者が対応します。 汎用ルール ruleName 値 説明 processLatestSentence 真/偽 文章のチェックの制限は、現在のボレーからのみです。 例 { "processLatestSentence": <true/false> } patternsOnly 真/偽 エンティティパターンのみの一致に制限します。デフォルトで、指定されたエンティティパターンがエンティティ値を抽出しない場合、プラットフォームはユーザーの発話から値を検索します。このルールを真に設定すると、そのデフォルト処理は無効化されます。 例 { "patternsOnly": <true/false> } allowConfirmation 真/偽 抽出されたエンティティ値は、各入力後にユーザーに表示され、フローはユーザーが確認後にのみ続行します。現在、このルールはLoV 列挙されたエンティティタイプにのみ適用されます。 例 { "allowConfirmation": <true/false>…

UIフォームからデータテーブルにデータを追加する方法

このハウツーでは、ユーザーが追加の口座を作成できるバンキングBotのシナリオについてご説明します。UIフォームから収集されたデータをどのように使用してデータテーブルに口座を作成できるかを確認します。どのUIフォームがKore.ai Botプラットフォームでどのように導入されているかの詳細については、こちらを参照してください。どのデータテーブルがKore.ai Botプラットフォームでどのように導入されているかの詳細については、こちらを参照してください。 例題 以下のシナリオに取り組むバンキングBotを検討します。 すでに登録済みのユーザーが追加の口座を開設したいと考えています。 利用可能な口座には3つのタイプがあり、それぞれに追加のオプションがあります。 普通預金口座 キャッシュカードを選択して最小残高を設定するオプションを備えた当座預金口座 プラチナ、ゴールド、シルバー、ベーシックからいずれかを選択できるクレジットカード 上記データはUIフォームを使用するユーザーから収集されます。 このデータはデータテーブルに更新する必要があります。 Pre-requisites Botビルドナレッジ アクセス権付きバンキングBot ここで作成された顧客詳細テーブル 口座詳細テーブル、上のリンクで表示される同じステップを使用して、以下のデータテーブルを作成します。 名前、たとえばaccountdetails 説明、たとえば口座詳細テーブル 列セクションに、以下の詳細を追加します。 列名 タイプ 必須 追加設定 AccountId 数 あり 暗号化および最大長5 AccountName 文字列 あり – AccountType 文字列 なし – CustId 数 あり customertable.CustIdとしての参照テーブルおよび列 CashCard 文字列 なし – WithdrawalLimit 数 なし – CCType 文字列…

データテーブルのデータの更新方法

このハウツーでは、顧客の口座関連データが保存されるデータテーブルのバンキングBotのシナリオを調査します。ユーザーからの要求でデータを更新できる方法を確認します。データテーブルおよびKore.ai Botプラットフォームでどのように導入されているかの詳細については、こちらを参照してください。 例題 以下のデータが保存される指定顧客のバンキングBotを考えてください。このデータは顧客の要求により更新する必要があります。顧客はメールIDおよびアドレス詳細のみを更新できます。 ID 名前 メールID アドレス、および タイプ Pre-requisites Botビルドナレッジ 上記テーブルへのアクセス権付きバンキングBot、そのテーブルにあるデータ(データを作成および追加するユースケースは、こちらを参照してください)。 設定 次の各シナリオを1つずつ考えてみましょう。 ダイアログタスク: 必須情報の収集、および サービスを呼び出し、顧客情報を更新 ダイアログタスクの設定 必須情報を収集するダイアログタスクを作成し、サービスノードを使用して収集した値でデータテーブルを更新します。 ダイアログタスクの作成 左のナビゲーションメニューからBotタスク -> ダイアログタスクを選択します。 ダイアログタスクに対して+をクリックして、新しいタスクを作成します。 IntentName、たとえばUpdateCustomerを入力します。 作成および続行して、ダイアログビルダーページを開きます。 インテントノードのデフォルト設定を保持し、インテントノードを閉じます。 インテントノードの隣の+をクリックし、エンティティを追加して顧客IDを取得します。 エンティティ名 タイプ ユーザープロンプト CustId 文字列 顧客IDの入力 最初に、指定した顧客IDのテーブルからデータを取得し、ロジックノードを使用してプロセスフローを制御します。 データの取得 サービスコールを使用して、テーブルからデータを取得できます。 エンティティノードに対して、+をクリックします。 サービス -> 新しいサービスノード オプションを選択します。 基本設定セクションから、以下を設定します。 名前、たとえばGetCustomerData 表示名、たとえば顧客データ取得 サービスタイプで、データサービスを選択 タイプで、テーブルを選択 要求定義で、要求を追加をクリックして要求を定義し、テーブルからデータを取得します。 データサービス要求定義ページに、以下を入力します。 顧客テーブルとしての…

データテーブルのデータの追加方法

このハウツーでは、顧客の口座関連データが保存されるデータテーブルのバンキングBotのシナリオを調査します。ユーザーから収集された必須情報を保存できる方法を確認します。データテーブルおよびKore.ai Botプラットフォームでどのように導入されているかの詳細については、こちらを参照してください。 例題 以下のデータを保存する必要がある指定顧客のバンキングBotを考えてください。 ID 名前 メールID アドレス、および タイプ Pre-requisites Botビルドナレッジ バンキングBot 設定 次の各シナリオを1つずつ考えてみましょう。 上記の要件でのデータテーブルの定義 ダイアログタスク: 必須情報の収集、および サービスを呼び出し、顧客情報を更新 データテーブル設定 以下の情報を保持するデータテーブルを作成します。 CustId – 顧客の一意の識別子 CustName – 顧客名 CustEmail – 顧客のメールID CustType – 顧客のタイプ – 通常、推奨など アドレス – 顧客のアドレス テーブル作成 Kore.ai Botビルダープラットフォームにログインします。 データタブを選択します。 新しいテーブルボタンをクリックします。 新しいテーブルページに、以下を入力します。 名前、たとえばcustomertable 説明、たとえば 顧客詳細を含むテーブル 列セクションに、以下の詳細を追加します。 列名 タイプ 必須…

デジタルフォームの設定方法

このハウツーでは、ユーザーが追加の口座を作成できるバンキングBotのシナリオについてご説明します。ここでは、デジタルフォームを使用してユーザーから必要となるすべての情報を収集し、口座を作成する方法を見ていきます。デジタルフォームとは何か、またKore.aiのBotプラットフォームにどのように実装されているかについての詳細は、こちらを参照してください。 例題 以下のシナリオに取り組むバンキングBotを検討します。 すでに登録済みのユーザーが追加の口座を開設したいと考えています。 利用可能な口座には3つのタイプがあり、それぞれに追加のオプションがあります。 普通預金口座 キャッシュカードを選択して最小残高を設定するオプションを備えた当座預金口座 プラチナ、ゴールド、シルバー、ベーシックからいずれかを選択できるクレジットカード Pre-requisites Botビルドナレッジ バンキングBot 設定 次の各シナリオを1つずつ考えてみましょう。 ユーザーからの入力を収集するデジタルフォーム ダイアログタスク: 上記のデジタルフォームをトリガーします ユーザーが入力した口座情報を取得します デジタルフォームの設定 次の情報を収集するためのフォームを作成します。 口座名-ユーザーの名前が事前に入力されていますが、変更することもできます。 ユーザーが作成する口座のタイプ。デフォルトでは普通預金口座が選択されています。 上記で選択した口座のタイプに基づいて、次の詳細事項が収集されます。 普通預金-これ以上の情報は必要ありません。 当座預金-キャッシュカードが必要かどうかの情報。必要な場合、カードに適用される最大引き出し限度額($100~$1,000の範囲)。 クレジットカード-必要なカードのタイプ プラチナカード(追加料金が必要となります) ゴールドカード シルバーカード ベーシックカード フォームの作成 Kore.aiのBotビルダープラットフォームから、バンキングBotを開きます。 左側のナビゲーションメニューから、Botタスク -> デジタルフォームを選択し、デジタルフォームページにアクセスします。 新しいフォームをクリックし、次の内容を入力します。 名前-フォームにOpenAccountなどの名前を付けます。 表示名-フォームの表示名については口座開設などとします。 説明-フォームの説明を入力します。 保存および続行を行い、次のステップに進みます。 フォームエディタ フォームエディタを開くと、左側にコンポーネントが配置され、空白のフォームが表示されます。必要に応じて、コンポーネントをフォームにドラッグアンドドロップすることができます。 デフォルトでは、フォームに送信ボタンが追加されています。これにより送信イベントがトリガーされ、ユーザー入力をキャプチャし、コンテキストオブジェクトに保存されます。 テキストフィールドコンポーネントをフォームにドラッグアンドドロップします。 コンポーネントをドラッグアンドドロップするとすぐに、そのプロパティの設定パネルが表示されます。 そのパネルで、次の値を設定します。 表示名 を名前などとします。 名前は内部参照に使用されますので、口座名などとします。 説明-フィールドの説明を入力します。 プレースホルダーは、空白の場合にフィールドに表示される値となります。口座名義人の名前を入力などのように設定します。 スクロールしてデータ設定を探し、デフォルト値に{{context.session.UserContext.firstName}}を入力します。これにより、ログイン資格情報に基づいてユーザーコンテキストに表示されるユーザー名がフィールドに事前入力されます。…

多言語対応Botの動作

多言語対応Botの場合、多くのBotの動作は言語によって変わることはありませんが、言語の意味論によってはいくつかの制限が出てきます。このドキュメントでは、言語に依存するさまざまな動作をリストアップし、Bot開発者がそれぞれのシナリオに対応できるようにします。 パターンのサポート このドキュメントでは、インテント検出とエンティティ抽出にパターンを使用する方法について見てきました。これらのルールは、英語においてのBotを対象としています。多言語対応Botはこれらのルールを尊重していますが、言語の意味論によってはいくつかの制限が出てきます。 また、パターンはスモールトーク(クエリの定義時)、ナレッジグラフ(代替的な質問フィールドを使用)、特性の確認でも使用することができますが、動作がわずかに異なる場合があります。 パターン構文 インテント検出とエンティティ抽出 スモール トーク 特性 ナレッジ グラフ サポートされている言語 サポートされていない言語 word1 word2 … wordn これにより、ユーザーの発話で使用できるように定義されたすべての単語が同じ連続した順序で使用可能になり、その間で、前後に単語の追加が許可されます。 すべての言語 – あり あり あり word1_word2 フレーズを強制し、word1とword2の間に追加の単語を含めることはできません。 すべての言語  – あり あり あり word1 * word2 指定された単語/フレーズ間に0から無限に追加される単語数 すべての言語  – あり あり あり word1 *n word2 指定された単語/フレーズ間にn個から無限に追加される単語数 すべての言語  – あり あり あり word1 *0…

Botのリリースライフサイクルを管理する方法

このハウツーでは、Botの開発、テスト、パイロット、本番リリースの目的で、最終的にエンドユーザーがBotを利用できるようになるまでに複数の段階を設定しているシナリオについて説明します。 例題 開発者がBotの開発を完了し、QAチームがBotにアクセスしてテストするのに際し、Botをテスト環境に移行させる必要がある場合を考えてみます。Botの定義は、いくつかの環境固有の値を除いて大幅に変更されることはありません。 このドキュメントでは、Botのエクスポートおよびインポート機能を使用して同じことを実現する方法をご紹介します。Botのインポートとエクスポートの詳細については、こちらを参照してください。 Pre-requisites Botビルドナレッジ 完全に開発され、機能しているBotが必要となります。ここでは、バンキングBotを使用します。 導入 ステップ1-Botのエクスポート 開発環境からテスト環境に移行するBotを開きます。 設定 -> Bot管理からBotのエクスポートオプションを選択します。 エクスポートしたいBotコンポーネントを選択します。最初はすべてのコンポーネントをエクスポートしますが、その後は選択したコンポーネントのみをエクスポートするよう選択できます。 エクスポートをクリックします。 Bot定義はZIPファイルとしてエクスポートされます。 このファイルは、Bot定義をコードリポジトリにチェックインしたり、任意のチケットシステムに送ったりするために使用できます。 ステップ2-config.jsonの修正 環境固有の値を必要とするすべての変数は、エクスポートしたファイルに含まれるconfig.jsonファイルで利用できます。 これらのグローバル変数を更新します(グローバル変数の詳細については、こちらをご覧くださいまた事例についてはこちらをご覧ください)。 これで、インフラストラクチャ/DevOpsチームとファイルを共有して、他の環境でのデプロイを開始できます。 権限がある場合は、以下のステップに従ってBotをターゲット環境にインポートできます。 ステップ3-Botのインポート 前のステップでエクスポートしたzipファイルからファイルを抽出します。 テスト環境で、新しいBotを作成します。 設定 -> Bot管理からBotのインポートオプションを選択します。 前のステップから、Bot定義ファイル、Bot設定ファイル、カスタムスクリプトファイル(ある場合)を選択します。 フルインポートのインポートオプションを選択します。既存のBotにこのオプションを使用する場合、現在のBot設定は消去され、インポートされたBotに置き換えられることに注意してください。 インポートをクリックします。 Botがテスト環境に置かれ、QAチームによるテストが可能になります。 ステップ4-Botの更新 Botを変更すると、その変更をテスト環境のBotに適用する必要がある場合があります。 開発環境から、変更されたBotを開きます。 設定 -> Bot管理からBotのエクスポートオプションを選択します。 エクスポートしたいBotコンポーネントを選択します。変更したコンポーネントのみをエクスポートするように設定することもできます。 エクスポートをクリックします。 Bot定義はZIPファイルとしてエクスポートされます。 zipファイルからファイルを抽出します。 エクスポートしたファイルに存在するconfig.jsonファイルで、環境固有の値を必要とする変数値を変更します。 テスト環境で、更新が必要なBotを開きます。 設定 -> Bot管理からBotのインポートオプションを選択します。 前の抽出ステップから、Bot定義ファイル、Bot設定ファイル、カスタムスクリプトファイル(ある場合)を選択します。 増分インポートのインポートオプションを選択します。 インポートをクリックします。 更新されたBotがテスト環境に置かれ、QAチームによるテストが可能になります。

ユースケース

このページでは、Bot開発において様々な場面で役立つリンクを紹介しています。ほとんどはユースケースや例題に基づいており、一部に説明的なものもありますが非常に便利な内容です。ぜひお読みください。 操作方法Botソリューションベストプラクティスはじめ方必要な項目を探す操作方法 トレイトの使用方法 コンテキスト切り替えの管理方法 グローバル変数の使用方法 コンテンツ変数の使用方法 Bot関数の使用方法 カスタムメタタグを使用してBot分析をフィルタリングする方法 デジタルビューの設定方法 カスタムダッシュボードの作成方法 FAQをナレッジグラフに抽出する方法 多言語対応Botの設定方法 IVR対応Botの構築方法 スマートアラートのスケジュール設定方法 エージェント転送の設定方法 ウェブSDKの使用方法 APIスコープをアプリに関連付ける方法 環境間でBotを移動する方法 Botソリューション はじめてのBot 残高取得タスクを使用したバンキングBotの作成 バンキングBotへの資金の移動タスクの追加 バンキングBotへの残高確認タスクの追加 ベストプラクティス NLPの設定とガイドライン インテントとエンティティのパターン ナレッジグラフの作成 はじめ方 Kore.aiのBotビルダープラットフォームへのアクセス Bot構築の開始 Botの設計 Botの視覚化 必要な項目を探す Botビルダーのランディングページ Botビルダーの左ナビゲーション Botタスクのビルダーページ Botタスク ダイアログビルダーツールの使用

コンテンツ変数の使用方法

Kore.ai Botプラットフォームは、Bot内で変数を宣言および使用する方法を提供します。これらの変数を使用すると、別のタスク、ノードおよびその他のBot要素で一般的に使用される値を取得できます。このハウツーでは、Bot変数を使用できるバンキングBotでシナリオを調査します。ここでは、コンテンツ変数を使用して言語固有のメッセージを渡す方法を説明していきます。Bot変数とは何か、およびKore.ai Botプラットフォームでの実装方法の詳細については、こちらを参照してください。グローバル変数のユースケースについては、こちらを参照してください。 例題 当社のバンキングBotでは、Botに接続するユーザーを歓迎します。Botを多言語対応とし、メッセージを適切なユーザー言語で表示したいと考えています。このドキュメントでは、コンテンツ変数を使用してメッセージを複数の言語で保存する方法を説明します。 Pre-requisites Botビルドナレッジ バンキングBotには接続時イベントが次のように設定されます。 自然言語 -> デフォルトの会話からイベントハンドラーを選択します。 接続時イベントをクリックし、メッセージを表示を設定します。 Botのスペイン語を有効にします。 設定  -> 構成設定から言語管理を選択してスペイン語を有効にします。 導入 接続時メッセージを保持するようにコンテンツ変数を宣言することで、言語翻訳の際に見逃されないようにします。 バンキングBotを開きます。 設定 -> 構成設定からコンテンツ変数セクションを選択します。 コンテンツ変数を追加をクリックして、対応するウィンドウを開きます。 変数名と変数値を入力します。このユースケースでは、変数名をconnectMessageとし、値にはバンキングポータルへようこそ – すべてのバンキングのニーズにワンストップでご提供しますを入力します。 保存します。 次に、言語をスペイン語に切り替え、編集アイコンを使用します。同じ connectMessage 変数に対してスペイン語のテキストで、Bienvenido al portal bancario: su única parada para todas las necesidades bancariasと入力します。 接続時イベントハンドラーに戻り、次のコードを使用して、テキストをコンテンツ変数の参照に置き換えます。 {{content.connectMessage}} 変更を保存します。 テスト Botと会話するを使用して、変更内容をテストします。 Botと会話するを開きます。 メッセージは英語で表示されます。 言語を切り替えるには、cheatコマンドを使用します。cheat lang Es Botに再接続すると、スペイン語のメッセージが表示されます。