8.2问答请求协议头
(注意:开头包含红*为必选字段)
名字 | 类型 | 描述 | 描述字段 |
*问答接口协议ID | int | 问答接口协议编号,必须为数字5 5代表业务问答协议 | protocolId |
*机器人 robotHashCode | String | 机器人识别码,该识别码唯一,代表每次问答的使用的是哪个机器人约束1到64个字节 | robotHashCode |
*用户问答机器人的渠道编号 platformConnType | String | 用户问答机器人的渠道编号,对于1个机器人可能会有好几个渠道的知识,该参数用来标识访问的机器人哪个渠道知识 约束1个字节,取值从0到255 | platformConnType |
*用户每次问答机器人的用户唯一标识userId | String | 用户每次问答机器人的唯一标识 字段取值描述: 访问用户唯一标识,建议为随机产生的不重复字符串(数字和字母组成) 长度范围在1到40 | userId |
*外部开发平台的自身编号talkerId | String | 固定为外部开发平台的自身编号 约束1个字到40个字节 字段取值描述: 该字段由数字和字母组成,长度范围为1到40 | talkerId |
* 固定为本接口的版本号 receiverId | String | 固定为本接口的版本号 字段取值描述:”3.3.0” | receiverId |
*appKey | String | 应用Id,该字段由平台来做访问授权控制,每一个应用都会对应一个appKey 约束1到64个字节 | appKey |
*用户问答问题的提问时间sendTime | long | 用户问答问题的提问时间。该时间的格式为从1970年1月1日零点到当前时间的毫秒数 字段取值描述: 从1970年1月1日零点到当前时间的毫秒数 | sendTime |
*用户问答问题内容的类型type | String | 用户问答问题内容的类型 字段取值描述: 取值范围为如下两个字段 text:文字输入 voice:语音转文字输入 voice_app:http接口语音输入 | type |
多轮对话中,本次问答是否要使用上次问答的结果来问答引擎 isNeedClearHistory | Int | 当isNeedClearHistory为0时, 不保留,为1时保留 字段取值描述: 只能取0和1两个值,默认为0 | isNeedClearHistory |
*用户问答机器人的问题内容query | String | 用户问答机器人的问题内容 字段取值描述: 该字段的长度取值范围为1到200 | query |
用户问答的问题内容是否通过问题ID来提问 isQuestionQuery | int | 用户的问答的问题query,可以使用文本也可以使用后台系统中每个问题id来提问问题 字段取值描述: 只能取0和1 ,0代表使用问题文本提问,1代表使用问题id来提问问题,此时query字段应该传后台系统中问题的数据库id 默认值为0 | isQuestionQuery |
请求示例
{ "protocolId": 5, "robotHashCode": "jinrong", "platformConnType": 1, "userId": "100031", "talkerId": "10021", "receiverId": "20021", "query": "你好", "appKey": "abcc", "sendTime": 56000, "type": "text", "isNeedClearHistory": 0, "msgId": "asdasd", "isQuestionQuery": 0 }
返回协议公用头
名字 | 类型 | 描述 | 描述字段 |
问答接口返回协议ID | int | 问答接口返回协议ID,该值一定为6 字段取值描述: 一定为6 | protocolId |
返回结果 | int | 返回结果约束1个字节的整形,0到255 字段取值描述: 0 成功 1 失败 | result |
协议发送时间sendTime | long | 用户问答机器人的具体时间。该时间的格式为从1970年1月1日零点到当前时间的毫秒数 字段取值描述: 从1970年1月1日零点到当前时间的毫秒数 | sendTime |
回答类型 | int | 机器人对用户问题的回答结果分类 一共有11类,如下 1 系统错误 2 有敏感词 3 无法回答 4 需要补问 5 答案多选 6 能够回答 7 没有答案 8 模式匹配 10 访问攻击 11 聊天过频 12 导航知识/模式 | answerTypeId |
单一回答节点 | SingleNode类型 | 当机器人回答问题的 answerTypeId为4需要补问或者6能够回答或者8模式匹配时,会返回单一答案节点,为json格式,详细说明参照后文单一回答节点数据格式;情况为1系统错误、2有敏感词、3无法回答时可直接取SingleNode中的answerMsg提示语 | singleNode |
多选回答节点 | VagueNode类型 | 当机器人回答问题的 answerTypeId 5答案多选、11导航知识/模式时,有可能会返回多选答案节点,为json格式,详细说明参照多选答案节点数据格式 结果为10聊天过频时,如果VagueNode节点中有内容则取VagueNode中的内容,如果没有则取SingleNode中的answerMsg提示语 | vagueNode |
单一回答节点数据格式
名字 | 类型 | 描述 | 描述字段 |
标准问题ID | long | 标准问题ID | standardQue stionId |
是否图文 | int | 0标准问答,1图文2单图片 | isRichText |
答案指令 | String | 后台添加每一条知识都对应一个cmd指令 | cmd |
标准问答问题回复 | String | 机器人回答问题的answerTypeId如果为4需要补问或者6能够回答或者8模式匹配时,该值会有唯一的答案 图文回复内容,为xml格式,详细参照NewsNode数据格式 | answerMsg |
得分 | double | 引擎得分 | score |
NewsNode数据格式
名字 | 类型 | 描述 | 描述字段 |
根节点 | String | 根节点 | root |
创建时间 | long | 创建时间 | CreateTime |
图文个数 | int | 图文个数 | ArticleCount |
标题 | String | 图文标题 | Title |
描述 | String | 图文描述 | Description |
图片url | String | 图文图片链接 | PicUrl |
链接 | String | 图文链接 | Url |
多选答案节点数据格式
名字 | 类型 | 描述 | 描述字段 |
问题列表 | List | 推荐问题问题列表(建议不用这个) | vagueList |
问题列表详细 | List | 机器人回答问题的answerTypeId如果为5答案多选时,会可能有推荐问题,推荐问题问题列表详细(建议用这个)为jsonArray格式,详细参照ItemMsg数据格式 | itemList |
前置提示语 | String | 答案的前置提示语,例如:抱歉我无法理解,但给您推荐XXX, 红色部分代表回答的前置语 | promptVagueMsg |
后置提示语 | String | 答案的后置提示语,例如: XXX,不知道我的回答您是否满意 红色部分代表回答的后置语 | endVagueMsg |
ItemMsg数据格式
名字 | 类型 | 描述 | 描述字段 |
标准问题 | String | 机器人推荐出的问题名称 | question |
分值 | double | 推荐的问题的分值 | score |
序号 | int | 问题的序号 参数说明 1,2,3… 递增序列号 | num |
标准问题id | long | 标准问题id 参数说明 对应的标准问在后台系统数据库的问题id | id |
类别 | int | 机器人回答问题的形式 参数说明 0是模式,1是知识 知识代表后台系统知识管理中的标准知识 模式代表系统标准的模式(正则表达式) | type |