這段時(shí)間開發(fā)了一個(gè)智能對(duì)話的
微信小程序
,下面就把這個(gè)介紹一下妥粟。
0.介紹界面:對(duì)話:功能:目前支持閑聊,問時(shí)間吏够,問天氣勾给,算24點(diǎn),單位換算锅知,匯率查詢播急,郵政編碼,笑話售睹,故事桩警,算數(shù)功能。1.智能對(duì)話接口首先是對(duì)話...
0.介紹
界面:
對(duì)話:
功能:目前支持閑聊昌妹,問時(shí)間捶枢,問天氣,算24點(diǎn)飞崖,單位換算烂叔,匯率查詢,郵政編碼固歪,笑話蒜鸡,故事,算數(shù)功能牢裳。
1.智能對(duì)話接口
首先是對(duì)話的接口逢防,用的是
[OLAMI
](http://cn.olami.ai/open/website/home/home_show)的接口,可以自己定義需要的對(duì)話贰健,也有系統(tǒng)提供的對(duì)話模塊胞四。
對(duì)話模塊定義好之后,查看API文檔伶椿,將對(duì)話通過API發(fā)送之后就可以得到回答辜伟。
API調(diào)用代碼
NLIRequest:function(corpus,arg) { // corpus是要發(fā)送的對(duì)話氓侧;arg是回調(diào)方法
var that = this;
// appkey
var appkey = that.globalData.NLPAppkey;
// appsecret
var appSecret = that.globalData.NLPAppSecret;
var api = "nli";
var timestamp = new Date().getTime();
// MD5簽名
var sign = MD5.md5(appSecret + "api=" + api + "appkey=" + appkey + "timestamp=" + timestamp + appSecret);
var rqJson = { "data": { "input_type": 1, "text": corpus }, "data_type": "stt" };
var rq = JSON.stringify(rqJson);
var nliUrl = that.globalData.NLPUrl;
// cusid是用來實(shí)現(xiàn)上下文的,可以自己隨意定義內(nèi)容导狡,要夠長夠隨機(jī)
var cusid = that.globalData.NLPCusid;
console.log("[Console log]:NLIRequest(),URL:" + nliUrl);
wx.request({
url: nliUrl,
data: {
appkey: appkey,
api: api,
timestamp: timestamp,
sign: sign,
rq: rq,
cusid: cusid,
},
header: { 'content-type': 'application/x-www-form-urlencoded' },
method: 'POST',
success: function (res) {
var resData = res.data;
console.log("[Console log]:NLIRequest() success...");
console.log("[Console log]:Result:");
console.log(resData);
var nli = JSON.stringify(resData);
//回調(diào)函數(shù)约巷,解析數(shù)據(jù)
typeof arg.success == "function" && arg.success(nli);
},
fail: function (res) {
console.log("[Console log]:NLIRequest() failed...");
console.error("[Console log]:Error Message:" + res.errMsg);
typeof arg.fail == "function" && arg.fail();
},
complete: function () {
console.log("[Console log]:NLIRequest() complete...");
typeof arg.complete == "function" && arg.complete();
}
})
}
2.對(duì)話內(nèi)容顯示 前端顯示代碼
{{item.text}} {{item.text}}{{item.url}}
語義解析技術(shù)由OLAMI提供
【1】scroll-into-view=”{{scrolltop}}”是將對(duì)話滾動(dòng)到最新位置,在js中把最新的id賦給scrolltop旱捧,頁面會(huì)自動(dòng)滾動(dòng)到指定位置独郎。
【2】chatList存儲(chǔ)對(duì)話內(nèi)容,循環(huán)渲染對(duì)話框枚赡。orientation是左右位置氓癌,左邊是答案,右邊是用戶輸入贫橙。
【3】userLogoUrl是用戶頭像的url贪婉,如果用戶不授權(quán)使用用戶公開信息,則使用默認(rèn)的用戶頭像卢肃。
最后
其他的內(nèi)容就是一些判斷以及解析數(shù)據(jù)疲迂。
源代碼地址:
鏈接: https://pan.baidu.com/s/1kVeKjeZ 密碼: avpb