AIアシスタントの対応を追加
アクションが起動されると、アクションの本体はAIアシスタントとユーザーの会話を構成する複数のステップで構成されます。 各ステップの1つは、そのステップが処理されたときにAIアシスタントが顧客に言うことである。
AIアシスタントの応答をステップで作成するには、アシスタントの発言セクションを使用します。 これは、AIアシスタントが特定のステップでユーザーに伝えるテキストや音声を表す。 ステップによっては、ユーザーの質問に対する完全な回答を追加したり、補足質問をしたりできます。
AIアシスタントに表示させたいテキストを入力するだけで、簡単なテキスト応答を入力することができます。 また、書式やウェブコンテンツを追加したり、変数を使用してユーザー情報を参照することもできます。
応答のフォーマット設定
太字やイタリックなどのフォント・スタイル設定をテキストに適用したりリンクを追加したりするには、テキスト・エディター・ツールを使用します。
内部的にはフォント・スタイル設定とリンク構文は Markdown フォーマットで保管されています。 ウェブチャット統合を使用している場合、HTMLとMarkdownのタグ付けがサポートされています。 詳細については、Markdownの書式設定を参照してください。
HTMLタグ(リンクを除く)は、Facebook、「WhatsApp,、Slack統合に送信されるテキスト回答から自動的に削除されます。 HTMLタグは、HTMLタグをサポートするチャンネル(ウェブチャットなど)では引き続き扱われ、セッション履歴に保存されます。
マークダウンをサポートしていないカスタム・クライアント・アプリケーションを使用する場合は、テキストのスタイル設定をテキスト応答に適用しないでください。
変数の追加と参照
会話中、AIアシスタントは情報を変数として保存する。 変数は、実行時に利用可能になるデータ値のコンテナである。 変数の値は時間とともに変化する。 変数には、アクション変数 (特定のアクションの間にのみ保持される) とセッション変数 (任意のアクションで使用できる) が含まれます。 変数について詳しくは、会話中の情報の管理を参照してください。
AIアシスタントの出力では、会話をパーソナライズするために変数を参照したり、実行時に利用可能な情報を含めることができます。 AIアシスタントの発言に変数を参照する方法については、変数を使用して会話をカスタマイズするをご覧ください。
応答のテスト
AIアシスタントの応答が正しくフォーマットされていることを確認するには、プレビューを使用することができます。
- 「プレビュー」ボタンをクリックします。
- アクションを開始するには、最初の語句を入力します (例:
What are your store hours?)。 - AIアシスタントが応答したら、メッセージの書式や変数の使い方など、意図したとおりに表示されているか確認してください。
応答を追加するためのヒント
- 回答は、簡潔かつ有用になるようにします。
- 応答にユーザーのインテントを反映します。 こうすることで、ユーザーに対し、ボットがユーザーを理解していることが示され、理解していない場合は、すぐに誤解を修正する機会がユーザーに与えられます。
- 回答が頻繁に変更されるデータに依存する場合は、回答に外部サイトへのリンクを含める。
- 応答での言葉遣いには注意してください。 どのように返答するかによって、相手の反応を変えることができる。 1 行のテキストを変更することで、複雑なプログラムのソリューションを実装するために、複数行のコードを書き込む必要がなくなります。
バリエーションの追加
もしユーザーが頻繁にAIアシスタントに戻ってくるのであれば、毎回同じような挨拶や応答を見るのは退屈かもしれない。 AIアシスタントが同じリクエストに異なる方法で応答できるように、応答のバリエーションを追加することができます。
応答のバリエーションを順番に選択するか、ランダムな順序で選択するかを選択できます。 デフォルトでは、順序付きリストから選択されたかのように、応答は順番に選択されます。
レスポンスのバリエーションを増やす:
アシスタントの「 レスポンスバリエーションの追加」アイコンの「
」をクリックします。応答バリエーションタイプでは、応答バリエーションを順次回転させるか、ランダムな順序で回転させるかを選択します。 詳しくは、シーケンシャルかランダムかを参照。

応答バリエーション それぞれのバリエーションをそれぞれのフィールドに追加する。 例:
応答番号 バリエーション レスポンス 1 どうしましたか? レスポンス2 今日は何をしましょうか? レスポンス3 私がお手伝いできることを教えてください。 レスポンス 4 何かご用ですか?
完了したら、Applyをクリックする。 このバリエーションは、アシスタントの中にブロックとして表示される。 編集」アイコンをクリックしてバリエーションを更新するか、「削除」アイコンをクリックしてすべてのバリエーションを削除することができます。 また、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エディタを使用したレスポンスの定義」を参照してください。
画像応答の追加
顧客に画像を表示するために画像レスポンスを追加します。
イメージ・レスポンス・タイプは、以下のチャンネル統合でサポートされている:
- Webチャット
- SMS
- Slack
- Microsoft Teams
イメージ・レスポンスを追加するには、以下の手順を実行します:
アシスタントの発言欄で、「
画像アイコンをクリックします。
Source 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.オプションで、画像のタイトル、説明、altテキストを指定します。 ウェブチャットの統合では、タイトルと説明は画像と一緒に表示されます。
変数への参照はサポートされていない。 一部の統合チャネルでは、タイトルや説明は無視されます。
「適用」をクリックします。
オーディオ応答の追加
音声応答を追加して、話し言葉やその他の音声コンテンツを含めることができます。 ウェブチャットでは、オーディオレスポンスは埋め込まれたオーディオプレーヤーとしてレンダリングされます。 電話統合では、音声応答が電話を介して再生されます。
オーディオ・レスポンス・タイプは、以下のチャンネル統合でサポートされている:
- Webチャット
- 電話番号
- SMS
- Slack
オーディオ応答を追加するには、以下の手順を実行します:
アシスタントの発言欄で「
オーディオアイコンをクリックします。Source URL フィールドに、ホストされているオーディオクリップの完全な URL を入力します:
音声ファイルに直接リンクするには、MP3 や WAV などの標準形式のファイルへの URL を指定します。 ウェブチャットでは、リンクされたオーディオクリップは埋め込まれたオーディオプレーヤーとしてレンダリングされます。
サポートされている音声ホスティング・サービス上の音声クリップにリンクするには、その音声クリップの URL を指定します。 ウェブチャットでは、リンクされたオーディオクリップは、ホスティングサービスの埋め込み可能なプレーヤーを使ってレンダリングされます。
ブラウザで音声ファイルにアクセスする際に使用する URL を指定してください(例:
https://soundcloud.com/ibmresearch/fallen-star-amped)。 URL を埋め込み可能な形式に変換する必要はありません。ウェブチャットが自動的に行います。以下のサービスでホストされる音声を埋め込むことができます。
オプションで、タイトル、説明、altテキストを指定します。 ウェブチャットの統合では、タイトルと説明がオーディオプレーヤーと一緒に表示されます。
変数への参照はサポートされていない。 一部の統合チャネルでは、タイトルや説明は無視されます。
ビデオ回答の追加
ビデオ応答を追加して、ハウツーデモ、プロモーションクリップ、その他のビデオコンテンツを表示します。 Web チャットでは、動画の応答は埋め込み動画プレイヤーとしてレンダリングされます。
ビデオ・レスポンス・タイプは、以下のチャンネル統合でサポートされている:
- Webチャット
- SMS
- Slack
ビデオ応答を追加するには、以下の手順を実行します:
アシスタントの発言欄で、「
ビデオアイコンをクリックします。
ソース URL ] フィールドに、ホストされている動画の完全な URL を入力します:
動画ファイルに直接リンクするには、MPEG や AVI などの任意の標準形式でファイルの URL を指定します。 ウェブチャットでは、リンクされたビデオは埋め込まれたビデオプレーヤーとしてレンダリングされます。
HLS (
.m3u8) および DASH (MPD) ストリーミング動画はサポートされていません。サポートされている動画ホスティング・サービスでホストされている動画にリンクするには、動画の URL を指定します。 ウェブチャットでは、リンクされたビデオは、ホスティングサービスの埋め込み可能なプレーヤーを使用してレンダリングされます。
ブラウザでビデオを表示する際に使用する URL を指定してください(例:
https://www.youtube.com/watch?v=52bpMKVigGU)。 URL を埋め込み可能な形式に変換する必要はありません。ウェブチャットが自動的に行います。以下のサービスでホストされているビデオを埋め込むことができます:
オプションで、動画のタイトル、説明、altテキストを指定します。 ウェブチャットの統合では、タイトルと説明がビデオプレーヤーと一緒に表示されます。
変数への参照はサポートされていない。 一部の統合チャネルでは、タイトルや説明は無視されます。
動画を特定のディスプレイ・サイズに拡大縮小する場合は、「基本の高さ」フィールドに数値を指定します。
iframeレスポンスの追加
HTMLの'iframe要素としてチャットウィンドウ内に直接他のウェブサイトからのコンテンツを埋め込むためにiframe応答を追加します。 iFrame 応答は、お客様がチャットを終了せずに外部サービスとの何らかの対話を実行できるようにする場合に役立ちます。 例えば、ウェブチャット内で以下の例を表示するために、iframeレスポンスを使用することができます:
- Googleのインタラクティブマップ
- SurveyMonkeyを使用したアンケート
- OpenTableからの予約フォーム
- Calendlyを使用したスケジュールフォーム
ウェブチャットでは、2つの方法でiframeを含めることができます:
- 埋め込まれたコンテンツを説明するプレビューカードのようなもの。 お客様はこのカードをクリックしてフレームを表示し、コンテンツと対話できます。
- インライン、つまり会話の中でという意味だ。 このオプションは、小さなiframeコンテンツに適しています。
iframeレスポンス・タイプは、以下のチャネル統合でサポートされています:
- Webチャット
iFrame 応答タイプを追加するには、以下のステップを実行します。
アシスタントの発言欄で、iframeアイコン(
)をクリックします。
「iFrame ソース」フィールドに、外部コンテンツの完全な URL を追加します。
URL は、HTML
iframe要素に埋め込むことができるコンテンツを指定する必要があります。 サイトによって、コンテンツを埋め込むための制限や、埋め込み可能なURLを生成するプロセスは異なります。 組み込み可能 URL とは、iframeエレメントのsrc属性の値として指定できる URL のことです。例えば、GoogleMapsを使ったインタラクティブマップを埋め込むには、GoogleMaps Embed APIを使います。 詳細については、Maps Embed APIの概要を参照してください。 他のサイトには、組み込み可能コンテンツを作成するためのさまざまなプロセスがあります。
AIアシスタントにウェブサイトのコンテンツを埋め込む許可を与える'
Content-Security-Policy: frame-src使用する技術的な詳細については、CSP: frame-srcを参照してください。オプションで、「タイトル」フィールドに説明的なタイトルを追加します。
ウェブチャットでは、追加したタイトルはプレビューカードに表示されます。 顧客がプレビューカードをクリックすると、外部コンテンツがレンダリングされる。
タイトルを指定しない場合、ウェブチャットは指定された URL からメタデータの取得を試み、ソースの指定に従ってコンテンツタイトルを表示します。
変数への参照はサポートされていない。
プレビューカードとしてではなく、会話の流れの中でiframeを表示するには、iframeをインラインで表示するを オンに設定します。 iframeの高さも設定できます。 デフォルトは180ピクセル。
技術的な詳細 iframeサンドボックス
ウェブチャットによってiframeでロードされるコンテンツはサンドボックス化され、セキュリティの脆弱性を減らすためにパーミッションが制限されます。 Web チャットは、iframe 要素の sandbox 属性を使用して、以下の許可のみを付与します。
| 権限 | 説明 |
|---|---|
allow-downloads |
ダウンロードがユーザーによって開始された場合に、ネットワークからのファイルのダウンロードを許可します。 |
allow-forms |
フォームの送信を許可します。 |
allow-scripts |
スクリプトの実行を許可しますが、ポップアップ・ウィンドウを開くことはできません。 |
allow-same-origin |
コンテンツが自身のデータストレージ(クッキーなど)にアクセスすることを許可し、JavaScriptAPIへの限定的なアクセスを許可します。 |
サンドボックス化されたiframeの内部で実行されるスクリプトは、外部ページとiframeのオリジンが異なる場合、iframeの外部のコンテンツを変更することはできません。 ウェブチャットウィジェットがホストされているページと同じオリジンを持つコンテンツを埋め込むためにiframeレスポンスを使用する場合は注意してください。 このような状況では、埋め込まれたコンテンツはサンドボックスを破り、フレーム外のコンテンツにアクセスすることができる。 この潜在的な脆弱性の詳細については、'sandbox属性のドキュメントを参照のこと。
技術的な詳細 iframeプレビューカード
ウェブチャットの 'iframeレスポンスタイプは、ユーザーがウェブチャットで訪問するウェブページのイメージ、タイトル、説明を含むプレビューカードを表示します。
プレビューカードに画像、タイトル、説明を表示するには、ウェブページは'<head>タグの中に次の'<meta>タグが必要です:
<meta property="og:image" content="https://.../image.jpg" />
<!--or-->
<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" />
これらのメタデータ・プロパティは、The Open Graph Protocolに由来する。
メタデータは任意である。 ウェブチャットは、ウェブチャットが正常に取得したウェブページのURLとメタデータを含むプレビューカードを表示します。
ポーズ・レスポンス
Pause(一時停止)レスポンスを使用して、AIアシスタントに次のレスポンスの前に指定された間隔を待たせます。 この一時停止により、リクエストが完了するまでの時間を確保したり、ライブエージェントのように応答と応答の間に一時停止することができます。 一時停止は、「0」から「60秒までの任意の長さでなければならず、「milliseconds秒までの一時停止を設定するために、秒の小数を含めることができる。
ポーズ・レスポンスは通常、他のレスポンスと組み合わせて使用される。 デフォルトでは、ライブエージェントをシミュレートするために、タイピングインジケータアニメーションが一時停止中に表示されます。
一時停止応答タイプは、以下のチャンネル統合でサポートされています:
- Webチャット
電話チャンネルでは、AIアシスタントの出力にSSMLの「break要素を含めることで、一時停止を追加することができます。 詳しくはText to Speechのドキュメントをご覧ください。
一時停止応答を追加する:
アシスタントの発言欄で「
一時停止アイコンをクリックします。
Duration(継続時間)フィールドに、休止時間の長さを'
secondsに入力する。持続時間は '
60 secondsを超えてはならない。 さらに、「Duration」フィールドに「second小数を入力することで、「millisecondsレスポンスを一時停止することができる。 例えば、'10.50 seconds入力すると、'10500 millisecondsで応答が一時停止する。 顧客は通常、誰かが回答を入力するまで約8秒待つことを厭わない。タイピングインジケーターはデフォルトでオンに設定されています。 オフに設定することもできる。
一時停止の後に、テキスト応答タイプなど別の応答タイプを追加して、一時停止が終了したことを明確に示してください。