はじめに
対話型AIプラットフォーム
チャットボットの概要
自然言語処理(NLP)
ボットの概念と用語
クイックスタートガイド
プラットフォームへのアクセス
ボットビルダーの操作
リリースノート
最新バージョン(英語)
以前のバージョン(英語)
コンセプト
設計
ストーリーボード
ダイアログタスク
ダイアログタスクとは
ダイアログビルダー
ノードタイプ
インテントノード
ダイアログノード
エンティティノード
フォームノード
確認ノード
ロジックノード
ボットアクションノード
サービスノード
Webhookノード
スクリプトノード
グループノード
エージェント転送ノード
ユーザープロンプト
音声通話プロパティ
イベント ハンドラー
ナレッジグラフ
ナレッジグラフの抽出
ナレッジグラフの構築
ボットにナレッジグラフを追加
グラフの作成
ナレッジグラフの構築
既存のソースからFAQを構築
通知タスク
スモールトーク
デジタルスキル
デジタルフォーム
デジタルビュー
デジタルビューとは
パネル
ウィジェット
トレーニング
トレーニングとは
機械学習
機械学習とは
モデル検証
ファンダメンタルミーニング
ナレッジグラフ
示唆
ランキングおよび解決
NLPの詳細設定
NLPのガイドライン
インテリジェンス
インテリジェンスとは
コンテキスト
コンテキストインテント
割り込み
複数インテントの検出
エンティティの変更
デフォルトの会話
センチメント管理
トーン分析
テストとデバッグ
ボットと会話
発話テスト
バッチテスト
会話テスト
デプロイ
チャネル
公開
LLM and Generative AI
Introduction
LLM Integration
Kore.ai XO GPT Module
Prompts & Requests Library
Co-Pilot Features
Dynamic Conversations Features
分析
ボットの分析
NLPメトリクス
会話フロー
Usage Metrics
封じ込め測定
カスタムダッシュボード
カスタムダッシュボードとは
メタタグ
カスタムダッシュボードとウィジェット
ユニバーサルボット
ユニバーサルボットとは
ユニバーサルボットの定義
ユニバーサルボットの作成
ユニバーサルボットのトレーニング
ユニバーサルボットのカスタマイズ
他言語の有効化
ストア
プラントと使用
Overview
Usage Plans
Support Plans
Invoices
管理
ボット認証
複数言語対応ボット
個人を特定できる情報の編集
ボット変数の使用
IVRのシステム連携
一般設定
ボット管理
ハウツー
Integrations
Actions
Actions Overview
Asana
Configure
Templates
Azure OpenAI
Configure
Templates
BambooHR
Configure
Templates
Bitly
Configure
Templates
Confluence
Configure
Templates
DHL
Configure
Templates
Freshdesk
Configure
Templates
Freshservice
Configure
Templates
Google Maps
Configure
Templates
Here
Configure
Templates
HubSpot
Configure
Templates
JIRA
Configure
Templates
Microsoft Graph
Configure
Templates
Open AI
Configure
Templates
Salesforce
Configure
Templates
ServiceNow
Configure
Templates
Stripe
Configure
Templates
Shopify
Configure
Templates
Twilio
Configure
Templates
Zendesk
Configure
Templates
Agents
Agent Transfer Overview
Custom (BotKit)
Drift
Genesys
Intercom
NiceInContact
NiceInContact(User Hub)
Salesforce
ServiceNow
Configure Tokyo and Lower versions
Configure Utah and Higher versions
Unblu
External NLU Adapters
Overview
Dialogflow Engine
Test and Debug
会話スキルの設計
バンキングボットを作成
バンキングボット – 資金の振り替え
バンキングボット – 残高を更新
ナレッジグラフを構築
スマートアラートの予約方法
デジタルスキルの設計
デジタルフォームの設定方法
デジタルビューの設定方法
データテーブルのデータの追加方法
データテーブルのデータの更新方法
Add Data from Digital Forms
ボットのトレーニング
示唆の使用方法
インテントとエンティティのパターンの使用方法
コンテキスト切り替えの管理方法
ボットのデプロイ
エージェント転送の設定方法
ボット関数の使用方法
コンテンツ変数の使用方法
グローバル変数の使用方法
ボットの分析
カスタムダッシュボードの作成方法
カスタムタグを使ってフィルタリング
Data
Overview
Data Table
Table Views
App Definitions
Data as Service
Build a Travel Planning Assistant
Travel Assistant Overview
Create a Travel Virtual Assistant
Design Conversation Skills
Create an ‘Update Booking’ Task
Create a Change Flight Task
Build a Knowledge Graph
Schedule a Smart Alert
Design Digital Skills
Configure Digital Forms
Configure Digital Views
Train the Assistant
Use Traits
Use Patterns
Manage Context Switching
Deploy the Assistant
Use Bot Functions
Use Content Variables
Use Global Variables
Use Web SDK
Build a Banking Assistant
Migrate External Bots
Google Dialogflow Bot
APIs & SDKs
API Reference
API Introduction
Rate Limits
API List
koreUtil Libraries
SDK Reference
SDK Introduction
Web SDK
How the Web SDK Works
SDK Security
SDK Registration
Web Socket Connect and RTM
Tutorials
Widget SDK Tutorial
Web SDK Tutorial
BotKit SDK
BotKit SDK Deployment Guide
Installing the BotKit SDK
Using the BotKit SDK
SDK Events
SDK Functions
Tutorials
BotKit - Blue Prism
BotKit - Flight Search Sample VA
BotKit - Agent Transfer
  1. ホーム
  2. Docs
  3. Virtual Assistants
  4. Builder
  5. Creation
  6. 簡単なボットを作成する

簡単なボットを作成する

Kore.aiボットプラットフォームにサインアップしたら、次のステップはボットを作成することです。ボットを作成する前に、このリンクからボット構築の基本を確認することをお勧めします。このドキュメントに記載されているステップに従って、自分のペースでボットを構築するか、ガイド付きヘルプを使用して段階的にボット作成プロセスを実行できます。ガイド付きヘルプにアクセスするには、次のステップに従います:

  1. 有効な資格情報を使用してKore.aiボットのプラットフォームにログインします。
  2. ランディングページで、右上のヘルプアイコンをクリックします。
  3. 「ページヘルプ」ウィンドウで、ガイド付きヘルプを使用して「Hello world」ボットを構築する」の横にあるガイド付きヘルプをクリックします。
  4. ユースケースのリストが表示されます。開始をクリックして、ユースケースを続行します。
  5. このドキュメントは、ダイアログタスクボット(フライトステータスボット)であなたを支援します。

ボットの概要

このボットは、ユーザーの選択に応じて、ロサンゼルス国際空港に到着/出発するフライトステータスを提供します。このボットは次のことができます:

  • ユーザーに到着または出発について知りたいかどうかを尋ねます。
  • APIにサービスコールをして、空港を発着するフライトの詳細を取得します。
  • 到着または出発のユーザー設定に基づいてフライトナンバーを表示します。
  • ユーザーにフライトナンバーを選択するように要求します。
  • 選択されたフライトステータスの詳細を表示します。
  • エラーがあれば処理します。

ボットを構築する

標準ボットを作成できます。作成するには、次の手順に従います。

  1. あなたのKore.aiボットプラットフォームアカウントにログインします。
  2. ボットのランディングページで、右上の新しいボットをクリックし、最初から開始オプションを選択します。
  3. [新しいボットの作成]ウィンドウで、ボットの詳細を入力します
    • ボット名-あなたのボットに名前を付けます。たとえば、エアポートボット。名前がすでに使用されている場合は、何か別の名前を試してください。
    • デフォルトのボット言語ドロップダウンリストから「Japanese」を、ボットタイプドロップダウンリストから標準ボットを選択します。
  4. 作成をクリックします

ダイアログタスクを作成

ボットの作成後、ボットの概要ページに移動します。最初のステップは、インテントダイアログを追加することです。インテントダイアログは、ユーザーとボットの会話フローの最初のステップです。

  1. タスクウィジェットで、新しいタスクを追加をクリックし、ダイアログタスクを選択します。
  2. [ダイアログの作成]ページで、次の情報を入力します。
    • インテント名-インテント名を入力します。これは、ダイアログをトリガーするフレーズです。インテント名は単純で、10〜15文字以内である必要があります。たとえば、「フライトステータスの取得」です。
    •  その他のオプションで、説明やその他のダイアログ関連の詳細を追加できます。デフォルト設定のままにしておきましょう。
  3. 続行をクリックします。
  4. 会話駆動型ダイアログビルダーにアップグレードするように求められますので、アップグレードを選択します。古いダイアログビルダーの手順については、こちらを参照ください
  5. [ユーザーインテント]ウィンドウには、デフォルトで会話ビルダーパネルが表示されます。
  6. 会話ビルダーウィンドウを閉じます。ダイアログビルダーを直接使用して、ダイアログタスクを構築します。

ユーザー設定エンティティノードを作成

通常エンティティノードは、ユーザーから情報を収集するために使用されます。これを使用して、到着又は出発の詳細に関するユーザーの好みをキャプチャします。

  1. ユーザーインテントノードの横にある+アイコンをクリックします
  2. エンティティ > 新しいエンティティを追加を選択します。
  3. 左側のノードパネルからエンティティをドラッグアンドドロップすることもできます。
  4. 新しく追加されたエンティティノードをクリックして、エンティティウィンドウを開きます。
  5. デフォルトでは、コンポーネントのプロパティタブが選択されています。
    1. 一般設定セクションで、次の情報を入力します:
      • 名前好み
      • 表示名好み 
      • タイプ:ドロップダウンリストから「List of Items (enumerated)」を選択します。ユーザーが選択できる値のリストを提供できます。値のリストを追加するには、
        • フィールドの横にある設定アイコンをクリックします。
        • 静的リストオプションを選択します。
        • 使用するキーと値セクションで、表示名到着出発として別々の行に入力します同義語列は自動入力されるので、そのままにしておきます。
        • 「保存」をクリックします。
        • エンティティウィンドウに戻ります。
    2. ユーザープロンプトセクションで、次のテキストを入力します: Hello {{context.session.UserContext.firstName}}! Welcome to *Los Angeles International Airport*. I can help you with flight Arrival/Departure information. Please select your preference. メモ:コンテキスト変数は、ユーザー名を取得します。また、空港名を太字で表示するためにマークダウンが使用されます。
    3. 値の一覧の表示セクションで、[はい、デフォルトメッセージにチャネル専用の標準フォーマットを使用し、利用可能な値のリストをエンドユーザーに表示します]オプションを選択します。これにより、サポートされているチャネルでボタンテンプレートとして値のリストが表示されます。
  6. エンティティウィンドウを閉じます。

サービスノードを作成

サービスボットアクションノードを使用すると、バックエンドAPI呼び出しを行うことができます。ここでは、APIを呼び出すてめにサービスノードを使用し、LAX空港発着のフライトのフライト情報を取得します。このチュートリアルでは、ダミーのAPIセットアップが使用されます。

  1. 設定エンティティノードの横にある+アイコンをクリックします。
  2. ボットアクション>新しいボットアクションを追加を選択します。
  3. 一般設定セクションで、次の情報を入力します:
    • 名前フライトの詳細
    • 表示名フライトの詳細
  4. ボットアクションノードの横にある+をクリックして、ボットアクションを展開します。
  5. ボットアクションノード内から[+]をクリックします
  6. サービス>[+新しいサービスを選択します。
    • サービスノードは、バックエンドAPI呼び出し、LAX空港のフライトのフライト情報を取得するために使用されます。
  7. サービスノードをクリックしてサービスウィンドウを開きます。デフォルトでは、コンポーネントのプロパティタブが選択されています。
  8. 一般設定セクションで、次の情報を入力します:
    • 名前フライトの詳細を取得
    • 表示名フライトの詳細を取得
    • サービスの種類カスタムサービス
    • タイプWebサービス
    • サブタイプレスト
    • リクエストの定義セクションで、「リクエストの定義」をクリックします。
    • リクエストの定義ページで次の詳細を入力します。
      • リクエストタイプGET
      • リクエストURLhttp://5e85a56644467600161c6579.mockapi.io/FlightDetails このAPIは認証又はヘッダーパラメーターを必要としません。
      • テストリクエストタブをクリックします
        • 右上のテストをクリックします。
        • テストが完了すると、ステータスコード200が表示されます。
        • サンプル応答として保存をクリックします。
        • 「保存」をクリックします。

    • ダイアログビルダーに戻ります
  9. 接続セクションで、デフォルトの接続ルールボットアクションの終了に設定します
  10. サービスウィンドウを閉じます。
  11. ボットアクションノードを折りたたみます。

フライト選択エンティティノードの作成

このエンティティノードは、ユーザーがステータスの詳細を必要とするフライトナンバーを取得するためのものです。

  1. フライトの詳細ボットアクションノードの横にある+アイコンをクリックします。
  2. エンティティ > 新しいエンティティノード追加を選択します。
    • エンティティノードは、ユーザーが選択したフライトナンバーを取得するために必要です。
  3. エンティティウィンドウでは、デフォルトでコンポーネントのプロパティタブが選択されています。
  4. 一般設定セクションで、次の情報を入力します:
    • 名前フライトを選択
    • 表示名フライトを選択 
    • タイプ文字列(ユーザーは、次の手順でAPI文字列出力を値のリストに変換するカスタムスクリプトを作成できます。これは、使用するダミーAPIの要件です)
  5. ユーザープロンプトセクションで、次のテキストを入力します。 Please provide the flight number.
    • 管理:ユーザーは、Web SDKチャネルの特定のプロンプトを定義できます。
    • 管理をクリックします
    • プロンプトメッセージを追加をクリックします。
    • 新しいプロンプトメッセージウィンドウで、チャネルドロップダウンリストから[Web /モバイルクライアント]を選択します。
    • メッセージセクションで、JavaScriptタブをクリックします。
    • 次のJavaScriptを入力します。JavaScriptは、API呼び出しから出力された文字列からユーザーの好みに一致するフライトナンバーを抽出し、クイック返信フォーマットで表示します。
      var data = context.Fetchflightdetails.response.body.details;
      context.flights = [];
      context.info;
      var msg;
      for (var i = 0; i < data.length; i++)
      {
          if (context.entities.Preference == data[i].Type)
          {
              var details = {
                  "Airlines" : data[i].Airlines,
                  "FlightNo" : data[i].FlightNo,
                  "Airport" : data[i].Airport,
                  "AirportName" : data[i].AirportName,
                  "Time" : data[i].Time
              };
              context.flights.push(details);
          }
      }
      var message = {
          "type" : "template",
          "payload" : {
             "template_type" : "quick_replies",
             "text" : "Here are the flights " + context.entities.Preference + " details for Los Angeles International Airport today. Please select the flight number to see details",
             "quick_replies" : []
          }
      };
      for (i=0; i < context.flights.length; i++)
      {
         var replies = {
              "content_type":"text",
              "title" : context.flights[i].FlightNo,
              "payload" : context.flights[i].FlightNo
          };
      message.payload.quick_replies.push(replies);
      }
      return JSON.stringify(message);
  6. 「保存」をクリックします。
  7. ダイアログビルダーに戻り、エンティティウィンドウを閉じます。

スクリプトノードの作成

スクリプトノードは、ダイアログタスクでカスタムJavaScriptを作成するために使用されます。ここで、ユーザーは選択したフライトの詳細を抽出するためにスクリプトを使用できます。後で、ユーザーはこのスクリプトに更に機能を追加できます。

  1. フライトエンティティの選択ノードの横にある+アイコンをクリックします。
  2. ボットアクション> 新しいボットアクションを追加を選択します。
  3. 一般設定セクションで、次の情報を入力します:
    • 名前フライトの検証
    • 表示名フライトの検証 
  4. ボットアクションノードの横にある+をクリックして、ボットアクションを展開します。
  5. ボットアクションノード内から[+]をクリックします
  6. スクリプト> 新しいスクリプトノード追加を選択します。
  7. スクリプトウィンドウでは、デフォルトでコンポーネントのプロパティタブが選択されています。
  8. 一般設定セクションで、次の情報を入力します:
    • 名前フライトの検証
    • 表示名フライトの検証 
  9. スクリプト定義セクションで、スクリプトの定義をクリックします。
  10. [スクリプトの追加]ダイアログボックスで、次のJavaScriptをコピーします。このコードは、選択したフライトナンバーの詳細を抽出します。
    context.details;
    var x = context.flights.length;
    for (var l = 0; l < x; l++)
    {
        if (context.entities.SelectFlight == context.flights[l].FlightNo)
        {
             context.details = {
                "Airlines" : context.flights[l].Airlines,
                "FlightNo" : context.flights[l].FlightNo,
                "Airport" : context.flights[l].Airport,
                "AirportName" : context.flights[l].AirportName,
                "Time" :context.flights[l].Time
            };
            break;
        }
    }
  11. 「保存」をクリックします。
  12. 接続セクションで、デフォルトの接続ルールボットアクションの終了に設定します
  13. スクリプトウィンドウを閉じます。
  14. ボットアクションノードを折りたたみます。

メッセージノードの作成

メッセージノードは、ボットからユーザーへのメッセージを表示するために使用されます。ここで、ユーザーはメッセージノードを使用して、ユーザーの好みに合わせて適切なフライトの詳細を表示できます。

  1. フライトスクリプトの検証ノードの横にある+アイコンをクリックします。
  2. メッセージ> 新しいメッセージノード追加を選択します
  3. メッセージウィンドウでは、デフォルトでコンポーネントのプロパティタブが選択されています。
  4. 一般設定セクションで、次の情報を入力します:
    • 名前フライトの詳細
    • 表示名フライトの詳細 
  5. ボットレスポンスセクションで、次のテキストを入力します: Here are your flight details.
  6. 入力をクリックして保存します
  7. プロンプトの管理:ユーザーは、Web SDKチャネルの特定のプロンプトを定義できます。
    • 管理をクリックします。
    • ボットレスポンス管理のページで、ボットレスポンの追加をクリックします。
    • チャネルドロップダウンリストからWeb/Mobile clientを選択します。
    • メッセージセクションで、JavaScriptタブをクリックします。
    • 次のJavaScriptをコピーします。JavaScriptは、フライトの詳細を形式で表示するように作成されています。
      var message = {
       "type": "template",
       "payload": {
       "template_type": "mini_table",
       "layout": "horizontal",
       "text":"Flight " + context.entities.Preference + " Information" ,
       "elements": [
       {
       "primary":[["Flight No"], [context.details.FlightNo, "right"]],
       "additional":[["Airlines", context.details.Airlines],["From",context.details.Airport],["Time",context.details.Time],["Remarks","On Time"]]
       }
       ]
      }
      };
      print(JSON.stringify(message));
    • 「保存」をクリックします。
  1. メッセージウィンドウに戻ります。
  2. メッセージウィンドウで、接続タブをクリックします。
    • ドロップダウンリストから、デフォルトの接続を[未接続]から[ダイアログの終了]に変更します。
    • 保存をクリックします。
  3. メッセージウィンドウを閉じます。

ボットのテスト

ダイアログタスクをテストするには、右下の[ボットと会話]オプションを使用できます。

  1. 発話(インテント名)を入力してくださいフライト状況を教えてください。
  2. ボットの指示に従ってください:
    • 到着/出発を選択
    • フライトナンバーを選択
    • 表形式で表示されるフライトの詳細を参照してください。

イベントを追加

現在、ボットは開始時にユーザー入力を待っています。また、ボットは会話の開始時にユーザーをガイドできます。このために、Web / モバイル SDKから新しい接続が確立されるたびに、このタスクを開始するイベントハンドラーを追加できます。

  1. ダイアログビルダーを閉じて、ボットタスクページに移動します。
  2. 左側のナビゲーションペインから、インテリジェンス> イベントを選択します。
  3. イベントリストから、接続時イベントに対して構成をクリックします。
  4. [接続時]ウィンドウでは、デフォルトでタスクの開始オプションが選択されているので、それを保持します。
  5. ドロップダウンリストから、フライトステータスの取得タスクを選択します。
  6. 保存して有効にするをクリックします。

ボットのテスト

ダイアログタスクをテストするには、右下の[ボットと会話]オプションを使用できます。接続時イベントが構成されているため、ダイアログが自動的に開始されます。ボットの指示に従ってください:

  1. 到着/出発を選択
  2. フライトナンバーを選択する代わりに、リストに存在しない番号を手動で入力します。
  3. 申し訳ありませんが、問題が発生し、タスクを破棄しなければならなかったなどの一般的なメッセージが表示されます。再試行してください。

次の手順では、これを修正する方法を確認できます。

スクリプトノードの変更

文字列タイプはフライトの選択エンティティで使用されるため、ユーザーがリストから選択する代わりに、誤ったフライト番号を手動で入力と言ったシナリオを処理できます。これを行うには、接続に基づいて適切なメッセージを表示します。このステップでは、ユーザーエントリの検証を追加するために、前に保存したスクリプトを変更する事ができます。

  1. ダイアログビルダーページを開きます。以下のどちらかを行うことができます
  2. 左側のナビゲーションペインで、会話スキル]-> [ダイアログタスクをクリックし、フライトステータスの取得タスクを選択します。
  3. 左側のナビゲーションペインで、概要をクリックし、フライトステータスの取得タスクを選択します。
  4. フライトスクリプトの検証ノードを選択します。
  5. フライトスクリプトの検証ウィンドウのスクリプト定義セクションで、スクリプトの編集をクリックします。
  6. [スクリプトの追加]ダイアログボックスで、次のJavaScriptをコピーし、既存のコードを置き換えます。ユーザーが入力したフライトナンバーがAPIサービス呼び出しによって返されたエントリと一致したときに設定される有効なタグを追加できます。
    context.valid = false;
    context.details;
    var x = context.flights.length;
    for (var l = 0; l < x; l++)
    {
        if (context.entities.SelectFlight == context.flights[l].FlightNo)
        {
             context.valid = true;
             context.details = {
                "Airlines" : context.flights[l].Airlines,
                "FlightNo" : context.flights[l].FlightNo,
                "Airport" : context.flights[l].Airport,
                "AirportName" : context.flights[l].AirportName,
                "Time" :context.flights[l].Time
            };
            break;
        }
    }
    if (context.valid === false)
    {
        delete context.entities.SelectFlight;
    }
  7. [フライトスクリプトの検証]ウィンドウを閉じます。

条件付きフローを作成

以下は、[フライトスクリプトの検証]ノードから条件付きフローを追加する手順です。このスクリプトノードから新しいメッセージノードへの接続が新たに確立されます。これは、ボットからユーザーに対しエラーメッセージを表示し、フライトナンバーを再度選択するように促すためです。

エラーメッセージの作成

  1. [フライト検証]ボットアクションノードと[フライト詳細]メッセージノードの間の接続にカーソルを合わせます。
  2. ノードの追加ボタンが表示されたら、それをクリックします。
  3. 新しいボットメッセージノードを作成します。
    • メッセージ> 新しいメッセージノード追加を選択します。
    • メッセージウィンドウでは、デフォルトでコンポーネントのプロパティタブが選択されています。
    • 一般設定セクションで、次の情報を入力します:
      • 名前エラーメッセージ
      • 表示名エラーメッセージ 
    • ボットレスポンスセクションで、次のテキストを入力します: The Flight number entered is incorrect. Let us start again.
      • 入力をクリックして保存します
    • 接続タブをクリックします。
    • ドロップダウンリストから、デフォルトの接続を[未接続]から[フライトの選択]に変更します。
    • 保存をクリックします。
    • エラーメッセージウィンドウを閉じます。

フライトスクリプト接続の検証

  1. フライトの検証ボットアクションノードをクリックします。
  2. [フライトの検証]ボットアクションウィンドウで、接続タブをクリックします。
    • + ADD IFをクリックします。
    • IFセクションの下で、
      • コンテキストを選択します
      • IF条件として、テキストを有効として入力します
      • 演算子を等しいものとして選択します
      • 値を真値として入力します
      • この条件が真の場合、ダイアログはフライトの詳細に移動します
      • ELSEセクションの下で、
      • この条件が誤の場合、ダイアログはエラーメッセージに移動します
      • 「保存」をクリックします。
      • [フライトスクリプトの検証]ウィンドウを閉じます。

ボットのテスト

ダイアログタスクをテストするには、右下の[ボットと会話]オプションを使用できます。接続時イベントが構成されているため、ダイアログが自動的に開始されます。または、次の発話(インテント名)をいつでも試すことができます。フライトステータスを取得。ボットの指示に従ってください:

  1. 到着/出発を選択
  2. 無効な便名を入力してください。
  3. 適切なエラーメッセージが表示され、フライトナンバーをもう一度入力するように求められます。
  4. フライトナンバーの選択
  5. フライトの詳細を表形式で確認できます。

これで、最初のボットが正常に作成およびテストされました。次のステップは次のとおりです:

  • フライトのステータスを知りたいQR040のステータスは何ですか?などのさまざまなユーザーの発話に対応するようにボットをトレーニングします。これは、ボットをトレーニングすることで実現できます。
  • チャネルを有効にし、ユーザーがアクセス出来る様にボットを公開します。詳細はこちらをご確認ください

簡単なボットを作成する

Kore.aiボットプラットフォームにサインアップしたら、次のステップはボットを作成することです。ボットを作成する前に、このリンクからボット構築の基本を確認することをお勧めします。このドキュメントに記載されているステップに従って、自分のペースでボットを構築するか、ガイド付きヘルプを使用して段階的にボット作成プロセスを実行できます。ガイド付きヘルプにアクセスするには、次のステップに従います:

  1. 有効な資格情報を使用してKore.aiボットのプラットフォームにログインします。
  2. ランディングページで、右上のヘルプアイコンをクリックします。
  3. 「ページヘルプ」ウィンドウで、ガイド付きヘルプを使用して「Hello world」ボットを構築する」の横にあるガイド付きヘルプをクリックします。
  4. ユースケースのリストが表示されます。開始をクリックして、ユースケースを続行します。
  5. このドキュメントは、ダイアログタスクボット(フライトステータスボット)であなたを支援します。

ボットの概要

このボットは、ユーザーの選択に応じて、ロサンゼルス国際空港に到着/出発するフライトステータスを提供します。このボットは次のことができます:

  • ユーザーに到着または出発について知りたいかどうかを尋ねます。
  • APIにサービスコールをして、空港を発着するフライトの詳細を取得します。
  • 到着または出発のユーザー設定に基づいてフライトナンバーを表示します。
  • ユーザーにフライトナンバーを選択するように要求します。
  • 選択されたフライトステータスの詳細を表示します。
  • エラーがあれば処理します。

ボットを構築する

標準ボットを作成できます。作成するには、次の手順に従います。

  1. あなたのKore.aiボットプラットフォームアカウントにログインします。
  2. ボットのランディングページで、右上の新しいボットをクリックし、最初から開始オプションを選択します。
  3. [新しいボットの作成]ウィンドウで、ボットの詳細を入力します
    • ボット名-あなたのボットに名前を付けます。たとえば、エアポートボット。名前がすでに使用されている場合は、何か別の名前を試してください。
    • デフォルトのボット言語ドロップダウンリストから「Japanese」を、ボットタイプドロップダウンリストから標準ボットを選択します。
  4. 作成をクリックします

ダイアログタスクを作成

ボットの作成後、ボットの概要ページに移動します。最初のステップは、インテントダイアログを追加することです。インテントダイアログは、ユーザーとボットの会話フローの最初のステップです。

  1. タスクウィジェットで、新しいタスクを追加をクリックし、ダイアログタスクを選択します。
  2. [ダイアログの作成]ページで、次の情報を入力します。
    • インテント名-インテント名を入力します。これは、ダイアログをトリガーするフレーズです。インテント名は単純で、10〜15文字以内である必要があります。たとえば、「フライトステータスの取得」です。
    •  その他のオプションで、説明やその他のダイアログ関連の詳細を追加できます。デフォルト設定のままにしておきましょう。
  3. 続行をクリックします。
  4. 会話駆動型ダイアログビルダーにアップグレードするように求められますので、アップグレードを選択します。古いダイアログビルダーの手順については、こちらを参照ください
  5. [ユーザーインテント]ウィンドウには、デフォルトで会話ビルダーパネルが表示されます。
  6. 会話ビルダーウィンドウを閉じます。ダイアログビルダーを直接使用して、ダイアログタスクを構築します。

ユーザー設定エンティティノードを作成

通常エンティティノードは、ユーザーから情報を収集するために使用されます。これを使用して、到着又は出発の詳細に関するユーザーの好みをキャプチャします。

  1. ユーザーインテントノードの横にある+アイコンをクリックします
  2. エンティティ > 新しいエンティティを追加を選択します。
  3. 左側のノードパネルからエンティティをドラッグアンドドロップすることもできます。
  4. 新しく追加されたエンティティノードをクリックして、エンティティウィンドウを開きます。
  5. デフォルトでは、コンポーネントのプロパティタブが選択されています。
    1. 一般設定セクションで、次の情報を入力します:
      • 名前好み
      • 表示名好み 
      • タイプ:ドロップダウンリストから「List of Items (enumerated)」を選択します。ユーザーが選択できる値のリストを提供できます。値のリストを追加するには、
        • フィールドの横にある設定アイコンをクリックします。
        • 静的リストオプションを選択します。
        • 使用するキーと値セクションで、表示名到着出発として別々の行に入力します同義語列は自動入力されるので、そのままにしておきます。
        • 「保存」をクリックします。
        • エンティティウィンドウに戻ります。
    2. ユーザープロンプトセクションで、次のテキストを入力します: Hello {{context.session.UserContext.firstName}}! Welcome to *Los Angeles International Airport*. I can help you with flight Arrival/Departure information. Please select your preference. メモ:コンテキスト変数は、ユーザー名を取得します。また、空港名を太字で表示するためにマークダウンが使用されます。
    3. 値の一覧の表示セクションで、[はい、デフォルトメッセージにチャネル専用の標準フォーマットを使用し、利用可能な値のリストをエンドユーザーに表示します]オプションを選択します。これにより、サポートされているチャネルでボタンテンプレートとして値のリストが表示されます。
  6. エンティティウィンドウを閉じます。

サービスノードを作成

サービスボットアクションノードを使用すると、バックエンドAPI呼び出しを行うことができます。ここでは、APIを呼び出すてめにサービスノードを使用し、LAX空港発着のフライトのフライト情報を取得します。このチュートリアルでは、ダミーのAPIセットアップが使用されます。

  1. 設定エンティティノードの横にある+アイコンをクリックします。
  2. ボットアクション>新しいボットアクションを追加を選択します。
  3. 一般設定セクションで、次の情報を入力します:
    • 名前フライトの詳細
    • 表示名フライトの詳細
  4. ボットアクションノードの横にある+をクリックして、ボットアクションを展開します。
  5. ボットアクションノード内から[+]をクリックします
  6. サービス>[+新しいサービスを選択します。
    • サービスノードは、バックエンドAPI呼び出し、LAX空港のフライトのフライト情報を取得するために使用されます。
  7. サービスノードをクリックしてサービスウィンドウを開きます。デフォルトでは、コンポーネントのプロパティタブが選択されています。
  8. 一般設定セクションで、次の情報を入力します:
    • 名前フライトの詳細を取得
    • 表示名フライトの詳細を取得
    • サービスの種類カスタムサービス
    • タイプWebサービス
    • サブタイプレスト
    • リクエストの定義セクションで、「リクエストの定義」をクリックします。
    • リクエストの定義ページで次の詳細を入力します。
      • リクエストタイプGET
      • リクエストURLhttp://5e85a56644467600161c6579.mockapi.io/FlightDetails このAPIは認証又はヘッダーパラメーターを必要としません。
      • テストリクエストタブをクリックします
        • 右上のテストをクリックします。
        • テストが完了すると、ステータスコード200が表示されます。
        • サンプル応答として保存をクリックします。
        • 「保存」をクリックします。

    • ダイアログビルダーに戻ります
  9. 接続セクションで、デフォルトの接続ルールボットアクションの終了に設定します
  10. サービスウィンドウを閉じます。
  11. ボットアクションノードを折りたたみます。

フライト選択エンティティノードの作成

このエンティティノードは、ユーザーがステータスの詳細を必要とするフライトナンバーを取得するためのものです。

  1. フライトの詳細ボットアクションノードの横にある+アイコンをクリックします。
  2. エンティティ > 新しいエンティティノード追加を選択します。
    • エンティティノードは、ユーザーが選択したフライトナンバーを取得するために必要です。
  3. エンティティウィンドウでは、デフォルトでコンポーネントのプロパティタブが選択されています。
  4. 一般設定セクションで、次の情報を入力します:
    • 名前フライトを選択
    • 表示名フライトを選択 
    • タイプ文字列(ユーザーは、次の手順でAPI文字列出力を値のリストに変換するカスタムスクリプトを作成できます。これは、使用するダミーAPIの要件です)
  5. ユーザープロンプトセクションで、次のテキストを入力します。 Please provide the flight number.
    • 管理:ユーザーは、Web SDKチャネルの特定のプロンプトを定義できます。
    • 管理をクリックします
    • プロンプトメッセージを追加をクリックします。
    • 新しいプロンプトメッセージウィンドウで、チャネルドロップダウンリストから[Web /モバイルクライアント]を選択します。
    • メッセージセクションで、JavaScriptタブをクリックします。
    • 次のJavaScriptを入力します。JavaScriptは、API呼び出しから出力された文字列からユーザーの好みに一致するフライトナンバーを抽出し、クイック返信フォーマットで表示します。
      var data = context.Fetchflightdetails.response.body.details;
      context.flights = [];
      context.info;
      var msg;
      for (var i = 0; i < data.length; i++)
      {
          if (context.entities.Preference == data[i].Type)
          {
              var details = {
                  "Airlines" : data[i].Airlines,
                  "FlightNo" : data[i].FlightNo,
                  "Airport" : data[i].Airport,
                  "AirportName" : data[i].AirportName,
                  "Time" : data[i].Time
              };
              context.flights.push(details);
          }
      }
      var message = {
          "type" : "template",
          "payload" : {
             "template_type" : "quick_replies",
             "text" : "Here are the flights " + context.entities.Preference + " details for Los Angeles International Airport today. Please select the flight number to see details",
             "quick_replies" : []
          }
      };
      for (i=0; i < context.flights.length; i++)
      {
         var replies = {
              "content_type":"text",
              "title" : context.flights[i].FlightNo,
              "payload" : context.flights[i].FlightNo
          };
      message.payload.quick_replies.push(replies);
      }
      return JSON.stringify(message);
  6. 「保存」をクリックします。
  7. ダイアログビルダーに戻り、エンティティウィンドウを閉じます。

スクリプトノードの作成

スクリプトノードは、ダイアログタスクでカスタムJavaScriptを作成するために使用されます。ここで、ユーザーは選択したフライトの詳細を抽出するためにスクリプトを使用できます。後で、ユーザーはこのスクリプトに更に機能を追加できます。

  1. フライトエンティティの選択ノードの横にある+アイコンをクリックします。
  2. ボットアクション> 新しいボットアクションを追加を選択します。
  3. 一般設定セクションで、次の情報を入力します:
    • 名前フライトの検証
    • 表示名フライトの検証 
  4. ボットアクションノードの横にある+をクリックして、ボットアクションを展開します。
  5. ボットアクションノード内から[+]をクリックします
  6. スクリプト> 新しいスクリプトノード追加を選択します。
  7. スクリプトウィンドウでは、デフォルトでコンポーネントのプロパティタブが選択されています。
  8. 一般設定セクションで、次の情報を入力します:
    • 名前フライトの検証
    • 表示名フライトの検証 
  9. スクリプト定義セクションで、スクリプトの定義をクリックします。
  10. [スクリプトの追加]ダイアログボックスで、次のJavaScriptをコピーします。このコードは、選択したフライトナンバーの詳細を抽出します。
    context.details;
    var x = context.flights.length;
    for (var l = 0; l < x; l++)
    {
        if (context.entities.SelectFlight == context.flights[l].FlightNo)
        {
             context.details = {
                "Airlines" : context.flights[l].Airlines,
                "FlightNo" : context.flights[l].FlightNo,
                "Airport" : context.flights[l].Airport,
                "AirportName" : context.flights[l].AirportName,
                "Time" :context.flights[l].Time
            };
            break;
        }
    }
  11. 「保存」をクリックします。
  12. 接続セクションで、デフォルトの接続ルールボットアクションの終了に設定します
  13. スクリプトウィンドウを閉じます。
  14. ボットアクションノードを折りたたみます。

メッセージノードの作成

メッセージノードは、ボットからユーザーへのメッセージを表示するために使用されます。ここで、ユーザーはメッセージノードを使用して、ユーザーの好みに合わせて適切なフライトの詳細を表示できます。

  1. フライトスクリプトの検証ノードの横にある+アイコンをクリックします。
  2. メッセージ> 新しいメッセージノード追加を選択します
  3. メッセージウィンドウでは、デフォルトでコンポーネントのプロパティタブが選択されています。
  4. 一般設定セクションで、次の情報を入力します:
    • 名前フライトの詳細
    • 表示名フライトの詳細 
  5. ボットレスポンスセクションで、次のテキストを入力します: Here are your flight details.
  6. 入力をクリックして保存します
  7. プロンプトの管理:ユーザーは、Web SDKチャネルの特定のプロンプトを定義できます。
    • 管理をクリックします。
    • ボットレスポンス管理のページで、ボットレスポンの追加をクリックします。
    • チャネルドロップダウンリストからWeb/Mobile clientを選択します。
    • メッセージセクションで、JavaScriptタブをクリックします。
    • 次のJavaScriptをコピーします。JavaScriptは、フライトの詳細を形式で表示するように作成されています。
      var message = {
       "type": "template",
       "payload": {
       "template_type": "mini_table",
       "layout": "horizontal",
       "text":"Flight " + context.entities.Preference + " Information" ,
       "elements": [
       {
       "primary":[["Flight No"], [context.details.FlightNo, "right"]],
       "additional":[["Airlines", context.details.Airlines],["From",context.details.Airport],["Time",context.details.Time],["Remarks","On Time"]]
       }
       ]
      }
      };
      print(JSON.stringify(message));
    • 「保存」をクリックします。
  1. メッセージウィンドウに戻ります。
  2. メッセージウィンドウで、接続タブをクリックします。
    • ドロップダウンリストから、デフォルトの接続を[未接続]から[ダイアログの終了]に変更します。
    • 保存をクリックします。
  3. メッセージウィンドウを閉じます。

ボットのテスト

ダイアログタスクをテストするには、右下の[ボットと会話]オプションを使用できます。

  1. 発話(インテント名)を入力してくださいフライト状況を教えてください。
  2. ボットの指示に従ってください:
    • 到着/出発を選択
    • フライトナンバーを選択
    • 表形式で表示されるフライトの詳細を参照してください。

イベントを追加

現在、ボットは開始時にユーザー入力を待っています。また、ボットは会話の開始時にユーザーをガイドできます。このために、Web / モバイル SDKから新しい接続が確立されるたびに、このタスクを開始するイベントハンドラーを追加できます。

  1. ダイアログビルダーを閉じて、ボットタスクページに移動します。
  2. 左側のナビゲーションペインから、インテリジェンス> イベントを選択します。
  3. イベントリストから、接続時イベントに対して構成をクリックします。
  4. [接続時]ウィンドウでは、デフォルトでタスクの開始オプションが選択されているので、それを保持します。
  5. ドロップダウンリストから、フライトステータスの取得タスクを選択します。
  6. 保存して有効にするをクリックします。

ボットのテスト

ダイアログタスクをテストするには、右下の[ボットと会話]オプションを使用できます。接続時イベントが構成されているため、ダイアログが自動的に開始されます。ボットの指示に従ってください:

  1. 到着/出発を選択
  2. フライトナンバーを選択する代わりに、リストに存在しない番号を手動で入力します。
  3. 申し訳ありませんが、問題が発生し、タスクを破棄しなければならなかったなどの一般的なメッセージが表示されます。再試行してください。

次の手順では、これを修正する方法を確認できます。

スクリプトノードの変更

文字列タイプはフライトの選択エンティティで使用されるため、ユーザーがリストから選択する代わりに、誤ったフライト番号を手動で入力と言ったシナリオを処理できます。これを行うには、接続に基づいて適切なメッセージを表示します。このステップでは、ユーザーエントリの検証を追加するために、前に保存したスクリプトを変更する事ができます。

  1. ダイアログビルダーページを開きます。以下のどちらかを行うことができます
  2. 左側のナビゲーションペインで、会話スキル]-> [ダイアログタスクをクリックし、フライトステータスの取得タスクを選択します。
  3. 左側のナビゲーションペインで、概要をクリックし、フライトステータスの取得タスクを選択します。
  4. フライトスクリプトの検証ノードを選択します。
  5. フライトスクリプトの検証ウィンドウのスクリプト定義セクションで、スクリプトの編集をクリックします。
  6. [スクリプトの追加]ダイアログボックスで、次のJavaScriptをコピーし、既存のコードを置き換えます。ユーザーが入力したフライトナンバーがAPIサービス呼び出しによって返されたエントリと一致したときに設定される有効なタグを追加できます。
    context.valid = false;
    context.details;
    var x = context.flights.length;
    for (var l = 0; l < x; l++)
    {
        if (context.entities.SelectFlight == context.flights[l].FlightNo)
        {
             context.valid = true;
             context.details = {
                "Airlines" : context.flights[l].Airlines,
                "FlightNo" : context.flights[l].FlightNo,
                "Airport" : context.flights[l].Airport,
                "AirportName" : context.flights[l].AirportName,
                "Time" :context.flights[l].Time
            };
            break;
        }
    }
    if (context.valid === false)
    {
        delete context.entities.SelectFlight;
    }
  7. [フライトスクリプトの検証]ウィンドウを閉じます。

条件付きフローを作成

以下は、[フライトスクリプトの検証]ノードから条件付きフローを追加する手順です。このスクリプトノードから新しいメッセージノードへの接続が新たに確立されます。これは、ボットからユーザーに対しエラーメッセージを表示し、フライトナンバーを再度選択するように促すためです。

エラーメッセージの作成

  1. [フライト検証]ボットアクションノードと[フライト詳細]メッセージノードの間の接続にカーソルを合わせます。
  2. ノードの追加ボタンが表示されたら、それをクリックします。
  3. 新しいボットメッセージノードを作成します。
    • メッセージ> 新しいメッセージノード追加を選択します。
    • メッセージウィンドウでは、デフォルトでコンポーネントのプロパティタブが選択されています。
    • 一般設定セクションで、次の情報を入力します:
      • 名前エラーメッセージ
      • 表示名エラーメッセージ 
    • ボットレスポンスセクションで、次のテキストを入力します: The Flight number entered is incorrect. Let us start again.
      • 入力をクリックして保存します
    • 接続タブをクリックします。
    • ドロップダウンリストから、デフォルトの接続を[未接続]から[フライトの選択]に変更します。
    • 保存をクリックします。
    • エラーメッセージウィンドウを閉じます。

フライトスクリプト接続の検証

  1. フライトの検証ボットアクションノードをクリックします。
  2. [フライトの検証]ボットアクションウィンドウで、接続タブをクリックします。
    • + ADD IFをクリックします。
    • IFセクションの下で、
      • コンテキストを選択します
      • IF条件として、テキストを有効として入力します
      • 演算子を等しいものとして選択します
      • 値を真値として入力します
      • この条件が真の場合、ダイアログはフライトの詳細に移動します
      • ELSEセクションの下で、
      • この条件が誤の場合、ダイアログはエラーメッセージに移動します
      • 「保存」をクリックします。
      • [フライトスクリプトの検証]ウィンドウを閉じます。

ボットのテスト

ダイアログタスクをテストするには、右下の[ボットと会話]オプションを使用できます。接続時イベントが構成されているため、ダイアログが自動的に開始されます。または、次の発話(インテント名)をいつでも試すことができます。フライトステータスを取得。ボットの指示に従ってください:

  1. 到着/出発を選択
  2. 無効な便名を入力してください。
  3. 適切なエラーメッセージが表示され、フライトナンバーをもう一度入力するように求められます。
  4. フライトナンバーの選択
  5. フライトの詳細を表形式で確認できます。

これで、最初のボットが正常に作成およびテストされました。次のステップは次のとおりです:

  • フライトのステータスを知りたいQR040のステータスは何ですか?などのさまざまなユーザーの発話に対応するようにボットをトレーニングします。これは、ボットをトレーニングすることで実現できます。
  • チャネルを有効にし、ユーザーがアクセス出来る様にボットを公開します。詳細はこちらをご確認ください
メニュー