智能回复会跟踪人工客服与最终用户之间的对话,并会将建议的回复呈现给人工客服。建议的回复数由使用您自己的对话转录数据训练的自定义模型计算得出。
本文档将引导您完成使用 API 实现智能回复并在运行时通过此功能获取建议的过程。您必须使用 Agent Assist 控制台上传数据、训练模型,并在设计过程中测试智能回复结果。要在运行时查看智能回复建议,您必须直接调用 API。如需详细了解如何使用 Agent Assist 控制台训练模型并测试其性能,请参阅智能回复教程。
准备工作
在开始本指南之前,请先完成以下操作:
处理 PII 和子级数据
在您向 API 发送数据时,API 会尝试隐去所有个人身份信息 (PII)。如果您需要保证模型不包含 PII,则应在向 API 发送数据之前先进行清理。
如果数据包含从子级收集的信息,则应在向 API 发送子级的数据之前先进行移除。
在运行时处理对话
当最终用户与人工客服之间开始对话时,您需要创建对话。如需查看建议,您还必须创建最终用户参与者和人工客服参与者,并将其添加到对话中。以下部分将引导您完成此过程。
创建对话
如需创建对话,请对 Conversation
资源调用 create
方法。
REST 和命令行
在使用任何请求数据之前,请先进行以下替换:
- PROJECT_ID:您的 GCP 项目 ID
- CONVERSATION_PROFILE_ID:您在创建对话配置文件时收到的 ID
HTTP 方法和网址:
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 方法和网址:
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 方法和网址:
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 方法和网址:
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 方法和网址:
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 方法和网址:
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 方法和网址:
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