var MD5 = require('../../../../utils/MD5.js');
var GUID = require('../../../../utils/GUID.js');
var queryExpress = require('../../../../utils/queryExpress.js');
//OLAMI自然语言处理接口
const requestUrl = "https://cn.olami.ai/cloudservice/api";
const Appkey = "de03df6e10ce49c491d85d517a41c4c9";
const Appsecret = "0044d48597f14a9e81723f2c07129e94";
const api = "nli";
//聊天的API key信息
const ChatAppkey = '459708c3317143209c35b1881d9eb24a';
const ChatAppsecret ='e023b671a1144fa4a8d9e572a49b78eb';
// 语义处理所需的常量
const OPT_QUERY=0x00;
const OPT_QUERY_NUM=0x01;
const OPT_QUERY_NAME=0x02;
const OPT_QUERY_NUM_NAME=0x03;
const expressAPPname='expressage';
const expNumSlotName ='expnumber';
const expNameSlotName ='expname';
const searchbuttonvalue_default="查快递"
const searchbuttonvalue_switch='聊天'
//查快递的例句
var expEXnum=1;
var exampleSentens = [];
const exampleSentens1 = ['查快递','查快递3333481970033', '中通快递765325527325', '765325527325'];
const exampleSentens2 = ['查一下快递', '帮我查快递3333481970033', '中通快递765325527325查一下', '我的运单12425555到哪'];
const exampleSentens3 = ['看看我的快递到哪儿了', '申通快递3333481970033帮我查查', '查一下运单号439307684430', '我的运单是12425555'];
//聊天的例句
var chatNum=1;
var exampleChatSentens = [];
const exampleChatSentens1 = ['我最喜欢你了', '宫爆鸡丁的做法','3乘以50再加100等于几', '今天周几啊', '帮我算一下24点','给我讲个笑话呗'];
const exampleChatSentens2 = ['你叫什么名字啊', '孜然羊肉怎么做', '1加1等于几', '中秋节是几号', '会算24点吗', '讲一个笑话'];
const exampleChatSentens3 = ['你喜欢吃冰激凌吗', ' 你知道怎么做排骨吗', '今天几号', '1,5,6,8算一下24点', '讲个故事听听呗'];
const exampleChatSentens4 = ['你最喜欢谁啊', '牛肉怎么做好吃', '你会算乘法吗', '下个月有几天', '2,3,8和9怎样算24点', '来个幽默的笑话听听'];
const exampleChatSentens5 = ['世界上谁最漂亮啊', '小炒肉怎么做好吃', '加减乘除会不会啊', '国庆节怎么放假', '算算24点', '我想听故事'];
//外接地址
const blogsite='http://blog.csdn.net/huangmeimao/article/details/74923621';
//查询方式
const search_type=0x00;
const chat_type=0x01;
//API访问失败等不正常情况的提示
const API_data_error='亲爱的,估计服务器罢工了,快联系我主人吧。';
const API_Fail='我崩溃了,您待会再来吧';
//标题框初始化内容
const titletext_default='您可以使用自然语言查询快递,点开例句试试吧。'
const Chattype_text = '本宝宝支持聊天、菜谱、日历、计算、24点和讲笑话哦。点开例句试试吧';
var userId = GUID.NewGuid();
//语义处理公用变量定义
var expAppinfo=new expressInfo();
function expressInfo(object){
this.OPT = OPT_QUERY_NUM; //默认通过运单编号查询
this.numSlot=null; //运单编号SLot
this.nameSlot=null; //快递名称Slot
}
function resetExpInfo(){
expAppinfo.OPT = OPT_QUERY_NUM; //默认通过运单编号查询
expAppinfo.numSlot = null; //运单编号SLot
expAppinfo.nameSlot = null; //快递名称Slot
}
function APPSlot(){
this.name = '';
this.value='';
}
/**
* 通过快递公司名查询公司编码
*/
function getExpCode(name){
var actName=null;
for (var item in expCodes) {
if (item.indexOf(name) != -1) { //item 表示Json串中的属性,如'name'
actName = item;
break;
}
}
return actName;
}
/**
* 处理OLAMI语义API的回复内容
*/
function HandleOLAMIresponseData(data, corpus, object)
{
var textData=''; //text文本框要show的内容
var semantics = data.semantic;
if (semantics == null || semantics.length==0){
if (data.desc_obj.result != null && data.desc_obj.result.length != 0 && data.desc_obj.status==0) {
if (data.type == 'joke' || data.type == 'cooking'){
textData = data.data_obj[0].content;
}else
textData = data.desc_obj.result;
}else
textData='抱歉,我还理解不了你说的话。';
object.setData({
expresshead: '',
text: textData
})
}else {
for (var i = 0; i < semantics.length; i++) {
var tempSem = data.semantic[0];
if (tempSem.app == expressAPPname) { //仅处理快递模块的语义
//处理modifier
var mods = tempSem.modifier;
if (mods.indexOf("query") > -1)
expAppinfo.OPT = OPT_QUERY;
else if (mods.indexOf("query_num") > -1)
expAppinfo.OPT = OPT_QUERY_NUM;
else if (mods.indexOf("query_name") > -1)
expAppinfo.OPT = OPT_QUERY_NAME;
else if (mods.indexOf("query_name_num") > -1)
expAppinfo.OPT = OPT_QUERY_NUM_NAME;
//获取slots,即快递公司名称和运单号
var slots = tempSem.slots;
if (slots != null) {
for (var j = 0; j < slots.length; j++) {
var tempslot = slots[j];
if (tempslot.name == expNumSlotName) { //运单号
var numslot = new APPSlot();
numslot.name = expNumSlotName;
numslot.value = tempslot.value;
expAppinfo.numSlot = numslot;
} else if (tempslot.name == expNameSlotName) {//快递名称
var nameslot = new APPSlot();
nameslot.name = expNumSlotName;
nameslot.value = tempslot.value;
expAppinfo.nameSlot = nameslot;
}
}
}
//handle Operations
switch (expAppinfo.OPT) {
case OPT_QUERY:
textData = '请提供您的运单编号。';
object.setData({
expresshead: '',
text: textData
})
break;
case OPT_QUERY_NUM:
//检测是否存在快递名称
if (expAppinfo.nameSlot != null && expAppinfo.numSlot != null){ //采用快递编号+快递公司方式查询
//获取快递公司名称
var expname = getExpCode(expAppinfo.nameSlot.value);
var expcode = expCodes[expname];
queryExpress.queryExpress(expname,expcode, expAppinfo.numSlot.value, object);
} else if (expAppinfo.numSlot != null){
//用运单编号查询
queryExpress.queryEXPbyNum(expAppinfo.numSlot.value, object);
}
resetExpInfo(object);
break;
case OPT_QUERY_NAME:
textData = '请提供您的运单编号。';
object.setData({
expresshead: '',
text: textData
})
break;
case OPT_QUERY_NUM_NAME:
if (expAppinfo.nameSlot != null && expAppinfo.numSlot != null) { //采用快递编号+快递公司方式查询
//获取快递公司名称
var expname = getExpCode(expAppinfo.nameSlot.value);
var expcode = expCodes[expname];
queryExpress.queryExpress(expname,expcode, expAppinfo.numSlot.value, object);
}
resetExpInfo(object);
break;
}
break;
}
}
}
}
/**
* 将输入语句通过post方式提交到OLAMI语义开放平台
*/
function parseCorpus(corpus,object) {
var usekey = Appkey;
var usesecret = Appsecret;
if (object.data.dialogtype == chat_type){
usekey = ChatAppkey;
usesecret = ChatAppsecret;
}
//获取sign的MD5值
object.setData({
text: '请稍后......'
})
var timestamp = new Date().getTime();
var originalSign = usesecret + "api=" + api +
没有合适的资源?快使用搜索试试~ 我知道了~
微信小程序+OLAMI开发平台制作查询工具
共41个文件
png:16个
js:10个
wxss:6个
需积分: 14 22 下载量 63 浏览量
2017-07-12
16:40:53
上传
评论 1
收藏 68KB ZIP 举报
温馨提示
可以直接用微信小程序工具打开,测试,可以查快递,查日历,聊天,讲故事,讲笑话等
资源推荐
资源详情
资源评论
收起资源包目录
smarttools.zip (41个子文件)
smarttools
image
icon64_appwx_logo.png 3KB
location.png 1KB
record.png 6KB
icon_foot.png 5KB
icon_component_HL.png 688B
wechatHL.png 1KB
stop.png 2KB
green_tri.png 2KB
wechat.png 1KB
trash.png 3KB
pause.png 4KB
icon_API.png 1KB
play.png 4KB
icon_component.png 653B
icon_API_HL.png 1KB
plus.png 1KB
app.json 438B
pages
index
index.js 504B
index.json 2B
index.wxss 288B
index.wxml 365B
pages
input
input.json 53B
input.js 16KB
input.wxml 2KB
input.wxss 1KB
input.js 12KB
logs
logs.js 280B
logs.json 56B
logs.wxml 194B
logs.wxss 114B
common
index.wxss 2KB
foot.wxml 225B
head.wxml 230B
lib
weui.wxss 21KB
app.wxss 203B
app.js 748B
utils
GUID.js 3KB
MD5.js 7KB
queryExpress.js 5KB
util.js 481B
base64.js 6KB
共 41 条
- 1
资源评论
huangmeimao
- 粉丝: 69
- 资源: 13
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功