智能交互驱动WebSocket接口
前提条件
需要申请开通智能交互权限后,才可集成智能交互SDK,并使用Websocket接口驱动数字人。
终端节点获取方式
终端接入地址需要每次启动数字人智能交互任务时动态获取,不允许输入固定域名,并使用固定地址访问。
智能交互驱动WebSocket接口终端节点的获取方式,如表1所示。
| 场景 | 获取方式 |
|---|---|
| 未通过WEB SDK调用场景 | 终端节点地址从接口启动数字人智能交互任务的响应参数chat_access_address中获取。 |
| 通过WEB SDK调用场景 | 终端节点地址从智能交互SDK的通知jobInfoChange的参数websocketAddr中获取。 |
URI
/v1/{project_id}/digital-human-chat/chat-command/{job_id}
| 参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
| project_id | 是 | String | 项目ID,获取方法请参考获取项目ID。 |
| job_id | 是 | String | 任务ID。在Web SDK的create接口入参eventListeners中,监听jobInfoChange事件通知,用于获取任务ID。 |
| 参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
| token | 否 | String | 一次性token,获取方法请参考创建一次性鉴权码。 如果使用JavaScript开发时,请使用一次性鉴权码认证方式。 |
请求参数
表5、表6和表7中的请求参数为WebSocket建连成功后,用户与数字人对话的请求参数。
| 参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
| request_id | 否 | String | 请求ID。 |
| payload | 是 | RequestPayloadInfo object | 请求负载信息。 |
| 参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
| job_id | 是 | String | 任务ID。获取方法请参考获取任务ID。 |
| robot_id | 否 | String | 应用ID。从数字人互动页面URL中获取,URL的获取方式,请参见《用户指南》的“创建智能交互数字人”章节。 |
| chat_id | 是 | String | 对话ID。 |
| command | 是 | String | 操作命令。 包含如下命令:
|
| data | 是 | ChatReqDataInfo object | 对话请求数据信息。 |
| 参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
| text | 否 | String | 文本信息,command为TEXT_DRIVE时必选。 |
| audio | 否 | String | 音频数据的byte数组,经Base64编码后的字符串,command为AUDIO_DRIVE时必选。
|
| sample_rate | 否 | Integer | 音频采样率,支持以下采样率:8000、12000、16000、24000、48000,默认16000HZ |
| seq | 否 | Integer | 数据包序号。 |
| is_last | 否 | Boolean | 判断是否为最后一个文本。 |
响应参数
状态码: 101
| 参数 | 参数类型 | 描述 |
|---|---|---|
| X-Request-Id | String | 请求ID。 |
| 参数 | 参数类型 | 描述 |
|---|---|---|
| error_code | String | 错误码。 |
| error_msg | String | 错误描述。 |
| request_id | String | 请求ID。 |
| payload | ResponsePayloadInfo object | 响应负载信息。 |
请求示例
- 用户请求建立与数字人对话的WebSocket连接。
代码示例如下所示,其中,{终端接入地址}请参考终端节点获取方式获取。
wss://{终端接入地址}/v1/70b76xxxxxx34253880af501cdxxxxxx/digital-human-chat/chat-command/e37a28485f684769aa537466e719629d - 等MetaStudio返回可以发送启动对话的消息时,如2所示。用户发送文本驱动消息。 代码示例如下所示:
{ "request_id": "d7aa08da33dd4a662ad5be508c5b77cf", "payload": { "job_id": "e37a28485f684769aa537466e719629d", "robot_id": "2c9d60818b365847018b365f40320000", "chat_id": "ac71c539395b4446865074589ffa2c6c", "command": "TEXT_DRIVE", "data": { "text": "您好,我是您的分身数字人", "seq": 1, "is_last": true } } }
响应示例
状态码:101
- MetaStudio接收WebSocket建立连接的请求后,如1所示,返回响应消息。 代码示例如下所示:
{ "error_code": "MSS.00000000", "error_msg": "success", "request_id": "d7aa08da33dd4a662ad5be508c5b77cf" } - MetaStudio发送启动对话的消息。
- MetaStudio收到用户发送的文本驱动消息时,如请求示例-2所示。MetaStudio返回文本驱动的响应消息。 代码示例如下所示:
{ "error_code": "MSS.00000000", "error_msg": "success", "request_id": "d7aa08da33dd4a662ad5be508c5b77cf", "payload": { "command": "TEXT_DRIVE_RSP", "job_id": "e37a28485f684769aa537466e719629d", "chat_id": "ac71c539395b4446865074589ffa2c6c", } }
状态码
| 状态码 | 描述 |
|---|---|
| 101 | 连接成功。 |
错误码
请参见错误码。