智能对话应用接口
会话接口
描述
- 会话接口
URI
POST /qa/bot/sdk/talk
请求参数
名称 | 是否必须 | 位置 | 类型 | 描述 |
---|---|---|---|---|
appkey | 是 | body | String | 应用的用户密钥 |
token | 是 | body | String | 签名信息 |
question | 是 | token | String | 用户询问的问题 |
format | 是 | token | String | 输出结果格式化用以指定结果格式类型,可选值包括xml(XML格式),json(JSON格式),txt(text文本格式) format=== “xml”; format===”json”; format===“text”(现在默认返回json |
lang | 是 | token | String | 语言代码包括:zh(中文)和en(英文),默认lang=zh |
app_id | 是 | token | String | 创建应用的ID,如果不存在创建应用ID则此字段为空 |
sessionid | 是 | token | String | 会话信息,会话信息标识,如果sessionid为空,则系统将产生sessionid,并返回。如果sessionid不为空,则进行会话 |
返回参数
名称 | 是否必须 | 位置 | 类型 | 描述 |
---|---|---|---|---|
question | 是 | body | String | 用户询问的问题,以UTF-8格式编码 |
topic | 是 | body | String | 标题,主题 |
format | 是 | body | String | 输出结果格式化,用以指定结果格式类型,可选值包括xml(XML格式),json(JSON格式),txt(text文本格式) format=== “xml”; format===”json”; format===”text”(现在默认返回json) |
lang | 是 | body | String | 语言代码,包括:zh(中文)和en(英文),默认lang=zh |
app_id | 是 | body | String | 创建应用的ID,如果不存在创建应用ID则此字段为空 |
sessionid | 是 | body | String | 会话信息,会话信息标识 |
status | 是 | body | String | 返回状态 |
reminder | 是 | body | String | 提示信息 |
answers | 是 | body | List | 存放答案的列表 |
segment | 是 | body | List | 分词结果,对当前问题的分词结果 |
textMenu | 是 | body | jsonObject | 文字菜单内容,如果结果为文字菜单内容,则显示文字菜单结果 |
mediaType | 是 | body | String | 媒体类型,返回媒体的类型 |
ansType | 是 | body | String | 回答问题类型,返回答案的类型 |
intentParam | 是 | body | String | 意图结果的json结构转化为String,意图的参数结构 |
endStatement | 是 | textMenu | String | 文字菜单的结束语 |
beginStatement | 是 | textMenu | String | 文字菜单的开始语 |
menuAns | 是 | textMenu | String | 文字菜单的结果 |
menuId | 是 | textMenu | String | 文字菜单的Id |
menuType | 是 | textMenu | String | 菜单类型 |
ansId | 是 | textMenu | String | 答案的id |
listTextMenu | 是 | textMenu | List | 文字菜单选项列表 |
intent | 是 | intentParam | String | 意图名称 |
confidence | 是 | intentParam | String | 意图得分 |
info | 是 | intentParam | String | 意图失败的具体原因,意图识别成功时,该值为空 |
slot | 是 | intentParam | JSONArray | 词槽参数对象 |
slotName | 是 | intentParam | String | 词槽名称 |
slotValue | 是 | intentParam | String | 词槽值 |
menuId | 是 | listTextMenu | String | 当前菜单id |
parentId | 是 | listTextMenu | String | 父级菜单id |
menuType | 是 | listTextMenu | String | 当前菜单的类型。当前文字菜单的类型一般为文件夹或者文件,文件没有子菜单。 |
answerId | 是 | listTextMenu | String | 答案的Id |
menuSequence | 是 | listTextMenu | String | 当前菜单的级别 |
beginStatement | 是 | listTextMenu | String | 开始语 |
endStatement | 是 | listTextMenu | String | 结束语 |
activeStatus | 是 | listTextMenu | String | 激活状态 |
userId | String | 是 | listTextMenu | 当前用户Id |
tenantId | 是 | listTextMenu | String | 当前租户Id |
createTime | 是 | listTextMenu | String | 创建时间 |
updateTime | 是 | listTextMenu | String | 更新时间 |
id | 是 | answers | String | id |
title | 是 | answers | String | 问答库中的问题 |
answer | 是 | answers | String | 问答库中的答案 |
url | 是 | answers | String | 答案参考链接 |
type | 是 | answers | String | 问题类型 |
resolution | 是 | answers | JSON | 问题的具体解析 |
score | 是 | answers | double | 问题匹配度评分,区间[0,1] |
示例
请求示例
问答参数的示例代码
{
"appkey":"用户秘钥",
"token":"签名信息,里面包含用户请求的所有数据"
}
token签名信息中包含了请求数据,参数包括:
参数 | 类型 | 含义 | 注意事项 | 是否必选 |
---|---|---|---|---|
question | String | 用户询问的问题 | 以UTF-8格式编码 | 是 |
format | String | 输出结果格式化 | 用以指定结果格式类型,可选值包括xml(XML格式),json(JSON格式),txt(text文本格式) format=== “xml”; format===”json”; format===“text”(现在默认返回json) |
否 |
lang | String | 语言代码 | 包括:zh(中文)和en(英文),默认lang=zh | 否 |
app_id | String | 创建应用的ID | 如果不存在创建应用ID则此字段为空 | 否 |
sessionid | String | 会话信息 | 会话信息标识,如果sessionid为空,则系统将产生sessionid,并返回。如果sessionid不为空,则进行会话 | 否 |
Token加密之前的参数结构为:
{
"question":"用户询问的问题",
"format":"签名信息,里面包含用户请求的所有数据",
"language":"语言,支持zh(中文),en(英文),默认为中文",
"app_id":"创建应用的id",
"sessionid":"会话信息表示,当会话结果为空时,将返回sessionid"
}
响应示例
参数 | 类型 | 含义 | 注意事项 |
---|---|---|---|
question | String | 用户询问的问题 | 以UTF-8格式编码 |
topic | String | 标题 | 主题 |
format | String | 输出结果格式化 | 用以指定结果格式类型,可选值包括xml(XML格式),json(JSON格式),txt(text文本格式) format=== “xml”; format===”json”; format===”text”(现在默认返回json) |
lang | String | 语言代码 | 包括:zh(中文)和en(英文),默认lang=zh |
app_id | String | 创建应用的ID | 如果不存在创建应用ID则此字段为空 |
sessionid | String | 会话信息 | 会话信息标识 |
status | String | 返回状态 | |
reminder | String | 提示信息 | |
answers | List | 存放答案的列表 | |
segment | List | 分词结果 | 对当前问题的分词结果 |
textMenu | jsonObject | 文字菜单内容 | 如果结果为文字菜单内容,则显示文字菜单结果 |
mediaType | String | 媒体类型 | 返回媒体的类型 |
ansType | String | 回答问题类型 | 返回答案的类型 |
intentParam | String | 意图结果的json结构转化为String | 意图的参数结构 |
textMenu中的json对象格式为:
参数 | 类型 | 含义 |
---|---|---|
endStatement | String | 文字菜单的结束语 |
beginStatement | String | 文字菜单的开始语 |
menuAns | String | 文字菜单的结果 |
menuId | String | 文字菜单的Id |
menuType | String | 菜单类型 |
ansId | String | 答案的id |
listTextMenu | List | 文字菜单选项列表 |
intentParam的json对象格式为:
参数 | 类型 | 含义 |
---|---|---|
intent | String | 意图名称 |
confidence | String | 意图得分 |
info | String | 意图失败的具体原因(意图识别成功时,该值为空) |
slot | JSONArray | 词槽参数对象 |
slotName | String | 词槽名称 |
slotValue | String | 词槽值 |
intentParam内容举例:
{
{
"intent":"意图名称",
"confidence":"意图得分",
"info":"意图失败的具体原因",
"slot":[
{
"slotName":"词槽名称",
"slotValue":"词槽值"
}
]
}
listTextMenu中的json对象内容:
参数 | 类型 | 含义 |
---|---|---|
menuId | String | 当前菜单id |
parentId | String | 父级菜单id |
menuType | String | 当前菜单的类型(当前文字菜单的类型一般为文件夹或者文件,文件没有子菜单) |
answerId | String | 答案的Id |
menuSequence | String | 当前菜单的级别 |
beginStatement | String | 开始语 |
endStatement | String | 结束语 |
activeStatus | String | 激活状态 |
userId | String | 当前用户Id |
tenantId | String | 当前租户Id |
createTime | String | 创建时间 |
updateTime | String | 更新时间 |
textMenu内容举例:
{
"endStatement":"B-返回上级菜单 Q-退出菜单",
"beginStatement":null,
"menuAns":null,
"menuId":"44ddc6175ae24a0dbf40d9f241ce158b",
"menuType":"FOLD",
"ansId":null,
"listTextMenu":[
{
"menuId":"7112a566a8a14827bda3c9cf39b850bd",
"parentId":"44ddc6175ae24a0dbf40d9f241ce158b",
"menuType":"FOLD",
"menuName":"新建文字菜单",
"answerId":null,
"menuSequence":"2",
"beginStatement":"ddd",
"endStatement":"333",
"activeStatus":"0",
"userId":"dialog",
"tenantId":"tenantId",
"createTime":1527040140000,
"updateTime":1527040952000
},
{
"menuId":"b48451a6278b4f33bedcc082a7a08e84",
"parentId":"44ddc6175ae24a0dbf40d9f241ce158b",
"menuType":"ITEM",
"menuName":"子菜单的内容是什么",
"answerId":"26c72d1d9c604ecf9c346a25a59fa17f",
"menuSequence":"2",
"beginStatement":null,
"endStatement":null,
"activeStatus":"0",
"userId":"dialog",
"tenantId":"tenantId",
"createTime":1527039572000,
"updateTime":1527040952000
}
]
}
answers 中json对象参数如下:
参数 | 类型 | 含义 |
---|---|---|
id | String | id |
title | String | 问答库中的问题 |
answer | String | 问答库中的答案 |
url | String | 答案参考链接 |
type | String | 问题类型 |
resolution | JSON | 问题的具体解析 |
score | double | 问题匹配度评分,区间为[0,1] |
当type值为LOCATION时,resolution的json对象参数如下:
参数 | 类型 | 含义 |
---|---|---|
values | List | 值列表 |
values的json对象参数如下:
参数 | 类型 | 含义 |
---|---|---|
code | String | 地区代码 |
name | String | 地区名称 |
type | String | 地区类型,其值为country、province、prefecture、county、location |
longitude | String | 经度 |
latitude | String | 纬度 |
返回JSON数据结构:
{
"question": "用户询问的问题",
"topic": "标题",
"format": "json",
"lang": "zh",
"app_id": "APP编号",
"sessionid": "sessionid值",
"status": "状态码",
"reminder": "提示信息",
"answers": [{
"id": "答案ID编号",
"title": "",
"answer": "答案",
"url": "链接",
"type": "LOCATION",
"resolution": {
"values": [{
"code": "地区编码",
"name": "地区名称",
"type": "地区类型",
"longitude": "经度",
"latitude": "纬度"
}]
},
"score": "匹配得分"
}]
}
返回JSON数据结果示例如下:
{
"question": "泰山在哪个城市?",
"topic": "LOCATION",
"format": "json",
"lang": "zh",
"app_id": "APP-1",
"sessionid": "SE1234567",
"status": "200",
"reminder": "提示信息",
" answers ": [{
"id": "1",
"title": "",
"answer": "泰安",
"url": "https://baike.baidu.com/item/泰山/5447?fr=aladdin",
"type": "LOCATION",
"resolution": {
"values": [{
"code": "86",
"name": "中国",
"type": "country",
"longitude": "116.4072154982",
"latitude": "39.9047253699"
},
{
"code": "370000",
"name": "山东省",
"type": "province",
"longitude": "117.0207380545",
"latitude": "36.6682454447"
},
{
"code": "370900",
"name": "泰安市",
"type": " prefecture ",
"longitude": "117.0884158791",
"latitude": "36.1999559476"
},
{
"code": "370902",
"name": "泰山",
"type": "location",
"longitude": "117.0884158791",
"latitude": "36.1999559476"
}
]
},
"score": "0.97"
}]
}
相似列表接口
描述
- 相似列表接口
URI
POST /qa/bot/sdk/similarities
请求参数
名称 | 是否必须 | 位置 | 类型 | 描述 |
---|---|---|---|---|
appkey | 是 | body | String | 应用的用户密钥 |
token | 是 | body | String | 签名信息 |
question | 是 | body | String | 用户询问的问题,以UTF-8格式编码 |
topic | 是 | body | String | 标题,主题 |
format | 是 | body | String | 输出结果格式化。用以指定结果格式类型,可选值包括xml(XML格式),json(JSON格式),txt(text文本格式)format=== “xml”;format===”json”;format===”text”(现在默认返回json) |
lang | 是 | body | String | 语言代码,包括:zh(中文)和en(英文),默认lang=zh |
app_id | 是 | body | String | 创建应用的ID,如果不存在创建应用ID则此字段为空 |
sessionid | 是 | body | String | 会话信息,会话信息标识 |
status | 是 | body | String | 返回状态 |
reminder | 是 | body | String | 提示信息 |
answers | 是 | body | List |
存放答案的列表 |
score | 是 | answers | String | 相似问题得分 |
kwId | 是 | answers | String | 相似问题的知识id |
title | 是 | answers | String | 相似问题的问答 |
titleWordList | 是 | answers | String | 相似问题的分析列表 |
kbFullCat | 是 | answers | List |
知识分类全级名称 |
示例
相似列表接口请求参数示例代码
{
"appkey":"用户秘钥",
"token":"签名信息,里面包含用户请求的所有数据"
}
Answer的Json结构数据示例如下
{
"question":"用户询问的问题",
"topic":"主题",
"format":"json",
"lang":"zn",
"app_id":"app编号",
"sessionid":"会话id",
"status":"状态码",
"reminder":"提示信息",
"answers":[
{
"score":"相似问题得分",
"kwId":"知识Id",
"title":"相似问题内容",
"titleWordList":[
"相似",
"问题",
"分词",
"结果"
]
},
"answers":[
"一级分类名","二级分类名",
]
]
}
媒体文件接口
描述
- 媒体文件接口
URI
POST /qa/bot/sdk/media
请求参数
名称 | 是否必须 | 位置 | 类型 | 描述 |
---|---|---|---|---|
appkey | 是 | body | String | 应用的用户密钥 |
token | 是 | body | String | 签名信息 |
mediaId | 是 | token | String | 用户媒体文件id,以UTF-8格式编码 |
sessionid | 是 | token | String | 会话信息,会话信息标识 |
返回参数
名称 | 是否必须 | 位置 | 类型 | 描述 |
---|---|---|---|---|
mediaId | 是 | body | String | 素材id |
mediaName | 是 | body | String | 素材名称 |
mediaSummary | 是 | body | String | 素材摘要 |
mediaType | 是 | body | String | 素材类型 |
mediaFile | 是 | body | byte[] | 素材文件 |
mediaUrl | 是 | body | String | 素材链接 |
mediaWatermark | 是 | body | String | 素材水印 |
encode | 是 | body | String | 素材文件传输过程中的编码,在传输过程中,将mediaFile采用base64编码 |
示例
媒体文件请求参数示例代码
{
"appkey":"用户秘钥",
"token":"签名信息,里面包含用户请求的所有数据"
}
Token加密之前的参数结构为:
{
"mediaId":"媒体文件id",
"sessionid":"会话信息表示,当会话结果为空时,将返回sessionid"
}
返回参数Json结构数据示例如下
{
"mediaId":"素材ID",
"mediaName":"素材名称",
"mediaSummary":"素材摘要",
"mediaType":"素材类型",
"mediaFile":"素材文件",
"mediaUrl":"素材链接",
"mediaWatermark":"素材水印",
"encode":"传输过程中的编码转化"
}