人机对话
一、接口描述
1. 功能描述
为开发者提供SAAS方式的可视化界面,快速帮助开发者实现某领域的自定义语义交互能力,帮助开发者对接用户所下达的指令或搜索的信息给予相对应的服务。提供两种方式:1.任务型对话管理:提供多轮对话管理引擎,让开发者能在面向任务的对话中,透过追问的多轮交互得到足够的信息去执行任务,更加拟真的人机交互,提升用户体验。2.QA型对话管理:基于问题答案库,进行信息检索的过程,从知识库中找到语义匹配的正确的回应。
2. 接口使用:
平台为每个API提供试用体验服务,您在AI市场选择“免费试用”规格下单后,即可开始体验业内领先的人工智能API服务。 免费试用服务具有调用量、QPS限制,如需更高性能的API服务,可以提交咨询工单,联系京东AI扩容购买。
使用接口前,需要先完成API的下单购买,然后可使用已经封装好的SDK/参照接口鉴权规则进行相应开发,整体流程详见 接入流程
二、请求说明
1. 接口地址 :
https://aiapi.jd.com/jdai/dialog
2. 请求方式:
post
3. 请求参数
(1)query请求参数
公共请求参数
名称 | 类型 | 必填 | 示例值 | 描述 |
---|---|---|---|---|
appkey | string | 是 | 80d2b762ecb86593f9668526920f46c | 您的appkey,可在买家中心控制台中获 |
timestamp | long | 是 | 1541491668060 | 请求的时间戳,精确到毫秒,timestamp有效期5分钟 |
sign | string | 是 | 2e148773a0337a8f2200ba90d445f083 | 签名,根据规则MD5(sectetkey+timestamp) |
(2)header请求参数
业务请求参数
名称 | 类型 | 必填 | 示例值 | 描述 |
---|---|---|---|---|
Content-Type | string | 是 | application/json | 表示请求JSON格式的文本信息 |
(3)body请求参数
业务请求参数
名称 | 类型 | 必填 | 示例值 | 描述 |
---|---|---|---|---|
appId | string | 是 | taohongming_6_add68b6c-4e81-4fd4-b865-55b942b494e8 | 应用id,同一调用方可以创建多个应用。 |
sessionId | string | 是 | xxxxssssssxxx | 会话id,同一次会话id保持不变。 |
text | string | 是 | 满5件打3折 | 输入文本 |
topK | int | 是 | 3 | 返回分数较高的 k 个结果。 |
4、请求代码示例
建议您使用我们提供的SDK进行调用,SDK获取及调用方式详见本页一接口描述中的4接口使用
三、返回说明
1、返回参数
(1)公共返回参数
名称 | 类型 | 示例值 | 描述 |
---|---|---|---|
code | string | 1000 | 参见下方错误码-系统级错误码 |
charge | boolean | false 或 true | false:不扣费, true:扣费 |
remainTimes | long | 1305 | 剩余调用次数;免费api:每天剩余调用次数;收费api:剩余次数;无限制时为-1 |
remainSeconds | long | 1223456 | 剩余调用时间(s);免费api:-1;收费api:剩余调用时间;无限制时为-1 |
msg | string | 查询成功 | 参见下方错误码-系统级错误码数 |
result | object | {...} | 查询结果 |
(2)业务返回参数
名称 | 类型 | 示例值 | 描述 |
---|---|---|---|
status | int | 0 | 参照四、错误码-业务错误码 |
message | string | OK | 参照四、错误码-业务错误码 |
request_id | string | 5893465d31284468a8014de6ee430f8e | 便于双方定位问题 |
type | int | 1 | 对话响应回答的类型,1: 任务型对话的响应回答;2: QA型对话的响应回答。 |
dialogResult | DialogResponse | { "response": "本轮会话结束", "completed": true, "intent": { "slots": [ { "rawValue": "打3", "name": "gift", "value": "3" }, { "rawValue": "5", "name": "condition", "value": "5" } ], "name": "ManMJianNZhe" } } | 对话的响应回答,根据type,对话响应回答对应相应的子类 TaskDialogResult和QADialogResult。 |
SemanticResult字段说明
Type为1, TaskDialogResult: 任务型对话语义解析的结果
名称 | 类型 | 示例值 | 描述 |
---|---|---|---|
intent | Intent | { "name": "callTaxi", "slots": [ { "name": "Fairy_Time", "value": "03:00", "rawValue": "3点" } ] } | 包含所解析的意图、槽值信息、对输入文本的响应回答以及任务型对话是否结束(已经收集到所有必填槽值信息)的标志 |
response | String | 你想去哪 | 回答的答案 |
completed | double | false | 对话是否结束 |
Type为2, QADialogResult: 任务型对话语义解析的结果 (answers)
名称 | 类型 | 示例值 | 描述 |
---|---|---|---|
question | string | 怎样使用滴滴打车 | 问题 |
answer | Srting | 可以下载滴滴app | 回答的答案 |
type | String | 9 | 类型 |
score | double | 0.9999999999733115 | 分数(0-1),分数越高,表示意图识别的可能性越高 |
2、返回示例
此处内容为通过网关后返回的结果,包含公共返回参数
1.我想打车
{
"code": "10000",
"charge": false,
"remainTimes": 999998,
"remainSeconds": -1,
"msg": "查询成功",
"result": {
"status": 0,
"request_id": null,
"type": 1,
"dialogResult": {
"intent": {
"name": "callTaxi",
"slots": []
},
"response": "想几点出发",
"completed": false
}
}
}
2.我想3点出发
{
"code": "10000",
"charge": false,
"remainTimes": 999998,
"remainSeconds": -1,
"msg": "查询成功",
"result": {
"status": 0,
"request_id": “xxxxxx”,
"type": 1,
"dialogResult": {
"intent": {
"name": "callTaxi",
"slots": [
{
"name": "Fairy_Time",
"value": "03:00",
"rawValue": "3点"
}
]
},
"response": "你想去哪",
"completed": false
}
}
}
3.我想去亦庄
{
"code": "10000",
"charge": false,
"remainTimes": 999998,
"remainSeconds": -1,
"msg": "查询成功",
"result": {
"status": 0,
"request_id": “xxxxx”,
"type": 1,
"dialogResult": {
"intent": {
"name": "callTaxi",
"slots": [
{
"name": "Fairy_Time",
"value": "03:00",
"rawValue": "3点"
},
{
"name": "toLocation",
"value": "亦庄",
"rawValue": "亦庄"
}
]
},
"response": "你确认要在03:00去亦庄吗",
"completed": false
}
}
}
4.确认
{
"code": "10000",
"charge": false,
"remainTimes": 999998,
"remainSeconds": -1,
"msg": "查询成功",
"result": {
"status": 0,
"request_id": “”,
"type": 1,
"dialogResult": {
"intent": {
"name": "callTaxi",
"slots": [
{
"name": "Fairy_Time",
"value": "03:00",
"rawValue": "3点"
},
{
"name": "toLocation",
"value": "亦庄",
"rawValue": "亦庄"
}
]
},
"response": "本轮会话结束",
"completed": true
}
}
}
5.怎样使用滴滴打车
{
"code": "10000",
"charge": false,
"remainTimes": 999998,
"remainSeconds": -1,
"msg": "查询成功",
"result": {
"status": 0,
"request_id": “xxxxxx”,
"type": 2,
"dialogResult": {
"answer": [
{
"question": "怎样使用滴滴打车",
"answer": "可以下载滴滴app",
"type": "9",
"score": 0.9999999999733115
},
{
"question": "怎样使用滴滴打车",
"answer": "可以微信小程序使用",
"type": "9",
"score": 0.9999999999733115
}
]
}
}
}
6.我想去火星
{
"code": "10000",
"charge": false,
"remainTimes": 999998,
"remainSeconds": -1,
"msg": "查询成功",
"result": {
"status": 0,
"request_id": “xxxxxx”,
"type": 1,
"dialogResult": {
"intent": null,
"response": "听不懂你在说什么",
"completed": false
}
}
}
四、错误码
1.系统级错误码
2.业务错误码
业务错误码(status) | message | 说明 |
---|---|---|
12001 | "Invalid parameter" | 无效参数 |
12002 | "Missing parameter" | 缺少参数 |
12003 | "Error parsing parameter information" | 参数解析错误 |