はじめに
対話型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. Dialog Task
  6. サービスノード

サービスノード

サービスノードは、APIサービスを追加して、RESTまたはSOAPのリクエストをサードパーティのWebサービスに対して行うために使用できるダイアログタスクのコンポーネントタイプです。このノードは、エンティティまたは他のノードを使用してユーザー入力をキャプチャし、 API リクエストに必要なパラメータを持つ場合に使用できます。サービスタイプは以下のように定義できます。

  • カスタムサービス – サードパーティのWebサービスへのAPIリクエストを定義します。これはデフォルト設定です。
  • 画像に対するHTML – JavaScriptを使用して、HTMLを画像としてレンダリングするように定義します。例として、HTMLを作成するために、あるいは画像に変換したい文字列としてのHTMLマークアップを含むWebサービス応答におけるキー値を作成するために。
  • 画像に対するURL – 画像をレンダリングするためにロードするWebページのURLを定義します。
  • カスタム認証サービス – タスクフローに必要な認証サービスを提供するサードパーティアプリケーションのURLを定義します。
  • アラートサブスクリプションサービス – ダイアログ世界の一環として、ユーザーへ積極的に送信されるコンテキスト関連のアラートを定義します。
  • データテーブルサービス – ボットに割り当てられた指定のデータテーブル/テーブルビューのデータを任意にクエリ、操作するためのCRUDオペレーションを定義します。

セットアップ

ダイアログタスクにおけるサービスノードのセットアップは、以下の手順で行います。メモ:プラットフォームのv9.0以降では、サービスノードはボットアクションノードの下に分類されます。ボットアクションノードの詳細はこちらをクリックしてください

ノードの追加

  1. ダイアログタスクを開き、サービスノードを追加します。
  2. サービスノードを指定された場所に追加します。ノードの追加手順についてはこちらをご参照ください
  3. 「サービス」ウィンドウは、デフォルトではコンポーネントプロパティタブが選択された状態で表示されます。
  4. 接続プロパティを設定できます。詳細はこちらをご参照ください

ノードの設定

  1. コンポーネントプロパティタブの一般設定セクションで、サービスノードの名前表示名を入力します。例:FetchWeather
  2. ドロップダウンリストから、サービスタイプを選びます。
    • カスタムサービス – サードパーティのWebサービスへのAPIリクエストを定義します。これはデフォルト設定です。
    • 画像に対するHTML – JavaScriptを使用して、HTMLを画像としてレンダリングするように定義します。例として、HTMLを作成するために、あるいは画像に変換したい文字列としてのHTMLマークアップを含むWebサービス応答におけるキー値を作成するために。
    • 画像に対するURL – 画像をレンダリングするためにロードするWebページのURLを定義します。
    • カスタム認証サービス – タスクフローに必要な認証サービスを提供するサードパーティアプリケーションのURLを定義します。詳細について
    • アラートサブスクリプションサービス – ダイアログ世界の一環として、ユーザーへ積極的に送信されるコンテキスト関連のアラートを定義します。
  3. 選択したサービスタイプに基づいて、それぞれのドロップダウンリストから タイプ/サブタイプを選択するか、URL認証を選択します。
  4. 定義のリクエストセクションで、リクエストの定義をクリックします。
  5. <サービスXXXX>向けリクエストの定義ダイアログが表示されます。 選択したサービスタイプに応じて、このトピックにおける次のいずれかのセクションをご参照ください。メモ:カスタム認証サービスの場合、リクエストの定義セクションは適用されないで、代わって応答セクションが表示されます。詳細について. 
  6. 可変ネームスペースセクションでは、可変ネームスペースを関連付けてこのノードとその遷移を実行します。このオプションは、可変ネームスペースがボットに対して有効になっている場合にのみ表示されます。タスクレベルの設定を使用するか、またはこのノード用にカスタマイズできます。詳細情報は、ネームスペースの管理をご参照ください。
  7. ノードの接続タブから、次に実行するダイアログタスクのノードはどれにするかを決定できます。条件文は、ダイアログタスク内の任意のエンティティやコンテキストオブジェクトの値に基づいて記述することも、遷移にインテントを使用することもできます。コンポーネント遷移のセットアップは、以下の手順に従います。
    1. 「サービス」ウィンドウで、接続タブをクリックします。
    2. 接続タブの接続ルールセクションでは、 デフォルトドロップダウンリストからノードを選択することができます。
    3. 左側パネルから既存のサービスノードをドラッグアンドドロップすることができます。
    4. 条件付きのフローを設定するには、IFの追加をクリックします。
    5. 以下のいずれかの基準に基づいて、条件式を設定します。
      • エンティティ:これらの演算子のいずれかを使用して、ダイアログ内のエンティティノードを特定の値と比較します。存在する、等しい、等しいより大きい、等しいより小さい、等しくない、より大きい、より小さい。それぞれのドロップダウンリストを使用して、エンティティ、演算子を選択し、ボックスに数値を入力します。例:PassengerCount (エンティティ) は5 (指定値)より大きい(演算子)
      • コンテキスト:これらの演算子のいずれかを使用して、ダイアログ内のコンテキストオブジェクトを特定の値と比較します。存在する、等しい、等しいより大きい、等しいより小さい、等しくない、より大きい、より小さい。例: Context.entity.PassengerCount (コンテキストオブジェクト)が(演算子)5(指定値)より大きい。
      • インテント:次のユーザーの発話に一致するインテントを選択します。
    6. 次へ進むドロップダウンリストで、条件式が成功した場合にダイアログフローで実行する次のノードを選択します。例として、PassengerCount (エンティティ) が(演算子) 5 (指定値)より大きい場合、次へ進むオファー(サブダイアログ)になります。
    7. その他ドロップダウンリストで、条件が失敗した場合に実行するノードを選択します。
    メモ:複数のIf条件を書きたい場合は、最後のIf条件式の下のその他の条件を追加をクリックします。

     

カスタムサービスの定義

  1. サービスタイプカスタムサービスを選択した場合、 サブタイプフィールドで以下のオプションのいずれかを選択します。
    • REST – API WebサービスはRESTサービスを使用しています。
    • SOAP – API WebサービスはSOAPサービスを使用しています。
  2. リクエストの定義セクションで、リクエストの定義をクリックして、Webサービスタイプの設定を行います。
  3. 下図に、リクエストの定義<サービスノード名 >ダイアログが表示されます。
  4. リクエストURLフィールドの最初のフィールドで、リクエストに使用するHTTPメソッドを選択します。以下のいずれかを選択できます。
    • POST– サーバーにデータを送信するために使用します。例:HTMLフォームを使用する顧客情報、ファイルのアップロードなど。
    • PUT– ターゲットリソースのコンテンツを、送信されてきたコンテンツに置き換えます。
    • PATCH – 送信されてきたコンテンツに、既存のターゲットリソースのコンテンツを追加します。
    • DELETE―既存のターゲットリソースのコンテンツを削除します。
    • GET–既存のターゲットリソースのコンテンツを返します
  5. リクエストURLの第2フィールドには、Kore.aiで処理するダイアログタスク応答のURLを指定します。例:http://koremessenger.com/postURL必要に応じて、クエリパラメータまたはパスパラメータをURLの一部として追加します。エンティティノードの値をパラメータとして使用するには、Contextオブジェクトにアクセスする際に以下の構文を使用します。https://myDomain.com/{{context.entities.topic}} で context.entities.topic。二重括弧 {{ context.object }}を使用する必要があります。詳細情報は、コンテキストオブジェクトをご参照ください。
    1. 必要に応じて、詳細表示をクリックして、次を選択します。
      • Kore.ai BotsへのアクセスがKore.aiコネクタエージェントを使用している場合は、コネクタ使用によるアクセスフィールドで表示される「はい」。詳細情報については、Kore.ai Connectorの使用をご参照ください。
      • ユーザーがボットと共有する機密情報タイプを編集するために、PIIデータの非識別化で「はい」を選択します。詳細情報は、個人特定情報の編集をご覧ください。
    2. 認証タブでは、このサービスノードの呼び出しに必要な認証のタイプを選択するか、必要に応じて新しい認証のタイプを定義します。詳細情報は、認証のセットアップご参照ください。
    3. ヘッダータブでは、指定したリクエストURLにアクセスするために必要な場合、ヘッダーをキー/値のペアで指定します。認証ヘッダーは、認証タブで指定した認証タイプに基づいて自動生成されます。その他の標準ヘッダーを定義する必要があります。例:コンテンツタイプ、受理、または任意のカスタムヘッダー。ここで定義されたヘッダーは、このサービスノードにのみ適用されます。
    4. 本文タブで、本文コンテンツタイプを選択します。以下のいずれかを選択できます。
      • application/x-www-form-urlencoded – マルチパート/フォームデータとしても知られており、ユーザーがフォームからファイルをアップロードできるようにしたい場合に、HTTP POSTリクエストメソッドでファイルを送信できるようにするエンコーディングタイプです。ボットプラットフォームでエンコードされたキー/値のペアを追加することができます。
      • application/json – Kore.aiサーバーとMyボットWebアプリケーション間のデータ転送にJSONを使用します。あらゆるJSONは、処理もまったく行わずにリクエストとともに送信されます。
      • application/xml – SOAPサービスでは、POSTメソッドを使用してXMLペイロードを渡します。エンティティノード値は、XMLの一部として渡すことができます。その際、Contextオブジェクトにアクセスするために次の構文を使用します。https://myDomain.com/{{context.entities.topic}}は、 context.entities.topic.二重括弧{{ context.object }}を使用する必要があります。詳細情報は、コンテキストオブジェクトをご参照ください。
    5. リクエストのテストタブでテストをクリックすると、オプションとして、指定された認証タイプ、HTTPヘッダー、本文パラメータ(定義されている場合)を使用して、APIリクエストURLを送信することができます。回答はテキストエリアに表示されます。サンプル応答として保存をクリックすると、テスト応答がこのノードのサンプル応答として保存されます。
    6. 保存をクリックすると、サービスノードに対するリクエストが保存され、リクエストの定義<サービスノード名 >ダイアログが閉じます。
  6. サンプル応答セクションで、オプションとしてサンプル応答の追加をクリックすると、サンプル応答の追加ダイアログが表示され、サンプル応答を手動で入力または貼り付けることができます。
  7. オプションとして、サンプル応答の追加ドロップダウンリストで、以下を選択できます。
    • JSON – 他のノードで変数として使用されるリクエストURL応答で利用可能なJSONキー/値のペアのリスト。
    • RAW – 他のノードで変数として使用されるキー/値のペアのリストです。
  8. コンポーネントのプロパティセクションの高度な管理では、サービスコールを終了させるための タイムアウト を設定できます。デフォルトでは20秒に設定されていますが、5~20秒の間で任意の値を選択できます。

画像変換向けのURLの定義

  1. サービスタイプ画像向けのURLを選択した場合、 タイプの設定は読み取り専用となります。
  2. リクエストの定義セクションでは、リクエストの定義 をクリックして、 サービスタイプで 画像向けのURLを選択した場合の設定を指定します。下図に、リクエストの定義<サービスノード名 >ダイアログが表示されます。
  3. 変換向けのURLフィールドに、画像のURLを入力します。ContextオブジェクトキーをURLで使用するときの構文は、次のようにオブジェクト名を二重括弧で囲みます。例:https://myURLimage.com/{{context.entities.imageName}}
  4. レンダリングサイズセクションで、画像サイズの名前を指定します。例として、iPhoneタブレットの場合、 高さ をピクセル単位で入力し、+追加をクリックして別のサイズを追加するか、追加をクリックし、ダイアログを保存して閉じます。
  5. 保存をクリックすると、サービスノードに対するリクエストが保存され、リクエストの定義<サービスノード名 >ダイアログが閉じます。

画像変換向けのHTMLの定義

  1. サービスタイプ画像向けのHTMLを選択した場合、 タイプ の設定は読み取り専用となります。
  2. リクエストの定義セクションでは、リクエストの定義 をクリックして、 サービスタイプで 画像向けのHTMLを選択した場合の設定を指定します。下図に、リクエストの定義<サービスノード名 >ダイアログが表示されます。
  3. 変換向けのHTMLフィールドに、画像のHTMLを入力します。
  4. レンダリングサイズセクションで、画像サイズの名前を指定します。例として、iPhoneタブレットの場合、 高さ をピクセル単位で入力し、+追加をクリックして別のサイズを追加するか、追加をクリックし、ダイアログを保存して閉じます。

以下は、HTMLを画像に変換する例です。

<head>
<link href="../assets/styles.min.css" rel="stylesheet"/>
<title>HTML: Print Wide HTML Tables</title>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<style>
  .style1 {
     border-collapse: collapse;
     }
  .style1 th {
     background-color: #DDDDDD;
     white-space: nowrap;
     }
  .style1 .d {
     white-space: nowrap;
     }
  .style1 .n {
     padding-left: 20px;
     text-align: right;
     }
</style>
</head>
<body>
<table id="table1" class="style1" border="1" cellpadding="4" cellspacing="0">
  ///TODO Add Table Rows here.
</table>
<input type="button" id="print-button" value="Make this table printable contact@ {{context.session.UserContext.emailId}}"/>
<script>
/*
 * HTML: Print Wide HTML Tables
 * http://salman-w.blogspot.com/2013/04/printing-wide-html-tables.html
*/
$(function() {
$("#print-button").on("click", function() {
   var table = $("#table1"),
       tableWidth = table.outerWidth(),
       pageWidth = 600,
       pageCount = Math.ceil(tableWidth / pageWidth),
       printWrap = $("<div></div>").insertAfter(table),
       i,
       printPage;
   for (i = 0; i < pageCount; i++) {
      printPage = $("<div></div>").css({
          "overflow": "hidden",
          "width": pageWidth,
          "page-break-before": i === 0 ? "auto" : "always"
        }).appendTo(printWrap);
   table.clone().removeAttr("id").appendTo(printPage).css({
      "position": "relative",
      "left": -i * pageWidth
     });
   }
 table.hide();
 $(this).prop("disabled", true);
});
});
</script>
</body>
</html>

前述のHTMLの例で、テーブルの行を例に追加すると、エンドユーザーには次のような画像がレンダリングされます。 HTML画像の例

アラートサブスクリプションサービスの定義

ボットユーザーを自動的に登録し、ダイアログ世界の一環として、コンテキストに応じた適切なアラートを送信できるようになりました。例として、特定の日付の航空券を予約した人は、目的地の都市の天気予報を定期的に受け取るように自動登録されます。アラートサブスクリプションサービスを設定するには、以下の手順に従います。

  1. アラートを関連付けたいサービスノードのコンポーネントプロパティタブを開きます。
  2. 一般設定セクションで、サービスタイプドロップダウンリストから自動サブスクリプションサービスを選択します。
  3. リクエストの定義をクリックします。メモ:アラートサブスクリプションサービスを作成するには、既存のアラートタスクに基づく必要があります。ユーザーは、ダイアログ内の関連するサービスノードに到達すると、アラートタスクに自動登録されます。
  4. スマート/自動アラートダイアログボックスで、 アラートの選択ドロップダウンリストからアラートタスクを選択します。リストには、Myボットに関連する公開されたアラートタスクのみが表示されます。
  5. 以下の説明にあるように、必要な情報を入力します。

アラートサブスクリプション(スマートアラート)の設定

一般的なアラートセットアップでは、アラートのパラメータ、フィルター、その他必要な詳細などは、ボットユーザーが入力します。これはアラートの自動サブスクリプションなので、開発者としてその詳細を設定する必要があります。

アラートパラメータ

これらは、選択したアラートによって異なります。アラートサブスクリプションサービスに使用するデフォルトのパラメータ値を提供します。この例では、アラートに定義されているパラメータはトピック名ニュースの地域です。目的地の都市の天気予報をユーザーに送信することが目的なので、パラメータ値をそれぞれ天気予報context.entity.destinationcity に設定することができます。

フィルター

これらは、選択したアラートによって異なります。アラートサブスクリプションサービスに使用するフィルター基準を提供します。

アラートの頻度

アラート通知の送信頻度を提供します。スキーム、周波数、期間を選択する必要があります。

  • スキームの選択のドロップダウンリストから、アラートを送信するタイミングに応じて、「毎日」、「週日」、「週末」のいずれかを選択します。
  • 頻度の選択のドロップダウンリストから、1日のうち一定の時間間隔で複数のアラートを送信する場合は 「毎」を、1日のうち特定時間に1回のアラートを送信する場合は 「~に」 を選択します。
  • 時間ノード選択ドロップダウンリストから、上記で選択した頻度に応じて、間隔の時間値または1日のうちの時刻を選択します。

この例では、「Daily At 6 a.m.」を選択しています。これは、毎日午前6時にユーザーにアラートが送信されることを意味します。

スマートアラートの有効期限

以下のオプションのいずれかを選び、ユーザーへのアラートの送信を終了するタイミングを設定します。

  • 期間:サブスクリプションの日付から入力した日数が経過すると、通知の送信を停止します。
  • 通知の回数:入力された回数の通知が送信されると、アラートの送信を停止します。
アラートアップグレード

基礎となるアラートタスク(最初に選択して公開されたアラート)のアップグレード版が公開された場合に、このアラートに想定される動作を定義します。

  • 既存インスタンスの削除 このスマートアラートの既存サブスクリプションはすべて削除され、ユーザーは通知を受け取らなくなります。ユーザーは、ダイアログを実行してダイアログ世界のサービスノードに到達したときにのみ、アップグレードされたアラートタスクに自動登録されます。
  • ユーザーがサブスクリプションを手動でアップグレードできるようにする ユーザーは、選択したチャネルでアップグレード通知を受け取りますが、その通知は自動サブスクリプションのアップグレードを案内するリンクです。アップグレードが成功すると、ユーザーに成功の通知が届きます。

データサービスの定義

  1. サービスタイプデータサービス を選択した場合、 タイプ の設定では2つのオプションが提供されています。
    • テーブル – データテーブルでCRUD操作を行う場合は、このオプションを選択します。
    • ビュー – テーブルビューからデータを取得する場合は、このオプションを選択します。

    メモ:Myボットは、テーブル/ビューにアクセスする許可を得ている必要があります。テーブル/ビューの所有者はこの許可を与えなければなりません。許可の方法はこちらをご覧ください

  2. 定義のリクエストセクションで、リクエストの定義 をクリックして、実行したいオペレーションを指定します。詳細はこちらをクリックしてください。

次のステップセットアップしたサービスノードについて、以下のことをしたいと考えます。

サービスノード

サービスノードは、APIサービスを追加して、RESTまたはSOAPのリクエストをサードパーティのWebサービスに対して行うために使用できるダイアログタスクのコンポーネントタイプです。このノードは、エンティティまたは他のノードを使用してユーザー入力をキャプチャし、 API リクエストに必要なパラメータを持つ場合に使用できます。サービスタイプは以下のように定義できます。

  • カスタムサービス – サードパーティのWebサービスへのAPIリクエストを定義します。これはデフォルト設定です。
  • 画像に対するHTML – JavaScriptを使用して、HTMLを画像としてレンダリングするように定義します。例として、HTMLを作成するために、あるいは画像に変換したい文字列としてのHTMLマークアップを含むWebサービス応答におけるキー値を作成するために。
  • 画像に対するURL – 画像をレンダリングするためにロードするWebページのURLを定義します。
  • カスタム認証サービス – タスクフローに必要な認証サービスを提供するサードパーティアプリケーションのURLを定義します。
  • アラートサブスクリプションサービス – ダイアログ世界の一環として、ユーザーへ積極的に送信されるコンテキスト関連のアラートを定義します。
  • データテーブルサービス – ボットに割り当てられた指定のデータテーブル/テーブルビューのデータを任意にクエリ、操作するためのCRUDオペレーションを定義します。

セットアップ

ダイアログタスクにおけるサービスノードのセットアップは、以下の手順で行います。メモ:プラットフォームのv9.0以降では、サービスノードはボットアクションノードの下に分類されます。ボットアクションノードの詳細はこちらをクリックしてください

ノードの追加

  1. ダイアログタスクを開き、サービスノードを追加します。
  2. サービスノードを指定された場所に追加します。ノードの追加手順についてはこちらをご参照ください
  3. 「サービス」ウィンドウは、デフォルトではコンポーネントプロパティタブが選択された状態で表示されます。
  4. 接続プロパティを設定できます。詳細はこちらをご参照ください

ノードの設定

  1. コンポーネントプロパティタブの一般設定セクションで、サービスノードの名前表示名を入力します。例:FetchWeather
  2. ドロップダウンリストから、サービスタイプを選びます。
    • カスタムサービス – サードパーティのWebサービスへのAPIリクエストを定義します。これはデフォルト設定です。
    • 画像に対するHTML – JavaScriptを使用して、HTMLを画像としてレンダリングするように定義します。例として、HTMLを作成するために、あるいは画像に変換したい文字列としてのHTMLマークアップを含むWebサービス応答におけるキー値を作成するために。
    • 画像に対するURL – 画像をレンダリングするためにロードするWebページのURLを定義します。
    • カスタム認証サービス – タスクフローに必要な認証サービスを提供するサードパーティアプリケーションのURLを定義します。詳細について
    • アラートサブスクリプションサービス – ダイアログ世界の一環として、ユーザーへ積極的に送信されるコンテキスト関連のアラートを定義します。
  3. 選択したサービスタイプに基づいて、それぞれのドロップダウンリストから タイプ/サブタイプを選択するか、URL認証を選択します。
  4. 定義のリクエストセクションで、リクエストの定義をクリックします。
  5. <サービスXXXX>向けリクエストの定義ダイアログが表示されます。 選択したサービスタイプに応じて、このトピックにおける次のいずれかのセクションをご参照ください。メモ:カスタム認証サービスの場合、リクエストの定義セクションは適用されないで、代わって応答セクションが表示されます。詳細について. 
  6. 可変ネームスペースセクションでは、可変ネームスペースを関連付けてこのノードとその遷移を実行します。このオプションは、可変ネームスペースがボットに対して有効になっている場合にのみ表示されます。タスクレベルの設定を使用するか、またはこのノード用にカスタマイズできます。詳細情報は、ネームスペースの管理をご参照ください。
  7. ノードの接続タブから、次に実行するダイアログタスクのノードはどれにするかを決定できます。条件文は、ダイアログタスク内の任意のエンティティやコンテキストオブジェクトの値に基づいて記述することも、遷移にインテントを使用することもできます。コンポーネント遷移のセットアップは、以下の手順に従います。
    1. 「サービス」ウィンドウで、接続タブをクリックします。
    2. 接続タブの接続ルールセクションでは、 デフォルトドロップダウンリストからノードを選択することができます。
    3. 左側パネルから既存のサービスノードをドラッグアンドドロップすることができます。
    4. 条件付きのフローを設定するには、IFの追加をクリックします。
    5. 以下のいずれかの基準に基づいて、条件式を設定します。
      • エンティティ:これらの演算子のいずれかを使用して、ダイアログ内のエンティティノードを特定の値と比較します。存在する、等しい、等しいより大きい、等しいより小さい、等しくない、より大きい、より小さい。それぞれのドロップダウンリストを使用して、エンティティ、演算子を選択し、ボックスに数値を入力します。例:PassengerCount (エンティティ) は5 (指定値)より大きい(演算子)
      • コンテキスト:これらの演算子のいずれかを使用して、ダイアログ内のコンテキストオブジェクトを特定の値と比較します。存在する、等しい、等しいより大きい、等しいより小さい、等しくない、より大きい、より小さい。例: Context.entity.PassengerCount (コンテキストオブジェクト)が(演算子)5(指定値)より大きい。
      • インテント:次のユーザーの発話に一致するインテントを選択します。
    6. 次へ進むドロップダウンリストで、条件式が成功した場合にダイアログフローで実行する次のノードを選択します。例として、PassengerCount (エンティティ) が(演算子) 5 (指定値)より大きい場合、次へ進むオファー(サブダイアログ)になります。
    7. その他ドロップダウンリストで、条件が失敗した場合に実行するノードを選択します。
    メモ:複数のIf条件を書きたい場合は、最後のIf条件式の下のその他の条件を追加をクリックします。

     

カスタムサービスの定義

  1. サービスタイプカスタムサービスを選択した場合、 サブタイプフィールドで以下のオプションのいずれかを選択します。
    • REST – API WebサービスはRESTサービスを使用しています。
    • SOAP – API WebサービスはSOAPサービスを使用しています。
  2. リクエストの定義セクションで、リクエストの定義をクリックして、Webサービスタイプの設定を行います。
  3. 下図に、リクエストの定義<サービスノード名 >ダイアログが表示されます。
  4. リクエストURLフィールドの最初のフィールドで、リクエストに使用するHTTPメソッドを選択します。以下のいずれかを選択できます。
    • POST– サーバーにデータを送信するために使用します。例:HTMLフォームを使用する顧客情報、ファイルのアップロードなど。
    • PUT– ターゲットリソースのコンテンツを、送信されてきたコンテンツに置き換えます。
    • PATCH – 送信されてきたコンテンツに、既存のターゲットリソースのコンテンツを追加します。
    • DELETE―既存のターゲットリソースのコンテンツを削除します。
    • GET–既存のターゲットリソースのコンテンツを返します
  5. リクエストURLの第2フィールドには、Kore.aiで処理するダイアログタスク応答のURLを指定します。例:http://koremessenger.com/postURL必要に応じて、クエリパラメータまたはパスパラメータをURLの一部として追加します。エンティティノードの値をパラメータとして使用するには、Contextオブジェクトにアクセスする際に以下の構文を使用します。https://myDomain.com/{{context.entities.topic}} で context.entities.topic。二重括弧 {{ context.object }}を使用する必要があります。詳細情報は、コンテキストオブジェクトをご参照ください。
    1. 必要に応じて、詳細表示をクリックして、次を選択します。
      • Kore.ai BotsへのアクセスがKore.aiコネクタエージェントを使用している場合は、コネクタ使用によるアクセスフィールドで表示される「はい」。詳細情報については、Kore.ai Connectorの使用をご参照ください。
      • ユーザーがボットと共有する機密情報タイプを編集するために、PIIデータの非識別化で「はい」を選択します。詳細情報は、個人特定情報の編集をご覧ください。
    2. 認証タブでは、このサービスノードの呼び出しに必要な認証のタイプを選択するか、必要に応じて新しい認証のタイプを定義します。詳細情報は、認証のセットアップご参照ください。
    3. ヘッダータブでは、指定したリクエストURLにアクセスするために必要な場合、ヘッダーをキー/値のペアで指定します。認証ヘッダーは、認証タブで指定した認証タイプに基づいて自動生成されます。その他の標準ヘッダーを定義する必要があります。例:コンテンツタイプ、受理、または任意のカスタムヘッダー。ここで定義されたヘッダーは、このサービスノードにのみ適用されます。
    4. 本文タブで、本文コンテンツタイプを選択します。以下のいずれかを選択できます。
      • application/x-www-form-urlencoded – マルチパート/フォームデータとしても知られており、ユーザーがフォームからファイルをアップロードできるようにしたい場合に、HTTP POSTリクエストメソッドでファイルを送信できるようにするエンコーディングタイプです。ボットプラットフォームでエンコードされたキー/値のペアを追加することができます。
      • application/json – Kore.aiサーバーとMyボットWebアプリケーション間のデータ転送にJSONを使用します。あらゆるJSONは、処理もまったく行わずにリクエストとともに送信されます。
      • application/xml – SOAPサービスでは、POSTメソッドを使用してXMLペイロードを渡します。エンティティノード値は、XMLの一部として渡すことができます。その際、Contextオブジェクトにアクセスするために次の構文を使用します。https://myDomain.com/{{context.entities.topic}}は、 context.entities.topic.二重括弧{{ context.object }}を使用する必要があります。詳細情報は、コンテキストオブジェクトをご参照ください。
    5. リクエストのテストタブでテストをクリックすると、オプションとして、指定された認証タイプ、HTTPヘッダー、本文パラメータ(定義されている場合)を使用して、APIリクエストURLを送信することができます。回答はテキストエリアに表示されます。サンプル応答として保存をクリックすると、テスト応答がこのノードのサンプル応答として保存されます。
    6. 保存をクリックすると、サービスノードに対するリクエストが保存され、リクエストの定義<サービスノード名 >ダイアログが閉じます。
  6. サンプル応答セクションで、オプションとしてサンプル応答の追加をクリックすると、サンプル応答の追加ダイアログが表示され、サンプル応答を手動で入力または貼り付けることができます。
  7. オプションとして、サンプル応答の追加ドロップダウンリストで、以下を選択できます。
    • JSON – 他のノードで変数として使用されるリクエストURL応答で利用可能なJSONキー/値のペアのリスト。
    • RAW – 他のノードで変数として使用されるキー/値のペアのリストです。
  8. コンポーネントのプロパティセクションの高度な管理では、サービスコールを終了させるための タイムアウト を設定できます。デフォルトでは20秒に設定されていますが、5~20秒の間で任意の値を選択できます。

画像変換向けのURLの定義

  1. サービスタイプ画像向けのURLを選択した場合、 タイプの設定は読み取り専用となります。
  2. リクエストの定義セクションでは、リクエストの定義 をクリックして、 サービスタイプで 画像向けのURLを選択した場合の設定を指定します。下図に、リクエストの定義<サービスノード名 >ダイアログが表示されます。
  3. 変換向けのURLフィールドに、画像のURLを入力します。ContextオブジェクトキーをURLで使用するときの構文は、次のようにオブジェクト名を二重括弧で囲みます。例:https://myURLimage.com/{{context.entities.imageName}}
  4. レンダリングサイズセクションで、画像サイズの名前を指定します。例として、iPhoneタブレットの場合、 高さ をピクセル単位で入力し、+追加をクリックして別のサイズを追加するか、追加をクリックし、ダイアログを保存して閉じます。
  5. 保存をクリックすると、サービスノードに対するリクエストが保存され、リクエストの定義<サービスノード名 >ダイアログが閉じます。

画像変換向けのHTMLの定義

  1. サービスタイプ画像向けのHTMLを選択した場合、 タイプ の設定は読み取り専用となります。
  2. リクエストの定義セクションでは、リクエストの定義 をクリックして、 サービスタイプで 画像向けのHTMLを選択した場合の設定を指定します。下図に、リクエストの定義<サービスノード名 >ダイアログが表示されます。
  3. 変換向けのHTMLフィールドに、画像のHTMLを入力します。
  4. レンダリングサイズセクションで、画像サイズの名前を指定します。例として、iPhoneタブレットの場合、 高さ をピクセル単位で入力し、+追加をクリックして別のサイズを追加するか、追加をクリックし、ダイアログを保存して閉じます。

以下は、HTMLを画像に変換する例です。

<head>
<link href="../assets/styles.min.css" rel="stylesheet"/>
<title>HTML: Print Wide HTML Tables</title>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<style>
  .style1 {
     border-collapse: collapse;
     }
  .style1 th {
     background-color: #DDDDDD;
     white-space: nowrap;
     }
  .style1 .d {
     white-space: nowrap;
     }
  .style1 .n {
     padding-left: 20px;
     text-align: right;
     }
</style>
</head>
<body>
<table id="table1" class="style1" border="1" cellpadding="4" cellspacing="0">
  ///TODO Add Table Rows here.
</table>
<input type="button" id="print-button" value="Make this table printable contact@ {{context.session.UserContext.emailId}}"/>
<script>
/*
 * HTML: Print Wide HTML Tables
 * http://salman-w.blogspot.com/2013/04/printing-wide-html-tables.html
*/
$(function() {
$("#print-button").on("click", function() {
   var table = $("#table1"),
       tableWidth = table.outerWidth(),
       pageWidth = 600,
       pageCount = Math.ceil(tableWidth / pageWidth),
       printWrap = $("<div></div>").insertAfter(table),
       i,
       printPage;
   for (i = 0; i < pageCount; i++) {
      printPage = $("<div></div>").css({
          "overflow": "hidden",
          "width": pageWidth,
          "page-break-before": i === 0 ? "auto" : "always"
        }).appendTo(printWrap);
   table.clone().removeAttr("id").appendTo(printPage).css({
      "position": "relative",
      "left": -i * pageWidth
     });
   }
 table.hide();
 $(this).prop("disabled", true);
});
});
</script>
</body>
</html>

前述のHTMLの例で、テーブルの行を例に追加すると、エンドユーザーには次のような画像がレンダリングされます。 HTML画像の例

アラートサブスクリプションサービスの定義

ボットユーザーを自動的に登録し、ダイアログ世界の一環として、コンテキストに応じた適切なアラートを送信できるようになりました。例として、特定の日付の航空券を予約した人は、目的地の都市の天気予報を定期的に受け取るように自動登録されます。アラートサブスクリプションサービスを設定するには、以下の手順に従います。

  1. アラートを関連付けたいサービスノードのコンポーネントプロパティタブを開きます。
  2. 一般設定セクションで、サービスタイプドロップダウンリストから自動サブスクリプションサービスを選択します。
  3. リクエストの定義をクリックします。メモ:アラートサブスクリプションサービスを作成するには、既存のアラートタスクに基づく必要があります。ユーザーは、ダイアログ内の関連するサービスノードに到達すると、アラートタスクに自動登録されます。
  4. スマート/自動アラートダイアログボックスで、 アラートの選択ドロップダウンリストからアラートタスクを選択します。リストには、Myボットに関連する公開されたアラートタスクのみが表示されます。
  5. 以下の説明にあるように、必要な情報を入力します。

アラートサブスクリプション(スマートアラート)の設定

一般的なアラートセットアップでは、アラートのパラメータ、フィルター、その他必要な詳細などは、ボットユーザーが入力します。これはアラートの自動サブスクリプションなので、開発者としてその詳細を設定する必要があります。

アラートパラメータ

これらは、選択したアラートによって異なります。アラートサブスクリプションサービスに使用するデフォルトのパラメータ値を提供します。この例では、アラートに定義されているパラメータはトピック名ニュースの地域です。目的地の都市の天気予報をユーザーに送信することが目的なので、パラメータ値をそれぞれ天気予報context.entity.destinationcity に設定することができます。

フィルター

これらは、選択したアラートによって異なります。アラートサブスクリプションサービスに使用するフィルター基準を提供します。

アラートの頻度

アラート通知の送信頻度を提供します。スキーム、周波数、期間を選択する必要があります。

  • スキームの選択のドロップダウンリストから、アラートを送信するタイミングに応じて、「毎日」、「週日」、「週末」のいずれかを選択します。
  • 頻度の選択のドロップダウンリストから、1日のうち一定の時間間隔で複数のアラートを送信する場合は 「毎」を、1日のうち特定時間に1回のアラートを送信する場合は 「~に」 を選択します。
  • 時間ノード選択ドロップダウンリストから、上記で選択した頻度に応じて、間隔の時間値または1日のうちの時刻を選択します。

この例では、「Daily At 6 a.m.」を選択しています。これは、毎日午前6時にユーザーにアラートが送信されることを意味します。

スマートアラートの有効期限

以下のオプションのいずれかを選び、ユーザーへのアラートの送信を終了するタイミングを設定します。

  • 期間:サブスクリプションの日付から入力した日数が経過すると、通知の送信を停止します。
  • 通知の回数:入力された回数の通知が送信されると、アラートの送信を停止します。
アラートアップグレード

基礎となるアラートタスク(最初に選択して公開されたアラート)のアップグレード版が公開された場合に、このアラートに想定される動作を定義します。

  • 既存インスタンスの削除 このスマートアラートの既存サブスクリプションはすべて削除され、ユーザーは通知を受け取らなくなります。ユーザーは、ダイアログを実行してダイアログ世界のサービスノードに到達したときにのみ、アップグレードされたアラートタスクに自動登録されます。
  • ユーザーがサブスクリプションを手動でアップグレードできるようにする ユーザーは、選択したチャネルでアップグレード通知を受け取りますが、その通知は自動サブスクリプションのアップグレードを案内するリンクです。アップグレードが成功すると、ユーザーに成功の通知が届きます。

データサービスの定義

  1. サービスタイプデータサービス を選択した場合、 タイプ の設定では2つのオプションが提供されています。
    • テーブル – データテーブルでCRUD操作を行う場合は、このオプションを選択します。
    • ビュー – テーブルビューからデータを取得する場合は、このオプションを選択します。

    メモ:Myボットは、テーブル/ビューにアクセスする許可を得ている必要があります。テーブル/ビューの所有者はこの許可を与えなければなりません。許可の方法はこちらをご覧ください

  2. 定義のリクエストセクションで、リクエストの定義 をクリックして、実行したいオペレーションを指定します。詳細はこちらをクリックしてください。

次のステップセットアップしたサービスノードについて、以下のことをしたいと考えます。

メニュー