(可选)您可以在 Dialogflow 虚拟客服与最终用户之间创建对话。虚拟客服会尝试先自行解析客户对话,然后再上报给人工客服。如果您在没有虚拟客服的情况下使用 Agent Assist,最终用户会直接发送给人工客服,而无需先与虚拟客服互动作为中间步骤。
准备工作
- 阅读 Dialogflow 基础知识。
- 执行设置步骤。
- 使用 Dialogflow ES 或 Dialogflow CX 创建代理。如果您打算使用 Agent Assist 模拟器测试虚拟客服,请注意虚拟客服必须是 Dialogflow ES 代理,并且还必须与您要用于 Agent Assist 控制台的 GCP 项目相关联。如果您不打算使用该模拟器测试虚拟客服,则虚拟客服可以是 ES 或 CX 代理,并且可以与任何 GCP 项目关联。
将示例文件导入代理
本指南中的步骤对您的代理进行了假设,因此您需要导入为本指南准备的代理。 导入时,这些步骤使用“恢复”(restore) 选项,该选项会覆盖所有代理设置、意图和实体。
如需导入文件,请按以下步骤操作:
-
下载
room-booking-agent.zip
文件。 - 转到 Dialogflow ES 控制台。
- 选择您的代理。
- 点击代理名称旁边的设置 settings 按钮。
- 选择导出和导入 (Export and Import) 标签页。
- 选择从 ZIP 文件恢复 (Restore from ZIP),然后按照说明恢复下载的 zip 文件。
配置 Dialogflow 代理
本部分介绍如何创建和配置对话配置文件。对话配置文件可配置一组参数,用于控制对话期间向客服人员提出的建议。
创建对话配置文件
您必须先创建对话配置文件,然后才能创建对话。对话配置文件用于为对话配置代理和关联的服务。以下步骤将使用 API 通过我们在上述步骤中创建的 Dialogflow 代理来创建对话配置文件。作为替代方案,您可以使用 Agent Assist 控制台创建对话配置文件。
REST 和命令行
如需创建对话配置文件,请对ConversationProfile
资源调用 create
方法。
在使用任何请求数据之前,请先进行以下替换:
- PROJECT_ID:您的 GCP 项目 ID
HTTP 方法和网址:
POST https://dialogflow.googleapis.com/v2/projects/PROJECT_ID/conversationProfiles
请求 JSON 正文:
{ "displayName": "My Contact Center Solution", "automatedAgentConfig": { "agent": "projects/PROJECT_ID/agent/environments/-" } }
如需发送您的请求,请展开以下选项之一:
您应该收到类似以下内容的 JSON 响应:
{ "name": "projects/PROJECT_ID/conversationProfiles/CONVERSATION_PROFILE_ID", "displayName": "My Contact Center Solution", "automatedAgentConfig": { "agent": "projects/PROJECT_ID/agent/environments/-" } }
conversationProfiles
后面的路径段包含新对话配置文件 ID。
在运行时处理对话
创建对话
当最终用户与人工或虚拟客服之间开始对话时,您需要创建对话。如需查看建议,您还必须创建最终用户参与者,并将其添加到对话中。以下部分将引导您完成此过程。
REST 和命令行
如需创建对话,请对conversations
资源调用 create
方法。
在使用任何请求数据之前,请先进行以下替换:
- 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。
创建参与者
现在,您需要向对话添加参与者。最终用户是您需要添加到对话中的唯一参与者。
REST 和命令行
如需创建参与者,请对participants
资源调用 create
方法。
在使用任何请求数据之前,请先进行以下替换:
- 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。
分析内容并获取自动响应
创建最终用户参与者后,您可以将该最终用户的输入发送到 API。API 将输入发送到检测意图请求并返回响应。
REST 和命令行
如需发送文本,请对participants
资源调用 analyzeContent
方法。
在使用任何请求数据之前,请先进行以下替换:
- 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 book a room", "languageCode": "en-US" } }
如需发送您的请求,请展开以下选项之一:
您应该收到类似以下内容的 JSON 响应:
{ "replyText": "I can help with that. Where would you like to reserve a room?", "automatedAgentReply": { "detectIntentResponse": { "responseId": "38e5d378-12e5-453b-9c37-ac6828b86673", "queryResult": { "queryText": "I want to book a room", "action": "room.reservation", "parameters": { "date": "", "duration": "", "guests": "", "location": "", "time": "" }, "fulfillmentText": "I can help with that. Where would you like to reserve a room?", "fulfillmentMessages": [ { "text": { "text": [ "I can help with that. Where would you like to reserve a room?" ] } } ], "intent": { "name": "projects/PROJECT_ID/agent/intents/e8f6a63e-73da-4a1a-8bfc-857183f71228", "displayName": "room.reservation" }, "intentDetectionConfidence": 0.8, "languageCode": "en-us" }, "webhookStatus": {} } } }
完成对话
对话完成后,请结束对话,确保它被标记为 done
。一段时间后,已完成的对话将被清理。
REST 和命令行
如需结束对话,请对conversations
资源调用 complete
方法。
在使用任何请求数据之前,请先进行以下替换:
- 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" }