@galaxy-0
2019-08-26T14:23:45.000000Z
字数 4618
阅读 714
查表对话系统
修改日期 | 版本 | 备注 |
---|---|---|
2019.7.28 | v0.9 | 初始版本 |
2019.7.31 | v0.95 | 添加查询信息的接口 |
2019.8.6 | v0.98 | 添加前端展示表格回复的接口 |
2019.8.7 | v0.99 | 添加发送信息时的domain和回复时的log,添加发布接口 |
2019.8.15 | v0.99 | 添加NLG模板接口 |
2019.8.19 | v1.0 | 添加实体接口 |
阶段一首先实现两个表的获取接口和四个表的上传接口(获取表的名字,获取表的缩略,上传表,上传表的描述,上传表的联合主键,上传表的操作类型),用户使用默认用户进行测试, token字段不进行额外的验证,直接使用固定值
GET:/dialog/find
{
domain:'' //请求的机器人名字
}
{
status:1/0 //系统状态,1表示正常,0表示错误
exist:false/true //是否存在这个机器人
}
POST:/dialog/chat
,
{
message:'',//当前用户说的话
session:'',//当前对话的session,第一次开启谈话时为空
app_name:''
}
{
status:1/0 //系统状态,1表示正常,0表示错误
response:'',//当前系统的回复
session:''//当前对话的session,第一次开启谈话时需要后台生成一个新的session
hasTable:true/false //本次回复是否需要回复表格
table:[{col1:value,col2:value},{...}] //如果需要回复表格,表格的内容
log:{'slu':[],'dm':[]}
}
POST:/user/register
{
usn:'',//注册的用户名
password:''//密码
}
{
status:1/0/-1 //1表示成功,0表示系统出错,-1表示用户名已被占用
user_id:'' //如果注册成功,返回用户的唯一标识。注册失败时为空
}
POST/user/login
{
usn:''//登录的用户名
password:'' //密码
}
{
status:1/0/-1,//1表示成功,0表示系统错误,-1表示密码错误
user_id:'',登录成功时返回用户唯一标识
token:''//用于身份验证的token,涉及到用户的请求都会附带token
}
POST:/app/add
{
app_name:'',//创建的app名字
user_id:''//创建者的id(唯一标识)
token:''//创建者的token
}
{
status:1/0/-1/-2,//-1表示新建失败,比如该用户有重名的app。-2表示token验证失败
app_id: 新建成功时,返回app唯一标识
}
GET:/app/delete
{
user_id:'',//用户唯一标识
token:'' // 身份验证
app_id:''
}
{
status:1/0/-1/-2, //-1表示删除失败,-2表示token验证失败
}
GET:/app/list
{
user_id:''//请求获得列表的用户唯一标识
token:'' //身份验证
}
{
status:1/0/-1/-2,
app_list:[{app_name:'',app_id:''}] //用户的app列表
}
POST:/app/editName
{
app_name:'',//修改后的app名字
app_id:'', //app的唯一标识
user_id:''//创建者的id(唯一标识)
token:''//创建者的token
}
{
status:1/0/-1/-2,//-1表示修改失败,比如该用户有重名的app。-2表示token验证失败
}
GET:/app/getTableName
{
app_id:'',
user_id:'',
token:'',
}
{
status:0/1/-1/-2,
name:'' //当前应用的表的名字
}
POST:/app/uploadTable
Content-type:multipart/form-data
{
user_id:'',
app_id:'',
token:'',
file_name:'',
file:''
}
{
status:1/0/-1/-2
}
GET:/app/getTableHeader
{
user_id:'',
token:'',
app_id:''
}
{
status:-1/0/1/-2,
header:[{
col:'col1',//指定对应的列,col1 col2是用户上传的表的header
alias:['alias1','alias2'],
description:''//列的自然语言描述
},{...}]
}
POST:/app/tableHeader
{
user_id:'',
token:'',
app_id:'',
header:[{
col:'col1',//指定对应的列,col1 col2是用户上传的表的header
alias:['alias1','alias2'],
description:''//列的自然语言描述
},{...}}
}
{
status:1/0/-1/-2
}
GET:/app/getTableType
{
user_id:'',
token:'',
app_id:''
}
{
status:-1/0/1/-2,
type:[{
col:'col1',
type:'',
operation:{
min:false,
max:false,
sum:false,
avg:false,
comparable:false,
fuzzy:false,
search:false
}
},{...}]
}
POST:/app/tableType
{
user_id:'',
token:'',
app_id:'',
type:[{
col:'col1',
type:'',
operation:{
min:false,
max:false,
sum:false,
avg:false,
comparable:false,
fuzzy:false,
search:false
}
},{...}]
}
{
status:1/0/-1/-2
}
GET:/app/getJoinKeys
{
user_id:'',
token:'',
app_id:''
}
{
status:-1/0/1/-2,
keys:[[col1,col2],[col3,col],[...]]
}
POST:/app/joinKeys
{
user_id:'',
token:'',
app_id:'',
keys:[[col1,col2],[col3,col],[...]]
}
{
status:1/0/-1/-2
}
GET:/app/getTable
{
user_id:'',
app_id:'',
token:''
}
{
status:1/0/-1/-2,
table:{
col:[col1,col2,...],
content:[{col1:'',col2:'',col3:'',...},{...}] // 每一行的内容是一个dict,一共3行
}
}
GET:/app/getState
{
user_id:'',
app_id:'',
token:''
}
{
status:1/0/-1/-2,
state:1/0 //1表示正在运行(已发布),0表示没有运行(没有发布)
}
POST:/app/release
{
user_id:'',
app_id:'',
token:''
}
{
status:1/0/-1/-2
}
POST:/app/stop
{
user_id:'',
app_id:'',
token:''
}
{
status:1/0/-1/-2
}
POST:/app/nlg
{
user_id:'',
app_id:'',
token:'',
nlg:['inform(...)','']
}
{
status:1/0/-1/-2
}
GET:/app/getNlg
{
user_id:'',
app_id:'',
token:'',
}
{
nlg:[{...}] // {...}是原始nlg规则经过转换的结果
status:1/0/-1/-2
}
POST:/app/slu
{
user_id:'',
app_id:'',
token:'',
slu:[{
'col':'',
'prefix':'',
'postfix':'',
'spoken_language':'',
'words':{
'verb':'',
'noun':'',
'adj':''
}
}
,{...}]
}
{
status:1/0/-1/-2
}
GET:/app/getSlu
{
user_id:'',
app_id:'',
token:'',
}
{
slu:[{
'col':'',
'prefix':'',
'postfix':'',
'spoken_language':'',
'words':{
'verb':'',
'noun':'',
'adj':''
}
}
,{...}],
status:1/0/-1/-2
}
POST:/app/entity
{
user_id:'',
app_id:'',
token:'',
entity:'',
spoken_language:'',
entity_adj:[{'col':'','description'}]
}
{
status:1/0/-1/-2
}
GET:/app/getEntity
{
user_id:'',
app_id:'',
token:'',
}
{
entity:'',
spoken_language:'',
entity_adj:[{'col':'','description'}]
status:1/0/-1/-2
}
GET:/app/getTableCol
{
user_id:'',
token:'',
app_id:''
}
{
status:-1/0/1/-2,
header:[{
col:'col1',//指定对应的列,col1 col2是用户上传的表的header
alias:['alias1','alias2'],
description:''//列的自然语言描述
},{...}]
}