ビジネス メッセージ エージェントは、
- Dialogflow ES: インテントのマッチングと FAQ bot
- Dialogflow CX: インテントのマッチングとライブ対応のエージェントのハンドオフ
ビジネス メッセージ エージェントを Dialogflow の他の機能と統合する ES または Dialogflow CX、 各プロダクトのドキュメントをご覧ください
Dialogflow と統合されているエージェントにユーザーがメッセージを送信すると、
ビジネス メッセージは Dialogflow にユーザー メッセージを渡し、Dialogflow の
メッセージでエージェントへのレスポンスが
dialogflowResponse
オブジェクト。エージェントを構成して
ユーザー操作なしで Dialogflow のレスポンスを自動送信
なります。自動返信をご覧ください。
をご覧ください。
Dialogflow の統合
Dialogflow ベースの自動化をビジネス メッセージで利用する前に、 Dialogflow インテグレーションを有効にする必要があります。
前提条件
利用を開始するには、以下が必要です。
Dialogflow エージェントがない場合は作成します。
Dialogflow ES
Dialogflow ES の統合を有効にするには、以下が必要です。 Dialogflow エージェントのプロジェクト ID。プロジェクト ID を確認するには、
- Dialogflow コンソールに移動します。
- ビジネス メッセージに接続する Dialogflow エージェントを選択します。 歯車アイコンをクリックして エージェント名の横が表示されます。
- [Google Project] の [Project ID] の値をメモします。
Dialogflow CX
Dialogflow CX の統合を有効にするには、以下が必要です。 Dialogflow エージェントのプロジェクト ID とエージェント ID。これらの ID を見つけるには
- Dialogflow CX コンソールに移動します。
- Dialogflow プロジェクトを選択します。
- エージェント セレクタで、オーバーフロー メニューをクリックします。 Dialogflow エージェントの横にあります。
- [名前をコピー] をクリックします。これにより、エージェントの名前が
次の形式にします。
projects/PROJECT_ID/locations/REGION_ID/agents/AGENT_ID
。 - プロジェクト ID とエージェント ID の値をメモします。
統合を有効にする
- Business Communications デベロッパー コンソールで、 インテグレーション。
- [Dialogflow] で、[Enable integration] をクリックします。
- [既存のモデルを接続] をクリックします。
- [Dialogflow のエディション] で、有効にするエディションを選択します。
- Dialogflow エージェントのプロジェクト ID を入力します。
- Dialogflow CX を有効にするには、Dialogflow エージェントのエージェント ID も入力します。
- ビジネス メッセージからユーザーに自動で返信したい場合は、 Dialogflow レスポンスの場合は、[Enable auto-response] を選択します。
- [次へ] をクリックします。
- サービス アカウントのメールアドレスをコピーします。このアカウントはビジネス メッセージを接続します Dialogflow エージェントもサポートしています
- Google Cloud コンソール Dialogflow プロジェクトを選択します。
- [IAM] に移動します。 権限。
- [追加] をクリックし、[新しいプリンシパル] のサービス アカウントのメールアドレスを入力します。
- [ロールを選択] で、[Dialogflow コンソール エージェント編集者] を選択します。
- [別のロールを追加] をクリックし、[Dialogflow API クライアント] を選択します。
- [保存] をクリックします。
- Business Communications デベロッパー コンソールで、[Next] をクリックします。
- [Start integration] をクリックします。
ビジネス メッセージと Dialogflow の接続には 2 分ほどかかります。
統合を更新する
- Business Communications デベロッパー コンソールで、 インテグレーション。
- 歯車アイコン をクリックします。 (Dialogflow の横)をクリックします。
- 自動返信を有効にするかどうかに応じて、[自動返信を有効にする] を切り替えます。 Dialogflow レスポンスでユーザーに自動的に応答するビジネス メッセージ。
Dialogflow のエディションを切り替える
1 つのビジネス メッセージ エージェントは、一度に 1 つの Dialogflow インテグレーションのみをサポートできます。 Dialogflow のエディション間で切り替えるには、 新しい統合を有効にする前に、現在の統合を確認する必要があります。
統合を無効にする
- Business Communications デベロッパー コンソールで、 インテグレーション。
- 歯車アイコン をクリックします。 (Dialogflow の横)をクリックします。
- [Disable integration] をクリックします。
- [無効にする] をクリックします。
既存の Dialogflow インテグレーションを無効にするまでに 1 分ほどかかります。
こちらの手順に沿って、新しい Dialogflow インテグレーションを有効にします。
インテント マッチング
ビジネス メッセージ エージェントの Dialogflow インテグレーションを有効にすると、 エージェントは、Dialogflow プロジェクトで構成されたインテントを使用して、 ユーザーの質問に対応できます。コードを記述する必要はありません。詳細情報 Dialogflow ES のドキュメントをご覧ください。 Dialogflow CX。
使用するすべての会話オプションに対して Dialogflow インテントを構成します。 自動化によってサポートを提供しますビジネス メッセージ エージェントは Dialogflow を利用して 理解するのに役立ちます。
Dialogflow API を呼び出すと、ビジネス メッセージは
ユーザー メッセージ ペイロード
フルフィルメント Webhook を作成します。ユーザー メッセージが一致する場合
このペイロードには、次のように Struct
形式でアクセスできます。
QueryParameters
内の business_messages_payload
フィールド。
ペイロードには、ユーザー メッセージのすべてのフィールド(DialogflowResponse
を除く)が含まれます。
Dialogflow CX の場合、ビジネス メッセージは、値が google_business_messages
の channel
というセッション パラメータもインテントに渡します。このセッション パラメータは、$session.params.channel
の形式でエージェントで参照できます。
このパラメータを使用すると、同じ Dialogflow エージェントで複数のチャネルをサポートするため、Dialogflow フルフィルメントに条件を追加できます。
クエリ パラメータの詳細については、Dialogflow ES と Dialogflow CX のリファレンスをご覧ください。
前提条件
Dialogflow で NLU モデルを作成する際は、さまざまな構成で 指定することもできます。ビジネス メッセージはデフォルトの返信メッセージ、 これには次のものが含まれます
- テキスト
- カスタム ペイロード
- ライブ対応のエージェントへのハンドオフ(Dialogflow CX のみ)
カスタム ペイロードは、有効なビジネス メッセージの JSON メッセージ レスポンスと一致する必要があります。 オブジェクトです。 インテントに対してカスタム ペイロード レスポンスを構成する場合、ビジネス メッセージ 次のフィールドは無視されます。
name
messageId
representative
次のサンプル レスポンスをご覧ください。
候補が表示されたテキスト
{
"text": "Hello World!",
"fallback": "Hello World!\n\nReply with \"Hello\" or \"Hi!\"",
"suggestions": [
{
"reply": {
"text": "Hello",
"postbackData": "hello-formal"
}
},
{
"reply": {
"text": "Hi!",
"postbackData": "hello-informal"
}
}
]
}
リッチカード
{
"fallback": "Hello, world!\nSent with Business Messages\n\nReply with \"Suggestion #1\" or \"Suggestion #2\"",
"richCard": {
"standaloneCard": {
"cardContent": {
"title": "Hello, world!",
"description": "Sent with Business Messages.",
"media": {
"height": "TALL",
"contentInfo":{
"altText": "Google logo",
"fileUrl": "https://www.google.com/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png",
"forceRefresh": "false"
}
},
"suggestions": [
{
"reply": {
"text": "Suggestion #1",
"postbackData": "suggestion_1"
}
},
{
"reply": {
"text": "Suggestion #2",
"postbackData": "suggestion_2"
}
}
]
}
}
}
}
リッチカード カルーセル
{
"fallback": "Card #1\nThe description for card #1\n\nCard #2\nThe description for card #2\n\nReply with \"Card #1\" or \"Card #2\"",
"richCard": {
"carouselCard": {
"cardWidth": "MEDIUM",
"cardContents": [
{
"title": "Card #1",
"description": "The description for card #1",
"suggestions": [
{
"reply": {
"text": "Card #1",
"postbackData": "card_1"
}
}
],
"media": {
"height": "MEDIUM",
"contentInfo": {
"fileUrl": "https://my.files/cute-dog.jpg",
"forceRefresh": false
}
}
},
{
"title": "Card #2",
"description": "The description for card #2",
"suggestions": [
{
"reply": {
"text": "Card #2",
"postbackData": "card_2"
}
}
],
"media": {
"height": "MEDIUM",
"contentInfo": {
"fileUrl": "https://my.files/elephant.jpg",
"forceRefresh": false
}
}
}
]
}
}
}
ライブ対応のエージェントへのハンドオフ
{
"metadata": {}
}
FAQ bot
ビジネス メッセージ エージェントに対して Dialogflow ES の統合を有効にすると、次の処理が行われます。 FAQ bot を作成できます。質問と回答を Google Cloud の ビジネス メッセージと Dialogflow によって、 ユーザーの質問を理解して回答するための必要なインフラストラクチャを、 記述できます。
FAQ bot の動作を確認するには、ビジネス メッセージに関するよくある質問とチャットします bot です。
前提条件
FAQ bot を作成する前に、質問と回答を ナレッジ ドキュメント(最大 50 MB): 一般公開されている HTML ファイルまたは CSV ファイル。
一般的にナレッジドキュメントは
- リッチリザルトで指定されているように、回答に限定的なマークダウンを含めることができます。 text です。
- 最大サイズは 50 MB です。
- 質問と回答のペアは 2,000 個以内にしてください。
- 重複した質問で、回答が異なる質問はサポートしないでください。
HTML ファイルの場合、
- 公開 URL のファイルは、Google 検索インデクサによってクロールされている必要があります。 検索インデックスに存在するようにします。詳しくは、Google Search Console をご覧ください。 インデクサはコンテンツを最新の状態に維持しません。各 Pod の IP アドレスを ソース コンテンツが変更されたときにドキュメントを更新します。
- Dialogflow はレスポンスの作成時にコンテンツから HTML タグを削除します。なぜなら、 可能な限り HTML タグを避け、書式なしテキストを使用することをおすすめします。
- 質問と回答のペアが 1 つのファイルはサポートされていません。
CSV ファイルの場合
- ファイルの 1 列目に質問、2 列目に回答を含める必要があります。 ヘッダーなし。
- ファイルでは区切り文字としてカンマを使用する必要があります。
FAQ bot を作成する
- Business Communications デベロッパー コンソールで、 インテグレーション。
- [KB(FAQ)] で [Create KB(ナレッジベースを作成)] をクリックします。
- ナレッジベースの名前を入力し、[Next] をクリックします。
- [MIME タイプ] を選択します。
- ナレッジ ドキュメントを追加します。
- [Mime type] に [HTML] を選択した場合は、一般公開されている よくある質問の URL(URL)。
- [MIME タイプ] に [CSV] を選択した場合は、[アップロード] をクリックして 追加することもできます。
- [追加して終了] をクリックします。
FAQ bot にドキュメントを追加するには、[Add documentation] ボタンをクリックします。
この手順を完了すると、ビジネス メッセージに
dialogflowResponse
ユーザー メッセージに含めます。自動応答を有効にしている場合は、ビジネス メッセージがユーザーに返信します。
質問と回答のペアの matchConfidence
スコアが最も高い
ユーザーのメッセージと比較した結果です
自動返信
Dialogflow の統合中に自動応答を有効にすると、Business メッセージは Dialogflow を介してユーザーに自動的に応答します。あなたのビジネス メッセージ エージェントは、最も高い信頼度の一致で応答します。 Dialogflow ES との統合(よくある質問の回答と ビジネス メッセージは、一致率が最も高いインテントを できます。
ビジネス メッセージでは、すべての自動返信メッセージが BOT
から送信されたものとしてマークされます
エージェントが人間のエージェントをサポートしている場合は、
REPRESENTATIVE_JOINED
を過ぎるとビジネス メッセージの自動返信は停止されます
イベント
REPRESENTATIVE_LEFT
イベント後に自動応答を再開します。ハンドオフを参照
bot から人間のエージェントへ
よくある質問の回答で自動返信
Dialogflow ES との統合により、よくある質問の回答の信頼度が最も高い場合 ビジネス メッセージによって、その回答がテキスト メッセージにマッピングされます。もし 関連性があるが別の回答がある場合、メッセージには [別の回答を表示] と 応答」表示されます。含まれていない場合は、質問と提案がメッセージに メッセージがユーザーの要求を満たしているかどうかを尋ねる返信
インテント レスポンスによる自動応答
インテント レスポンスには、以下のレスポンスを 1 つ以上含めることができます。
- Dialogflow ES: テキスト、 カスタム ペイロード
- Dialogflow CX: テキスト、 カスタム ペイロード ライブ対応のエージェントへの引き継ぎ
インテント レスポンスの信頼度が最も高い場合、 適用されます。
- 返信に 1 つ以上のテキスト値が含まれている場合、ビジネス メッセージによってこの値がマッピングされます。 値をテキスト メッセージに変換します。
- レスポンスに、有効な Business API を含むカスタム ペイロードが 1 つ以上 Messages JSON オブジェクト構造です。ビジネス メッセージでは、 JSON オブジェクトを返すことができます
- 回答に Live Agent の引き継ぎの応答が 1 つ以上ある場合は、以下をご覧ください。 ライブ対応のエージェント リクエストに自動応答します。
Dialogflow では 1 つのインテント マッチに複数のレスポンスが含まれることがあるため、 ビジネス メッセージは、テキスト、カスタム ペイロード、またはライブ対応のエージェントへの引き継ぎをそれぞれ送信 個別のメッセージとして表示できますインテントに複数のメッセージがある場合 一部のメールアドレスの形式が正しくない場合、ビジネス メッセージは有効な 自動返信として送信されます。
ライブ対応のエージェント リクエストに自動応答
Dialogflow CX はライブ エージェントのハンドオフをサポート レスポンスが返されます。会話を人間に引き継ぐ必要があるというシグナル カスタム メタデータを渡してハンドオフできます。 示されます。インテント レスポンスの信頼度が最も高い一致があり、かつ 人間のエージェントへの引き継ぎを含む場合、ビジネス メッセージでは ライブ対応のエージェントからリクエストされたイベント Webhook に追加します。このイベントを処理する方法については、以下をご覧ください。 bot から人間のエージェントへの引き継ぎ
代替メッセージで自動応答
Dialogflow が信頼度の高い一致を得られなかった場合、ビジネス メッセージは フォールバック レスポンスを作成します。フォールバックの処理は Dialogflow ES では異なり、 Dialogflow CX
Dialogflow ES
FAQ bot の場合、一致する質問の回答がない場合、ビジネス メッセージから 回答が見つからなかったというフォールバック メッセージが表示されます。
構成済みのインテントで、一致するインテントのレスポンスがない場合、Business メッセージは、フォールバック インテント レスポンスを送信します。 Dialogflow が提供するフォールバック テキストを使用するか、 追加のテキストとカスタム ペイロードでフォールバックできます。
これは、Webhook によって返されるフォールバック インテント レスポンスの例です。 は以下を受信できます。
{
"intentResponses": [
{
"intentName": "projects/df-integration/agent/intents/12345",
"intentDisplayName": "Default Fallback Intent",
"intentDetectionConfidence": "1.0",
"fulfillmentMessages": [
{
"text": "One more time?"
}
]
}
]
}
Dialogflow によって intent_name
と intent_display_name
が事前入力されます。
Dialogflow CX
Dialogflow CX はフォールバック インテント レスポンスを次のように処理します。 組み込みのイベント。 一致するインテントの応答がない場合、ビジネス メッセージは Dialogflow の No-match デフォルト イベントからのフォールバック メッセージ。Google Chat では Dialogflow から提供されるフォールバック テキストを使用するか、フォールバックを構成します。 追加のテキスト、カスタム ペイロード、ライブ対応エージェントのハンドオフ オプションを利用できます。
この例は、バックエンド ユーザーの Webhook は以下を受信できます。
{
"intentResponses": [
{
"intentName": "sys.no-match-default",
"intentDisplayName": "Default Fallback Intent",
"intentDetectionConfidence": "0.3",
"fulfillmentMessages": [
{
"text": "I missed that, say that again?"
}
]
}
]
}
ビジネス メッセージで intent_name
と intent_display_name
をハードコードする。
Dialogflow 固有のフィールド
Dialogflow とのインテグレーションを有効にすると、ユーザーはエージェントにメッセージを送信します。
受信する
次を含める:
dialogflowResponse
渡されます。Webhook は、指定したユーザー メッセージとは関係なく、すべてのユーザー メッセージのペイロードを受信します。
メッセージにビジネス メッセージが自動的に返信したかどうかを
できます。自動応答があるかどうかを確認するには、
autoResponded
フィールドを確認し、ユーザーに返信する必要があるかどうかを判断します。
Dialogflow ES
... "dialogflowResponse": { "queryText": "TEXT", "intentResponse": { "intentName": "INTENT_ID", "intentDisplayName": "INTENT_NAME", "intentDetectionConfidence": "CONFIDENCE_NUMERIC", "fulfillmentMessages": [{ "text": "FULFILLMENT_TEXT", "jsonPayload": "JSON", "error": "ERROR_STATUS", }], "faqResponse": { "userQuestion": "USER_QUESTION", "answers": [{ "faqQuestion": "FAQ_QUESTION", "faqAnswer": "FAQ_ANSWER", "matchConfidenceLevel": "CONFIDENCE_LEVEL", "matchConfidence": "CONFIDENCE_NUMERIC", }], }, "autoResponded": "BOOLEAN", "autoRespondedMessages": [{ "message": "MESSAGE_JSON", "responseSource": "SOURCE", }], }, ...
フィールド | 説明 |
---|---|
queryText
|
元の会話型クエリテキスト。自動スペルの場合
Dialogflow モデル queryText で修正が有効になっています
修正されたユーザー入力が含まれています。 |
intentName |
一致したインテントの一意の識別子。 |
intentDisplayName |
一致したインテントの名前。 |
intentDetectionConfidence
|
一致における信頼度評価(数値)
queryText ~intentName 。 |
text |
テキスト レスポンス。 |
jsonPayload
|
カスタム ペイロード レスポンス。
この文字列はカスタム URL に一致する
ペイロードが使用されます。
ペイロードに有効なビジネス メッセージ JSON がない場合
オブジェクト構造。error は問題を表します。 |
error |
インテント フルフィルメント メッセージを含むエラーの説明。 |
userQuestion |
Dialogflow で解析された、ユーザーが尋ねた質問。 |
faqQuestion |
ユーザーの質問と対応した Dialogflow からの質問。 |
faqAnswer |
Dialogflow からの回答がユーザーの質問と一致しました。 |
matchConfidenceLevel
|
両方の単語との一致の信頼度
userQuestion と faqQuestion 。 |
matchConfidence
|
次の範囲の一致の信頼度評価を表す数値
userQuestion と faqQuestion 。 |
autoResponded
|
ビジネス メッセージに自動返信するかどうか Dialogflow から回答を返します。 |
message |
自動レスポンスのペイロード。 |
responseSource
|
自動応答のソース。詳しくは、
ResponseSource 。 |
Dialogflow CX
... "dialogflowResponse": { "queryText": "TEXT", "intentResponse": { "intentName": "INTENT_ID", "intentDisplayName": "INTENT_NAME", "intentDetectionConfidence": "CONFIDENCE_NUMERIC", "fulfillmentMessages": [{ "text": "FULFILLMENT_TEXT", "jsonPayload": "JSON", "error": "ERROR_STATUS", "liveAgentHandoff": { "metadata": {} } }], "autoResponded": "BOOLEAN", "autoRespondedMessages": [{ "message": "MESSAGE_JSON", "responseSource": "SOURCE", }], }, ...
フィールド | 説明 |
---|---|
queryText
|
元の会話型クエリテキスト。自動スペルの場合
Dialogflow モデル queryText で修正が有効になっています
修正されたユーザー入力が含まれています。 |
intentName |
一致したインテントの一意の識別子。 |
intentDisplayName |
一致したインテントの名前。 |
intentDetectionConfidence
|
一致における信頼度評価(数値)
queryText ~intentName 。 |
text |
テキスト レスポンス。 |
jsonPayload
|
カスタム ペイロード レスポンス。
この文字列はカスタム URL に一致する
ペイロードが使用されます。
ペイロードに有効なビジネス メッセージ JSON がない場合
オブジェクト構造。error は問題を表します。 |
error |
インテント フルフィルメント メッセージを含むエラーの説明。 |
liveAgentHandoff |
ライブ対応のエージェントのハンドオフ手順に関するカスタム メタデータ。 |
autoResponded
|
ビジネス メッセージに自動返信するかどうか Dialogflow から回答を返します。 |
message |
自動レスポンスのペイロード。 |
responseSource
|
自動応答のソース。詳しくは、
ResponseSource 。 |