图灵机器人除了为广大用户提供免费的 API 接口,也开放了一些高级 API 接口来满足 更多用户的使用需求。图灵机器人语料库接口暂时对标准版和儿童版用户开放,目前开放了 语料库相关的 6 个接口(语料库匹配度设置、语料库加密模式设置、语料库新增、删除、 修改、查询)。
图灵机器人提供的语料库开放 API,方便用户(标准版、儿童版用户)对自有语料库数 据的管理与操作。用户获得 API 后无需登录图灵机器人官网后台进行数据的相关操作,直 接通过该接口就能完成对语料库一系列的操作,并能实现与官网语料库数据同步更新。
图灵机器人语料库开放 API 提供了 6 个开放权限服务,包括语料库匹配度设置、加密模式设置、语料库新增、语料库删除、语料库修改、语料库查询。
每个图灵账号下都可以根据不同的场景来创建不同的机器人(最多 5 个),并且每个 机器人下最多可有 5 个语料库,方便用户导入私有语料库数据来为自己的机器人注入“独 家内容”。这时用户可使用图灵机器人语料库开放 API 来完成对数据的快速导入、删除、 查找等管理工作。(新增/导入数据默认添加到该机器人账号下的“默认语料库”)
(1)使用者须为图灵机器人专业版用户;
(2)用户使用语料库新增接口批量导入数据时,享有与官网Excel上传导入相同的权限设置(20000条/天)。官网导入数据与接口导入数据都以累计的方式进行,每天数据导入量上限为10000条;
(3)用户使用语料库新增接口逐条添加数据时,每日导入量上限为20000条;
(4)图灵机器人对语料库接口提供了安全模式设置,目前分为加密和不加密两种形式,用户可按需自行设定。用户可登录图灵机器人官网,进入到机器人详情页的语料库模块的语料库API接口中对API进行“是否开启安全模式”配置,关于安全模式的详情介绍,请参照文档“安全”部分;
(5)用户如想修改语料库中的数据时,推荐将该条数据删除后再重新添加。
用户登录图灵机器人官网,可以在机器人详情页的语料库模块的语料库API接口中自行选择,目前提供加密和不加密两种模式,如果采用加密模式,还需设置加密模式的编码密钥(密钥按照要求自行设置,如:密钥为test123),如下图所示:
目前安全模式提供了加密和不加密两种方式,若使用加密模式时,请求的json数据中需要增加token字段。
(1)token值的计算
token = md5(secret+timestamp)
示例中,密钥为test123
注:secret在机器人语料库页面加密模式设置,timestamp为客户端当前时间戳
(2)示例
以导入语料库为例
如果选择“不加密模式”无需传入token、timestamp字段;当使用“加密模式”时,需要按照以上md5加密方式计算得出的token值结果加入token、timestamp字段。
不加密模式 | 加密模式 |
---|---|
{ "apikey":"图灵apikey(32位)", "data":{ "async":false, "list":[ {"question":"测试问题1","answer":"测试答案1"}, {"question":"测试问题2","answer":"测试答案2"} ] } } |
{ "apikey":"图灵apikey(32位)", "data":{ "async":false, "list":[ {"question":"测试问题1","answer":"测试答案1"}, {"question":"测试问题2","answer":"测试答案2"} ] }, "timestamp":timestamp, "token":md5(secret+timestamp) } |
注: (1)apikey为32位字符串,是图灵给予每个机器人的唯一标识,用户可通过注册图灵帐号,在“我的机器人”页中获取; (2)secret在机器人语料库开启加密模式后可设置 1)密钥:test123 2)token通过以下加密方式计算得出 md5(密钥+时间戳) = md5(test123+1515051846288) |
图灵机器人语料库接口目前对标准版和儿童版用户开放了6个接口,其中包括语料库匹配度设置、加密模式设置、语料库新增、语料库删除、语料库修改、语料库查询。
使用接口时,请求包体为JSON 格式(指定 header :Content-Type 为 application/json)
请求数据及返回数据格式都为json格式,会统一返回一个code作为返回结果的判断凭证,如果结果为成功,则data字段将返回数据。如果结果为失败,data字段将返回失败原因的描述。
返回状态码如下表所示:
code | 说明 |
---|---|
0 | 请求成功 |
3** | 操作错误 |
301 | 缺少必要参数、参数格式错误 |
4** | 权限错误 |
401 | apikey 不存在或者不具有权限 |
403 | 帐号上传权限已经用尽 |
405 | 帐号开启安全模式,token校验失败 |
5** | json请求的内容有误 |
该接口为语料库数据新增、批量导入接口,方便用户导入语料库数据。(数据默认导入到该机器人帐号下的“默认语料库”中)
(1) 请求接口
http://www.tuling123.com/v1/kb/import
(2) 输入数据(分为加密和不加密两种方式)
不加密模式 | 加密模式 |
---|---|
{ "apikey":"图灵apikey(32位)", "data":{ "async":false, "list":[ {"question":"测试问题1","answer":"测试答案1","simiQuestion":["simiQuestion1", "simiQuestion2", "simiQuestion3"]}, {"question":"测试问题2","answer":"测试答案2","simiQuestion":["simiQuestion1", "simiQuestion2", "simiQuestion3"]} ] } } |
{ "apikey":"图灵apikey(32位)", "data":{ "async":false, "list":[ {"question":"测试问题1","answer":"测试答案1","simiQuestion":["simiQuestion1", "simiQuestion2", "simiQuestion3"]}, {"question":"测试问题2","answer":"测试答案2","simiQuestion":["simiQuestion1", "simiQuestion2", "simiQuestion3"]} ] }, "timestamp":timestamp, "token":md5(secret+timestamp) } |
注:(1)apikey为作为图灵给予每个用户的唯一标识,用户可通过注册图灵帐号,在”机器人接入”页中获取; (2)采用加密模式下的token值 1)密钥:test123 2)token通过以下加密方式计算得出 md5(密钥+时间戳) = md5(test123+1515051846288) |
(3) 输入数据说明
参数名称 | 参数内容 |
---|---|
apikey | 图灵apikey,注册帐号即可获取 |
data | 添加NLP语料库内容 |
async | 是否异步处理(true=异步,false=同步) 异步只返回成功数量,不返回具体数据 |
list | 问题列表 |
question | 添加数据问题 |
answer | 添加数据答案 |
simiQuestion | 新增相似问题 |
timestamp | 客户端时间戳 |
token | 校验字段,加密必须 |
4) 返回数据说明
示例的返回为:{"code":0,"successNum": 1}
字段 | 说明 |
---|---|
code | 返回状态码数据 |
data | 成功:数据添加成功条数 失败:失败原因的描述 |
该接口为语料库查询接口,方便用户对数据进行查询。
(1)请求接口
http://www.tuling123.com/v1/kb/select
(2)输入数据
目前可以支持三种情况的查询
1)若要查询该帐号下语料库中存储的数据总量,只需传入apikey字段即可。
示例 | 说明 |
---|---|
{ "apikey": "图灵apikey(32位)" } |
apikey为必须字段,查询结果为该机器人帐号下语料库的总条数 |
2) 若要通过关键词来查询数据,则需传入apikey及data中pages部分的参数。
示例 | 说明 |
---|---|
按照关键词查询 { "apikey": "图灵apikey(32位)", "data": { "pages":{ "pageNumber":1, "pageSize":10, "searchBy": "测试" } } } |
apikey为必须字段 非必须字段,返回查询结果的第1页数据 非必须字段,每页显示10条数据 关键词查询时为必须字段 |
3) 若想通过数据的id来查询数据,则需传入apikey及data中ids字段,返回结果为id列表的记录。
示例 | 说明 |
---|---|
{ "apikey": "图灵apikey(32位)", "data": { "ids": [1,2] } } |
apikey为必须字段 按照id查询时为必须字段 |
4) 除上述三种查询方式外,其他查询请求则为非法,返回501错误。
不加密模式 | 加密模式 |
---|---|
按照关键词查询 { "apikey": "图灵apikey(32位)", "data": { "pages":{ "pageNumber":1, "pageSize":10, "searchBy": "测试" } } } 按照数据id查询 { "apikey": "图灵apikey(32位)", "data": {"ids": [1,2]} } |
按照关键词查询 { "apikey": "图灵apikey(32位)", "data": { "pages":{ "pageNumber":1, "pageSize":10, "searchBy": "测试" } }, "timestamp":timestamp, "token":md5(secret+timestamp) } 按照数据id查询 { "apikey": "图灵apikey(32位)", "data": {"ids": [1,2]} , "timestamp":timestamp, "token":md5(secret+timestamp) } |
注: (1)apikey为32位字符串,是图灵给予每个机器人的唯一标识,用户可通过注册图灵帐号,在“我的机器人”页中获取; (2)secret在机器人语料库开启加密模式后可设置 1)密钥:test123 2)token值为md5加密计算之后的32位二进制结果 按关键词查询: md5(密钥+时间戳)= md5(test123+1515051846288) 按数据id查询: md5(密钥+时间戳)= md5(test123+1515051846288) |
(3)输入数据说明
参数名称 | 参数内容 |
---|---|
apikey | 图灵apikey,注册帐号即可获取 |
data | 查询NLP语料库数据内容 |
pages | 查询返回页面格式 |
pageNumber | 页数 |
pageSize | 每页显示行数 |
searchBy | 查询的关键词 |
ids | 返回语料库对应的id。注:[1,2,3] |
timestamp | 客户端时间戳 |
token | 校验字段,加密必须 |
(4)返回数据说明
{
"code": 0,
"data": {
"totalCount": 2,
"knowledgeCount": 2,
"knowledgeList": [
{
"id": "2",
"question": "测试问题2",
"answer": "新的答案2",
"time": "2015-12-03 14:34:36"
},
{
"id": "1",
"question": "测试问题1",
"answer": "新的答案1",
"time": "2015-12-03 14:34:35"
}
]
}
}
字段 | 说明 |
---|---|
code | 返回状态码数据 |
data | 成功:查询数据结果列表 失败:失败原因的描述 |
totalCount | 语料库数据总条数 |
knowledgeCount | 返回的查询数据条数 |
knowledgeList | 返回的数据列表 |
id | 返回数据id |
question | 返回数据的问题 |
answer | 返回数据的答案 |
time | 数据修改时间 |
该接口为修改语料库接口,方便用户修改数据。
(1)请求接口
http://www.tuling123.com/v1/kb/update
(2)输入数据
不加密模式 | 加密模式 |
---|---|
{ "apikey":"图灵apikey(32位)", "data":{ "async":false, "list":[ {"id":"1","question":"新的问题","answer":"新的答案1"}, {"id":"2","question":"新的问题","answer":"新的答案2"} ] } } |
{ "apikey":"图灵apikey(32位)", "data":[ "async":false, "list":[ {"id":"1","question":"新的问题","answer":"新的答案1"}, {"id":"2","question":"新的问题","answer":"新的答案2"} ] ], "timestamp":timestamp, "token":md5(secret+timestamp) } |
注: (1)apikey为32位字符串,是图灵给予每个机器人的唯一标识,用户可通过注册图灵帐号,在”我的机器人”页中获取; (2)该接口用于标号为id的语料库答案改为answer所传入的字符串 {"id":"1","answer":"新的答案1"} 将id编码为1的数据答案改为传入的"新的答案1" (3)采用加密模式下的token值: 1)密钥:test123 2)token:md5(secret+timestamp) md5(密钥+时间戳)=md5(test123+1515051846288) |
(3)输入数据说明
参数名称 | 参数内容 |
---|---|
apikey | 图灵apikey,注册帐号即可获取 |
data | 更改NLP语料库数据内容 |
async | 是否异步处理(true=异步,false=同步) 异步只返回成功数量,不返回具体数据 |
list | 问题列表 |
id | 需要更改的数据id |
answer | 新的答案 |
timestamp | 客户端时间戳 |
token | 校验字段,加密必须 |
(4)返回数据说明
示例的返回为:{"code":0,"data":"2"}
字段 | 说明 |
---|---|
code | 返回状态码数据 |
data | 成功:数据修改成功条数 失败:失败原因的描述 |
该接口为语料库删除接口,方便用户删除数据。目前支持两种数据删除形式。
1)第一种为执行清空操作,即清空语料库中的所有数据;
2)第二种为根据数据的id编号来对应删除数据,每条数据的id是唯一的;
(1)请求接口
http://www.tuling123.com/v1/kb/delete
(2)输入数据(分为加密和不加密两种方式)
目前只支持两种形式的删除接口。
1)如果有"clear"的字段而且clear的布尔值为true,则执行清空操作;
2)第二种会根据用户传过来的ids中json数组里面的id,删除对应的记录;
不加密模式 | 加密模式 |
---|---|
{ "apikey": "图灵apikey(32位)", "data": {"clear": false,"ids": [1,2,3]} } |
{ "apikey": "图灵apikey(32位)", "data": {"clear": false,"ids": [1,2,3]}, "timestamp":timestamp, "token":md5(secret+timestamp) } |
注: (1)apikey为32位字符串,是图灵给予每个用户的唯一标识,用户可通过注册图灵帐号,在”机器人接入”页中获取; (2)关于执行清空或部分删除数据操作: {"clear": false,"ids": [1,2,3]} 该处执行的是删除id编号分别为1,2,3的三条数据 {"clear": true} 该处执行的是清空所有数据 (3)采用加密模式下的token值: 1)密钥:test123 2)token:md5(secret+timestamp) md5(密钥+时间戳)=md5(test123+1515051846288) |
(3)输入数据说明
参数名称 | 参数内容 |
---|---|
apikey | 图灵apikey,注册帐号即可获取 |
data | 删除NLP语料库数据内容 |
clear | 是否清空数据库 |
ids | 待删除的数据id编号 |
timestamp | 客户端时间戳 |
token | 校验字段,加密必须 |
(4) 返回数据说明
示例的返回为:{"code":0,"data":"3"}
字段 | 说明 |
---|---|
code | 返回状态码数据 |
data | 成功:数据删除成功条数 失败:失败原因的描述 |
其他接口说明请下载《语料库接口开发文档》
A:目前图灵机器人对标准版、儿童版用户提供了语料库开放接口服务。通过该接口,您可以实现对私有语料库数据的增删改查,享有和官网导入语料库一样的服务。使用接口操作的数据也会和官网语料库数据保持同步(数据默认导入到该机器人帐号下的“默认语料库”中)。
A:目前图灵机器人对标准版、儿童版用户提供了语料库开放接口服务。如果您已拥有相关权限,即可在机器人详情页的语料库模块的语料库API接口中找到该服务。如果您还未有权限使用,可通过付费升级此机器人帐号来获取使用权限。
A:图灵机器人语料库开放接口提供了5个接口,包括语料库新增接口、语料库删除接口、语料库修改接口、语料库查询接口以及机器人名称修改接口,方便用户使用及管理。