アシスタント応答の追加
アクションが起動すると、アシスタントとユーザー間の会話は複数のステップで構成されます。 各ステップの一部は、ステップが処理されるときにアシスタントが顧客に伝える内容です。
ステップにおいてアシスタントの応答を作成するには、**「アシスタントが伝える内容 (Assistant says)」**セクションを使用します。 これは、特定のステップでアシスタントがユーザーに伝えるテキストまたは音声です。 ステップによっては、ユーザーの質問に対する完全な回答を追加したり、補足質問をしたりできます。
簡単なテキスト応答を入力するのであれば、単に、アシスタントによってユーザーに表示させるテキストを入力するだけです。 また、フォーマットやウェブコンテンツを追加したり、 変数を使用してユーザー情報を参照したりすることもできます。
応答のフォーマット設定
太字やイタリックなどのフォント・スタイル設定をテキストに適用したりリンクを追加したりするには、テキスト・エディター・ツールを使用します。
内部的にはフォント・スタイル設定とリンク構文は Markdown フォーマットで保管されています。 Web チャット統合を使用している場合は、HTML と Markdown のタグ付けがサポートされます。 詳しくは、 Markdown formatting を参照してください。
WhatsApp,の統合に送信されるテキスト形式の回答から、HTMLタグ(リンクを除く)は自動的に削除されます。これらのチャネルではHTMLフォーマットがサポートされていないためです。 HTML タグは、それらをサポートするチャネル (Web チャットなど) で引き続き処理され、セッション履歴に保管されます。
マークダウンをサポートしていないカスタム・クライアント・アプリケーションを使用する場合は、テキストのスタイル設定をテキスト応答に適用しないでください。
変数の追加と参照
アシスタントは会話中に情報を変数として保管します。 変数は、実行時に使用可能になるデータ値のコンテナーです。 変数の値は、時間の経過とともに変化する可能性があります。 変数には、アクション変数 (特定のアクションの間にのみ保持される) とセッション変数 (任意のアクションで使用できる) が含まれます。 変数について詳しくは、会話中の情報の管理を参照してください。
アシスタントの出力では、変数を参照して会話をパーソナライズしたり、実行時に利用可能な情報を含めることができます。 アシスタントが伝える内容における変数を参照することについて詳しくは、変数を使用した会話のカスタマイズを参照してください。
応答のテスト
アシスタントの応答が正しくフォーマットされていることを確認するには、 プレビュー機能を使用します。
- **「プレビュー」**ボタンをクリックします。
- アクションを開始するには、最初の語句を入力します (例:
What are your store hours?
)。 - アシスタントが応答したら、メッセージが意図した通りにフォーマットされ、変数が使用されていることを確認します。
応答を追加するためのヒント
- 回答は、簡潔かつ有用になるようにします。
- 応答にユーザーのインテントを反映します。 こうすることで、ユーザーに対し、ボットがユーザーを理解していることが示され、理解していない場合は、すぐに誤解を修正する機会がユーザーに与えられます。
- 回答が頻繁に変更されるデータに依存している場合は、回答に外部サイトのリンクを含める。
- 応答での言葉遣いには注意してください。 応答の表現方法次第で、誰かがあなたのシステムに反応する方法を変えることができます。 1 行のテキストを変更することで、複雑なプログラムのソリューションを実装するために、複数行のコードを書き込む必要がなくなります。
バリエーションの追加
ユーザーがアシスタントに頻繁に戻ってくる場合、毎回同じ挨拶や応答を見ると、ユーザーは退屈に感じるかもしれません。 応答バリエーション を追加して、アシスタントが同じ要求にさまざまな方法で応答できるようにすることができます。
応答のバリエーションを順番に選択するか、ランダムな順序で選択するかを選択できます。 デフォルトでは、順序付きリストから選択されたかのように、応答は順番に選択されます。
応答バリエーションを追加するには、以下の手順
-
アシスタントの応答で、 「応答バリエーションの追加」 アイコン
をクリックします。
-
「応答バリエーション・タイプ」 では、応答バリエーションを順番に回転させるか、それともランダムな順序で回転させるかを選択します。 詳しくは、 順次またはランダム を参照してください。
「応答のバリエーション」 -
各バリエーションを独自のフィールドに追加します。 以下に例を示します。
応答バリエーションの例 応答番号 バリエーション 応答 1 どうしましたか? 応答 2 本日はどのようなご用件でしょうか? 応答 3 私が何を手伝うことができるか教えてください。 応答 4 手伝ってもいい? -
完了したら、 「適用」 をクリックします。 これらのバリエーションは、 Assistant の内にブロックとして表示されます。 「編集」 アイコンをクリックしてバリエーションを更新するか、 「削除」 アイコンをクリックしてすべてのバリエーションを削除できます。 また、複数の応答バリエーション・セットを 1 つのステップに追加することもできます。
アシスタントの応答のバリエーション
順次またはランダム
「応答バリエーション・タイプ」 には、 「順次」 または 「ランダム」 を選択できます。
シーケンシャルは、アクションが最初にトリガーされた際に最初のレスポンスバリエーションを、2回目にトリガーされた際に2番目のレスポンスバリエーションを、というように、バリエーションを入力した順番通りに返します。 これにより、ノードが処理された際に、以下の順序で応答が返されることになります
-
1 回目:
How can I help you?
-
2 回目:
What can I do for you today?
-
3 回目:
Tell me what I can help with.
-
4 回目:
Can I help you?
「ランダム」 は、アクションが最初にトリガーされるときにバリエーションを選択し、次回はランダムに別のバリエーションを選択しますが、同じバリエーションを連続して繰り返すことはありません。 この例は、応答が表示される順序を示しています。
-
1 回目:
Tell me what I can help with.
-
2 回目:
Can I help you?
-
3 回目:
How can I help you?
-
4 回目:
What can I do for you today?
メディア応答
テキスト形式の回答に加えて、マルチメディアやインタラクティブな要素を含む回答を送信するために、他の_回答形式_を使用することができます。
アクション・エディターは、以下のメディア応答タイプをサポートします。
- Image: イメージを応答に組み込みます。 ソース・イメージ・ファイルがいずれかの場所でホストされていて、そこに参照可能な URL があることが必要です。 パブリック・アクセスが不可能なディレクトリーに保管されたファイルは使用できません。
- 動画: 動画プレイヤーを応答に組み込みます。 ソース動画は、サポートされる動画ストリーミング・サービス上の再生可能動画として、または参照に使用できる URL を持つ動画ファイルとして、どこかでホストする必要があります。 パブリック・アクセスが不可能なディレクトリーに保管されたファイルは使用できません。
- 音声: 音声クリップを応答に組み込みます。 ソース音声ファイルは、どこかでホストされている必要があり、それを参照するために使用できる URL を持っている必要があります。 パブリック・アクセスが不可能なディレクトリーに保管されたファイルは使用できません。
- iFrame: 外部 Web サイト (フォームやその他の対話式コンポーネントなど) のコンテンツをチャット内に直接組み込みます。 ソース・コンテンツは、HTTP を使用してパブリックにアクセス可能でなければならず、HTML
iframe
要素として組み込むことができなければなりません。
異なるチャネル統合には、メディア応答を表示する機能に違いがあります。 どのチャネル統合がどの応答タイプをサポートしているかを確認するには、 応答タイプのチャネル統合サポート を参照してください。
異なるチャネル向けにカスタマイズされた異なる応答を定義したい場合は、JSON エディタを使用して応答を編集することで、そのように設定することができます。 詳しくは、「特定の統合のターゲット設定」を参照してください。
JSON エディターで応答を編集することにより、チャネル固有の対話を処理するための追加の応答タイプにアクセスすることもできます。
JSON エディタを使用して回答を編集する方法の詳細については 、「JSON エディタを使用した回答の定義 」を参照してください。
画像を追加する回答
「イメージ」 応答を追加して、イメージを顧客に表示します。
Image 応答タイプは、以下のチャネル統合によってサポートされます。
- Web チャット
- SMS
- Slack
- Microsoft Teams
画像の回答を追加するには、以下の手順に従ってください
-
「アシスタントの内容」 フィールドで、
「イメージ」 アイコンをクリックします。
-
ソース URL のフィールドに、ホストされているイメージの完全な URL を入力します。
画像は、
JPEG
、GIF
、またはPNG
のフォーマットでなければなりません。 画像ファイルは、https:
URL (https://www.example.com/assets/common/logo.png
など)で公開可能な場所に保存する必要があります。IBM Cloud® Object Storage に保管されているイメージにアクセスするには、個々のイメージ・ストレージ・オブジェクトへのパブリック・アクセスを有効にした後、
https://s3.eu.cloud-object-storage.appdomain.cloud/your-bucket-name/image-name.png
のような構文でイメージ・ソースを指定して参照します。 -
オプションで、表示されるフィールドにイメージのタイトル、説明、および代替テキストを指定します。 Web チャット統合では、タイトルと説明がイメージとともに表示されます。
変数への参照はサポートされていません。 一部の統合チャネルでは、タイトルや説明は無視されます。
-
**「適用」**をクリックします。
音声応答の追加
スポーク・ワードまたはその他の音声コンテンツを含めるには、 「音声」 応答を追加します。 ウェブチャットでは、音声応答は埋め込みのオーディオプレーヤーとして表示されます。 電話統合では、音声応答が電話を介して再生されます。
Audio 応答タイプは、以下のチャネル統合でサポートされています。
- Web チャット
- 電話番号
- SMS
- Slack
音声応答を追加するには、以下の手順に従ってください
-
「アシスタントの音声 (Assistant Submit)」 フィールドで、
「音声 (Audio)」 アイコンをクリックします。
-
ソース URL の欄に、ホストされているオーディオクリップの完全な URL を入力してください
-
音声ファイルに直接リンクするには、MP3 や WAV などの標準形式のファイルへの URL を指定します。 ウェブチャットでは、リンクされたオーディオクリップは埋め込みオーディオプレーヤーとして表示されます。
-
サポートされている音声ホスティング・サービス上の音声クリップにリンクするには、その音声クリップの URL を指定します。 ウェブチャットでは、ホスティングサービス用の埋め込み可能なプレーヤーを使用して、リンクされたオーディオクリップが再生されます。
ブラウザでオーディオファイルにアクセスする際にURLを指定します(例:
https://soundcloud.com/ibmresearch/fallen-star-amped
URL を埋め込み可能な形式に変換する必要はありません。ウェブチャットが自動的に変換します。以下のサービスでホストされる音声を埋め込むことができます。
-
-
オプションで、表示されるフィールドにタイトル、説明、および代替テキストを指定します。 Web チャット統合では、タイトルと説明がオーディオ・プレイヤーとともに表示されます。
変数への参照はサポートされていません。 一部の統合チャネルでは、タイトルや説明は無視されます。
動画による回答を追加する
「ビデオ」 応答を追加して、ハウツー・デモンストレーション、プロモーション・クリップ、またはその他のビデオ・コンテンツを表示します。 Web チャットでは、動画の応答は埋め込み動画プレイヤーとしてレンダリングされます。
「ビデオ」 応答タイプは、以下のチャネル統合でサポートされます。
- Web チャット
- SMS
- Slack
動画による回答を追加するには、以下の手順に従ってください
-
「ビデオ」 フィールドで、
「ビデオ」 アイコンをクリックします。
-
URL に、ホストされている動画の完全な URL を入力します
-
動画ファイルに直接リンクするには、MPEG や AVI などの任意の標準形式でファイルの URL を指定します。 ウェブチャットでは、リンクされた動画は埋め込み動画プレーヤーとして表示されます。
HLS (
.m3u8
) および DASH (MPD) ストリーミング動画はサポートされていません。 -
サポートされている動画ホスティング・サービスでホストされている動画にリンクするには、動画の URL を指定します。 ウェブチャットでは、ホスティングサービス用の埋め込み可能なプレーヤーを使用して、リンクされた動画が再生されます。
ブラウザでビデオを視聴する際にURLを指定します(例:
https://www.youtube.com/watch?v=52bpMKVigGU
URL を埋め込み可能な形式に変換する必要はありません。ウェブチャットが自動的に変換します。以下のサービスでホストされている動画を埋め込むことができます
- YouTube
- Vimeo
- Twitch
- ストリーミング可能
- Wistia
- Vidyard
-
-
オプションで、表示されるフィールドにビデオのタイトル、説明、および代替テキストを指定します。 Web チャット統合では、タイトルと説明がビデオ・プレイヤーとともに表示されます。
変数への参照はサポートされていません。 一部の統合チャネルでは、タイトルや説明は無視されます。
-
動画を特定のディスプレイ・サイズに拡大縮小する場合は、「基本の高さ」フィールドに数値を指定します。
iframeレスポンスを追加する
iframeレスポンスを追加して、他のウェブサイトからのコンテンツをHTML iframe
要素としてチャットウィンドウ内に直接埋め込みます。 iFrame 応答は、お客様がチャットを終了せずに外部サービスとの何らかの対話を実行できるようにする場合に役立ちます。 例えば、ウェブチャット内に次の例を表示するために iframeレスポンスを使用することができます
- Google Maps 上の対話式マップ
- SurveyMonkey を使用するアンケート調査
- OpenTable 予約フォーム
- Calendly を使用するスケジューリング・フォーム
Web チャットでは、以下の 2 つの方法で iframe を組み込むことができます。
- 埋め込みコンテンツを記述するプレビュー・カードのようなものです。 お客様はこのカードをクリックしてフレームを表示し、コンテンツと対話できます。
- インライン。会話内での意味。 このオプションは、iframe コンテンツの小さい部分に適しています。
iframe 応答タイプは、以下のチャネル統合によってサポートされます。
- Web チャット
iFrame 応答タイプを追加するには、以下のステップを実行します。
-
「アシスタントの表示」 フィールドで、 iframe アイコン (
) をクリックします。
-
「iFrame ソース」フィールドに、外部コンテンツの完全な URL を追加します。
URL は、HTML
iframe
要素に埋め込むことができるコンテンツを指定する必要があります。 サイトによって、コンテンツの埋め込みに関する制限や、埋め込み可能なURLを生成するプロセスが異なります。 組み込み可能 URL とは、iframe
エレメントのsrc
属性の値として指定できる URL のことです。例えば Google を使用したインタラクティブな地図を埋め込むには、 Google を使用できます。 詳しくは、 マップ組み込み API の概要を参照してください。 他のサイトには、組み込み可能コンテンツを作成するためのさまざまなプロセスがあります。
Web サイトのコンテンツをアシスタントに組み込む権限を付与する
Content-Security-Policy: frame-src
の使用に関する技術的な詳細については、 CSP: frame-srcを参照してください。 -
オプションで、「タイトル」フィールドに説明的なタイトルを追加します。
Web チャットでは、追加したタイトルがプレビュー・カードに表示されます。 顧客がプレビュー・カードをクリックして、外部コンテンツをレンダリングします。
タイトルを指定しない場合、ウェブチャットはURL からメタデータを取得しようとし、ソース内の指定に従ってコンテンツのタイトルを表示します。
変数への参照はサポートされていません。
-
会話のフローでプレビュー・カードとしてではなく iframe を表示するには、 「インラインでの iframe の表示 (Display iframe inline)」 を 「オン (On)」 に設定します。 また、iframe の高さを設定することもできます。 デフォルトは 180 ピクセルです。
技術的な詳細: iframe
サンドボックス
ウェブチャットによってiframeに読み込まれたコンテンツ_はサンドボックス化されており_、セキュリティ上の脆弱性を低減する権限制限がかけられています。 Web チャットは、iframe
要素の sandbox
属性を使用して、以下の許可のみを付与します。
権限 | 説明 |
---|---|
allow-downloads |
ダウンロードがユーザーによって開始された場合に、ネットワークからのファイルのダウンロードを許可します。 |
allow-forms |
フォームの送信を許可します。 |
allow-scripts |
スクリプトの実行を許可しますが、ポップアップ・ウィンドウを開くことは_できません_。 |
allow-same-origin |
コンテンツが自身のデータストレージ(クッキーなど)にアクセスすることを許可し、 JavaScript APIへの限定的なアクセスを許可します。 |
サンドボックス化された iframe 内で実行されるスクリプトは、iframe の外側のコンテンツを変更することはできません。 もし 外側のページと iframe は異なるオリジンです。 Web チャット・ウィジェットがホストされているページと同じ起点を持つコンテンツを埋め込むために iframe 応答を使用する場合は注意してください。 この場合、組み込みコンテンツはサンドボックスを打ち破り、フレーム外のコンテンツにアクセスすることができます。
この潜在的な脆弱性について詳しくは、 sandbox
属性 の資料を参照してください。
技術詳細: iframe
プレビュー・カード
Web チャットの iframe
応答タイプには、 「プレビュー・カード」 が表示されます。これには、ユーザーが Web チャットでアクセスした Web ページのイメージ、タイトル、および説明が含まれます。
「プレビュー・カード」 にイメージ、タイトル、および説明を表示するには、Web ページの <head>
タグ内に以下の <meta>
タグが必要です。
<meta property="og:image" content="https://.../image.jpg" />
<meta property="og:image:url" content="https://.../image.jpg" />
<meta property="og:title" content="The webpage title" />
<meta property="og:description" content="The webpage description" />
指定されたこれらのメタデータ・プロパティーは、 Open Graph Protocol から取得されます。
メタデータはオプションです。 Web チャットには、Web チャットが正常にフェッチした Web ページの URL とメタデータを含むプレビュー・カードが表示されます。
応答の一時停止
Pause 応答を使用すると、アシスタントは次の応答まで指定された間隔だけ待機します。 この一時停止により、要求が完了するまでの時間、または応答間で一時停止するライブ・エージェントのように動作するまでの時間が可能になります。 一時停止は、 0
秒から 60
秒までの任意の期間でなければなりません。これには、 milliseconds
までの一時停止を構成するための秒の小数部を含めることができます。
ポーズ応答は、通常、他の応答と組み合わせて使用されます。 デフォルトでは、ライブ・エージェントをシミュレートするために、一時停止中にタイピング・インディケーター・アニメーションが表示されます。
Pause 応答タイプは、以下のチャネル統合でサポートされます。
- Web チャット
電話チャネルでは、アシスタント出力に SSML の break
要素を含めることで、一時停止を追加できます。 詳しくは、 Text to Speech の資料を参照してください。
ポーズ応答を追加するには:
-
「アシスタントのメッセージ」 フィールドで、
「一時停止」 アイコンをクリックします。
-
「期間」 フィールドに、一時停止の時間の長さを
seconds
に入力します。期間は
60 seconds
を超えてはなりません。 また、 「期間」 フィールドにsecond
の小数部を入力して、milliseconds
までの応答を一時停止することもできます。 例えば、10.50 seconds
と入力すると、10500 milliseconds
の応答が一時停止します。 通常、顧客は誰かが回答を入力するまで約8秒間待つことに前向きです。 -
「タイピング標識」 は、デフォルトで 「オン」 に設定されています。 必要に応じて、これを 「オフ」 に設定できます。
一時停止の後に、テキスト応答タイプなど別の応答タイプを追加して、一時停止が終了したことを明確に示してください。