小多机器人API
接入小多机器人API,第三方需要按步骤获取基本信息:
- 注册账号
- 登录系统,设置机器人渠道 (登录系统-->设置-->渠道设置-->创建机器人API渠道)
- 获取创建的渠道信息。企业ID、渠道ID、APPSecret、API地址
开始接入
请求地址:
https://cvd.xiaoduoai.com/v1/api/match_question
请求方式:
postform
请求参数:
参数 | 类型 | 默认值 | 描述 |
---|---|---|---|
unit_id | int | 无 | 企业ID |
channel_id | int | 无 | 渠道ID |
salt | string | "" | 签名加盐,生成方式如下 |
sign | string | "" | 签名,生成方式如下 |
user_id | string | "" | 用户ID,要求全局唯一 |
nick | string | "" | 用户昵称 |
question | string | 无 | 用户提问 |
salt生成:
随机生成salt字符串(长度为8,由A-Z,a-z,0-9组成)
sign生成:
1)将user_id、question、nick三个参数进行字典序排序
2)将三个参数字符串以&拼接成一个字符串
3)将第2步得到的字符串依次拼接APPSecret和salt得到的字符串进行MD5签名,得到一个16进制小写表示的字符串。
请求参数举例:
注册账号,获取到企业ID:5,渠道ID:157,APPSecret:"98f756ac5f938904fed5b6543f1af9b6"
参数如下:
unit_id=5&channel_id=157&user_id=XIAODUO&nick=lisi&question=你好
随机生成salt="RRONkNKn"
sign计算过程:
1)将user_id、question、nick三个参数进行字典序排序,以&拼接得到"nick=lisi&question=你好&user_id=XIAODUO"
2)再依次拼接APPSecret和salt得到"nick=lisi&question=你好&user_id=XIAODUO98f756ac5f938904fed5b6543f1af9b6RRONkNKn"
3) 再计算MD5,hex(MD5("nick=lisi&question=你好&user_id=XIAODUO98f756ac5f938904fed5b6543f1af9b6RRONkNKn"))="8de9493948aa8ef461b37266c3b27b44"
4)得到sign="8de9493948aa8ef461b37266c3b27b44"
请求参数如下:
unit_id=5&channel_id=157&user_id=XIAODUO&nick=lisi&question=你好&salt=RRONkNKn&sign=8de9493948aa8ef461b37266c3b27b44
返回值json:
{
"error_code":0,
"info":"",
"data":{
"msg_id":1504526690,
"user_id":"xiaoduo",
"question":"在吗?",
"answers":["在的,亲","嗯,在的"],
"options" :[],
"recommend":[],
"related_questions":[],
"hot_questions":[],
"inspects":[
{
"id":"59eda7daa005010001ac9874",
"question":"在的,亲",
"confidence":0.8,
"accept":true
},
......
]
"state": 1
}
}
返回值说明:
参数 | 类型 | 描述 |
---|---|---|
error_code | int | 错误码 |
info | string | 描述 |
msg_id | int | 消息ID |
user_id | string | 第三方用户ID |
question | string | 用户提问 |
answers | 字符串数组 | 答案,说明如下 |
options | 字符串数组 | 动态问答的反问可取值,说明如下 |
recommend | 字符串数组 | 推荐问题,说明如下 |
related_questions | 字符串数组 | 关联问题,说明如下 |
hot_questions | 字符串数组 | 常见问题,说明如下 |
inspects | 对象数组 | 置信度,说明如下 |
state | int | 状态,说明如下 |
answers字段说明:
针对用户的提问识别到的语义的答案
options 字段说明:
若识别的问题为动态问答,该问题在后台配置了“反问时显示可取值”时,options 会返所设置的可取值。非动态问答options为空
recommend字段说明:
针对用户的提问识别到的相识问题
related_questions字段说明:
针对用户的提问识别到的语义所配置的关联问题
hot_questions字段说明:
渠道设置的固定话术
inspects 字段说明:
| 参数 | 类型 | 描述 |
|-----------|---------|---------|
| id | string |问题ID |
| question | string |问题 |
| confidence| float64 |置信度 |
| accept | bool | |
inspects 表示用户提问机器人识别到的问题,每个问题识别的置信度用confidence和accept衡量,当accept=true时表示完全识别用户提问,confidence值越高置信度越高
state字段说明:
state=1时表示问题成功识别。answers中为所识别问题的答案列表,recommend为空,hot_questions为空,related_questions可能非空(若改问题配置了关联问题)
state=2时表示问题无法进准识别。可推荐相识问题。answers为空,hot_questions为空,recommend可能非空
state=3时表示问题无法识别。answers为空,recommend可能非空,hot_questions可能非空(如果配置了渠道热门问题则非空)
错误码:
错误码 | 描述 |
---|---|
0 | 成功 |
100025 | 系统繁忙 |
100026 | salt不合法 |
100027 | 签名错误 |
100028 | 参数错误 |
100029 | channel_id或者unit_id错误 |
100030 | question长度不能超过1000个字符 |