智能交互驱动流程
流程图示例
用户与数字人进行智能交互的流程图示例,如下所示,对应流程的详细说明,如流程图总体说明所示。
- 智能交互非流式驱动流程图,如图1所示。
- 智能交互流式驱动流程图,如图2所示。
- 智能交互驱动打断对话流程图,如图3所示。
- 智能交互驱动停止对话流程图,如图4所示。
- 智能交互驱动心跳保活流程图,如图 智能交互驱动心跳保活流程图所示。
- 智能交互驱动超时流程图,如图6所示。
- 智能交互驱动任务结束流程图,如图7所示。
智能交互驱动WebSocket接口说明,如智能交互驱动WebSocket接口所示。
用户请求建立WebSocket连接
用户请求建立WebSocket连接时,会调用接口智能交互驱动WebSocket接口创建与MetaStudio智能交互服务之间的Websocket连接。
连接建立成功后,MetaStudio智能交互服务已准备就绪,会发送START_CHAT命令给第三方应用。第三方应用接收到START_CHAT命令后,用户开始发送文本驱动命令。
详细交互流程如下所示:
- 用户请求建立与数字人对话的WebSocket连接。
wss://metastudio-api.cn-north-4.myhuaweicloud.com/v1/70b76xxxxxx34253880af501cdxxxxxx/digital-human-chat/chat-command/e37a28485f684769aa537466e719629d
- MetaStudio接收WebSocket建立连接的请求后,返回响应消息。
- MetaStudio发送启动对话的消息。
{ "request_id": "d7aa08da33dd4a662ad5be508c5b77cf", "payload": { "command": "START_CHAT", "job_id": "e37a28485f684769aa537466e719629d", "chat_id": "ac71c539395b4446865074589ffa2c6c", } }
详细交互流程如下所示:
- 用户发送文本驱动消息。
{ "request_id": "d7aa08da33dd4a662ad5be508c5b77cf", "payload": { "job_id": "e37a28485f684769aa537466e719629d", "robot_id": "2c9d60818b365847018b365f40320000", "chat_id": "ac71c539395b4446865074589ffa2c6c", "command": "TEXT_DRIVE", "data": { "text": "您好,我是您的数字人", "seq": 1, "is_last": true } } }
- MetaStudio收到用户发送的文本驱动消息后,返回响应消息。
- MetaStudio响应成功后,数字人开始讲话。MetaStudio对应发送开始讲话的消息。
- 数字人讲话完成后,MetaStudio对应发送结束讲话的消息。
用户发送中断对话的消息
文本驱动数字人讲话过程中,支持使用INTERRUPT_CHAT命令,中断数字人与用户的对话。对话被打断后,数字人将停止说话,并发送下一次对话的START_CHAT消息给用户。
详细交互流程如下所示:
- 用户发送中断对话的消息。
- MetaStudio接收到用户发送的中断对话消息后,返回响应消息。
- MetaStudio返回结束对话的消息给用户。
- MetaStudio发送接收下一次开始对话的消息。
- 用户发送停止对话消息。
{ "request_id": "d7aa08da33dd4a662ad5be508c5b77cf", "payload": { "job_id": "e37a28485f684769aa537466e719629d", "chat_id": "ac71c539395b4446865074589ffa2c6c", "command": "STOP_CHAT" } }
- MetaStudio接收用户发送的停止对话消息后,返回响应消息。
{ "request_id": "d7aa08da33dd4a662ad5be508c5b77cf", "payload": { "command": "STOP_CHAT_RSP", "job_id": "e37a28485f684769aa537466e719629d, "chat_id": "ac71c539395b4446865074589ffa2c6c" } }
- MetaStudio返回结束讲话的消息给用户。
- 用户发送心跳请求消息。
{ "request_id": "d7aa08da33dd4a662ad5be508c5b77cf", "payload": { "job_id": "e37a28485f684769aa537466e719629d", "command": "PING" } }
- MetaStudio接收用户发送的心跳请求消息后,返回心跳响应消息。
{ "request_id": "d7aa08da33dd4a662ad5be508c5b77cf", "payload": { "command": "PONG", "job_id": "e37a28485f684769aa537466e719629d } }
用户与数字人对话超时断连
用户与MetaStudio服务建立WebSocket连接后, 如果用户超过30秒未发送对话消息或心跳请求消息,即MetaStudio超过30秒未收到第三方应用的TEXT_DRIVE命令或PING命令,MetaStudio将主动关闭WebSocket连接。
MetaStudio发送结束任务的消息。
代码示例如下所示:
{ "request_id": "d7aa08da33dd4a662ad5be508c5b77cf", "payload": { "command": "JOB_FINISHED", "job_id": "e37a28485f684769aa537466e719629d } }