スマート リプライは、人間のエージェントとエンドユーザー間の会話を追跡し、人間のエージェントに対して推奨されるレスポンスを表示します。候補のレスポンスは、独自の会話音声文字変換データを使用してトレーニングされたカスタムモデルによって計算されます。
このドキュメントでは、API を使用してスマート リプライのアシストを実装し、実行時にこの機能から候補を取得するプロセスについて説明します。 データのアップロード、モデルのトレーニング、設計時のスマート リプライの結果のテストには、Agent Assist コンソールを使用する必要があります。実行時にスマート リプライ候補を表示するには、API を直接呼び出す必要があります。モデルをトレーニングし、Agent Assist コンソールを使用してモデルのパフォーマンスをテストする方法については、スマート リプライのチュートリアルをご覧ください。
始める前に
このガイドを開始する前に、以下を完了してください。
- 独自の音声文字変換データを使用して、会話データセットを作成します。
- 会話データセットを使用してスマート リプライ モデルをトレーニングします。
- 会話のプロファイルを作成します。
- Agent Assist シミュレータを使用して、スマート リプライの結果をテストします。
個人情報と子供のデータの取り扱い
この API にデータを送信すると、API はすべての個人情報(PII)を削除しようとします。モデルに個人情報が含まれていないことを保証する必要がある場合は、API に送信する前にデータをサニタイズする必要があります。
データに子から収集した情報が含まれている場合は、API に送信する前に子のデータを削除する必要があります。
ランタイムに会話を処理する
エンドユーザーと人間のエージェントとの会話が開始されると、会話が作成されます。候補を表示するには、エンドユーザーの参加者と人間のエージェントの参加者を両方とも作成して、会話に加える必要があります。以下のセクションでは、このプロセスについて詳しく説明します。
会話を作成する
会話を作成するには、Conversation
リソースの create
メソッドを呼び出します。
REST とコマンドライン
リクエストのデータを使用する前に、次のように置き換えます。
- PROJECT_ID: GCP プロジェクト ID
- CONVERSATION_PROFILE_ID: 会話プロファイルの作成時に受け取った ID
HTTP メソッドと URL:
POST https://dialogflow.googleapis.com/v2/projects/PROJECT_ID/conversations
JSON 本文のリクエスト:
{ "conversationProfile": "projects/PROJECT_ID/conversationProfiles/CONVERSATION_PROFILE_ID", }
リクエストを送信するには、次のいずれかのオプションを展開します。
次のような JSON レスポンスが返されます。
{ "name": "projects/PROJECT_ID/conversations/CONVERSATION_ID", "lifecycleState": "IN_PROGRESS", "conversationProfile": "projects/PROJECT_ID/conversationProfiles/CONVERSATION_PROFILE_ID", "startTime": "2018-11-05T21:05:45.622Z" }
conversations
の後のパスセグメントには、新しい会話 ID が含まれます。
Python
エンドユーザーの参加者を作成する
候補を表示するには、エンドユーザーと人間のエージェントの両方の参加者を会話に追加する必要があります。エンドユーザーの参加者を作成するには、Participant
リソースの create
メソッドを呼び出します。role
フィールドに会話 ID と END_USER
を指定します。
REST とコマンドライン
リクエストのデータを使用する前に、次のように置き換えます。
- PROJECT_ID: GCP プロジェクト ID
- CONVERSATION_ID: 会話 ID
HTTP メソッドと URL:
POST https://dialogflow.googleapis.com/v2/projects/PROJECT_ID/conversations/CONVERSATION_ID/participants
JSON 本文のリクエスト:
{ "role": "END_USER", }
リクエストを送信するには、次のいずれかのオプションを展開します。
次のような JSON レスポンスが返されます。
{ "name": "projects/PROJECT_ID/conversations/CONVERSATION_ID/participants/PARTICIPANT_ID", "role": "END_USER" }
participants
の後のパスセグメントには、新しいエンドユーザー参加者 ID が含まれます。
Python
人間のエージェントの参加者を作成する
人間のエージェントの参加者を作成するには、Participant
リソースの create
メソッドを呼び出します。role
フィールドに会話 ID と HUMAN_AGENT
を指定します。
REST とコマンドライン
リクエストのデータを使用する前に、次のように置き換えます。
- PROJECT_ID: GCP プロジェクト ID
- CONVERSATION_ID: 会話 ID
HTTP メソッドと URL:
POST https://dialogflow.googleapis.com/v2/projects/PROJECT_ID/conversations/CONVERSATION_ID/participants
JSON 本文のリクエスト:
{ "role": "HUMAN_AGENT", }
リクエストを送信するには、次のいずれかのオプションを展開します。
次のような JSON レスポンスが返されます。
{ "name": "projects/PROJECT_ID/conversations/CONVERSATION_ID/participants/PARTICIPANT_ID", "role": "HUMAN_AGENT" }
participants
の後のパスセグメントには、新しい人間のエージェントの参加者 ID が含まれます。
Python
人間のエージェントからのメッセージを追加して分析する
いずれかの参加者が会話でメッセージを入力するたびに、API にメッセージを送信して処理する必要があります。Agent Assist は、人間のエージェントとエンドユーザー メッセージの分析に基づいて提案を行います。会話の人間のエージェント メッセージを追加して分析するには、Participant
リソースの analyzeContent
メソッドを呼び出します。会話 ID と人間のエージェントの参加者 ID を指定します。
REST とコマンドライン
リクエストのデータを使用する前に、次のように置き換えます。
- PROJECT_ID: GCP プロジェクト ID
- CONVERSATION_ID: 会話 ID
- PARTICIPANT_ID: 人間のエージェントの参加者 ID
HTTP メソッドと URL:
POST https://dialogflow.googleapis.com/v2/projects/PROJECT_ID/conversations/CONVERSATION_ID/participants/PARTICIPANT_ID:analyzeContent
JSON 本文のリクエスト:
{ "textInput": { "text": "How may I help you?", "languageCode": "en-US" } }
リクエストを送信するには、次のいずれかのオプションを展開します。
次のような JSON レスポンスが返されます。
{ "message": { "name": "projects/PROJECT_ID/conversations/CONVERSATION_ID/messages/MESSAGE_ID", "content": "How may I help you?", "languageCode": "en-US", "participant": "PARTICIPANT_ID", "participantRole": "HUMAN_AGENT", "createTime": "2020-02-13T00:01:30.683Z" }, "humanAgentSuggestionResults": [ { "suggestSmartRepliesResponse": { "smartReplyAnswers": [ { "reply": "I am here to help you.", "confidence": 0.5, "answerRecord": "projects/PROJECT_ID/answerRecords/ANSWER_RECORD_ID_1" }, { "reply": "Sorry for the wait, we have a high volume of chats right now.", "confidence": 0.3, "answerRecord": "projects/PROJECT_ID/answerRecords/ANSWER_RECORD_ID_2" }, { "reply": "Thank you for contacting us!", "confidence": 0.1, "answerRecord": "projects/PROJECT_ID/answerRecords/ANSWER_RECORD_ID_3" } ] } } ] }
Python
エンドユーザーからのメッセージの追加と分析
エンドユーザー メッセージを会話に追加して分析するには、Participant
リソースの analyzeContent
メソッドを呼び出します。会話 ID とエンドユーザー参加者 ID を指定します。
SuggestionFeatureConfig.enable_inline_suggestion
を true に設定した場合、レスポンスにはスマート リプライの候補のリストが含まれます。
REST とコマンドライン
リクエストのデータを使用する前に、次のように置き換えます。
- PROJECT_ID: GCP プロジェクト ID
- CONVERSATION_ID: 会話 ID
- PARTICIPANT_ID: エンドユーザーの参加者 ID
HTTP メソッドと URL:
POST https://dialogflow.googleapis.com/v2/projects/PROJECT_ID/conversations/CONVERSATION_ID/participants/PARTICIPANT_ID:analyzeContent
JSON 本文のリクエスト:
{ "textInput": { "text": "I want to reserve a room.", "languageCode": "en-US" } }
リクエストを送信するには、次のいずれかのオプションを展開します。
次のような JSON レスポンスが返されます。
{ "message": { "name": "projects/PROJECT_ID/conversations/CONVERSATION_ID/messages/MESSAGE_ID", "content": "I want to reserve a room.", "languageCode": "en-US", "participant": "PARTICIPANT_ID", "participantRole": "END_USER", "createTime": "2020-02-13T00:07:35.925Z" }, "humanAgentSuggestionResults": [ { "suggestSmartRepliesResponse": { "smartReplyAnswers": [ { "reply": "Where would you like to reserve a room?", "confidence": 0.5, "answerRecord": "projects/PROJECT_ID/answerRecords/ANSWER_RECORD_ID_1" }, { "reply": "What type of rooms would you like to reserve?", "confidence": 0.3, "answerRecord": "projects/PROJECT_ID/answerRecords/ANSWER_RECORD_ID_2" }, { "reply": "How long do you want to stay?", "confidence": 0.1, "answerRecord": "projects/PROJECT_ID/answerRecords/ANSWER_RECORD_ID_3" } ] } } ] }
Python
候補を取得する(省略可)
候補はいつでも取得できます。必要に応じて、メッセージに基づいてメッセージを受け取る候補のメッセージ ID を指定できます。このフィールドが設定されていない場合、候補はデフォルトではいずれかの参加者からの最新のメッセージに基づきます。
候補を取得するには、Suggestion
リソースの suggestSmartReplies
メソッドを呼び出します。会話 ID、人間のエージェントの参加者 ID、参加者のメッセージ ID(省略可)を指定します。
レスポンスには、スマート リプライの返信文の候補が表示されます。
REST とコマンドライン
リクエストのデータを使用する前に、次のように置き換えます。
- PROJECT_ID: GCP プロジェクト ID
- CONVERSATION_ID: 会話 ID
- PARTICIPANT_ID: エンドユーザーの参加者 ID
HTTP メソッドと URL:
POST https://dialogflow.googleapis.com/v2/projects/PROJECT_ID/conversations/CONVERSATION_ID/participants/PARTICIPANT_ID:analyzeContent
JSON 本文のリクエスト:
{ "textInput": { "text": "I want to reserve a room.", "languageCode": "en-US" } }
リクエストを送信するには、次のいずれかのオプションを展開します。
次のような JSON レスポンスが返されます。
{ "message": { "name": "projects/PROJECT_ID/conversations/CONVERSATION_ID/messages/MESSAGE_ID", "content": "I want to reserve a room.", "languageCode": "en-US", "participant": "PARTICIPANT_ID", "participantRole": "END_USER", "createTime": "2020-02-13T00:07:35.925Z" }, "humanAgentSuggestionResults": [ { "suggestSmartRepliesResponse": { "smartReplyAnswers": [ { "reply": "Where would you like to reserve a room?", "confidence": 0.5, "answerRecord": "projects/PROJECT_ID/answerRecords/ANSWER_RECORD_ID_1" }, { "reply": "What type of rooms would you like to reserve?", "confidence": 0.3, "answerRecord": "projects/PROJECT_ID/answerRecords/ANSWER_RECORD_ID_2" }, { "reply": "How long do you want to stay?", "confidence": 0.1, "answerRecord": "projects/PROJECT_ID/answerRecords/ANSWER_RECORD_ID_3" } ] } } ] }
Python
会話を完了する
会話を完了するには、conversations
リソースの complete
メソッドを呼び出します。会話 ID を指定します。
REST とコマンドライン
リクエストのデータを使用する前に、次のように置き換えます。
- PROJECT_ID: GCP プロジェクト ID
- CONVERSATION_ID: 会話の作成時に受け取った ID
HTTP メソッドと URL:
POST https://dialogflow.googleapis.com/v2/projects/PROJECT_ID/conversations/CONVERSATION_ID:complete
リクエストを送信するには、次のいずれかのオプションを展開します。
次のような JSON レスポンスが返されます。
{ "name": "projects/PROJECT_ID/conversations/CONVERSATION_ID", "lifecycleState": "COMPLETED", "conversationProfile": "projects/PROJECT_ID/conversationProfiles/CONVERSATION_PROFILE_ID", "startTime": "2018-11-05T21:05:45.622Z", "endTime": "2018-11-06T03:50:26.930Z" }
Python