查看: 1167|回复: 22

【微信小程序开发教程】智能对话开发

[复制链接]

49

主题

60

帖子

4335

积分

论坛元老

Rank: 8Rank: 8

积分
4335
发表于 2017-8-23 11:25:11 | 显示全部楼层 |阅读模式

登录后查看更多内容,推荐微信扫码快速登录

您需要 登录 才可以下载或查看,没有帐号?【建议使用下方微信快捷登录注册】

x
本帖最后由 wuli球球 于 2017-8-23 11:31 编辑

这段时间开发了一个智能对话的微信小程序,下面就把这个介绍一下。0.介绍界面:对话:功能:目前支持闲聊,问时间,问天气,算24点,单位换算,汇率查询,邮政编码,笑话,故事,算数功能。1.智能对话接口首先是对话...


0.介绍
界面:

对话:


功能:目前支持闲聊,问时间,问天气,算24点,单位换算,汇率查询,邮政编码,笑话,故事,算数功能。


1.智能对话接口
首先是对话的接口,用的是OLAMI的接口,可以自己定义需要的对话,也有系统提供的对话模块。
对话模块定义好之后,查看API文档,将对话通过API发送之后就可以得到回答。


API调用代码

  1. NLIRequest:function(corpus,arg) { // corpus是要发送的对话;arg是回调方法
  2.     var that = this;
  3.     // appkey
  4.     var appkey = that.globalData.NLPAppkey;
  5.     // appsecret
  6.     var appSecret = that.globalData.NLPAppSecret;
  7.     var api = "nli";
  8.     var timestamp = new Date().getTime();
  9.     // MD5签名
  10.     var sign = MD5.md5(appSecret + "api=" + api + "appkey=" + appkey + "timestamp=" + timestamp + appSecret);
  11.     var rqJson = { "data": { "input_type": 1, "text": corpus }, "data_type": "stt" };
  12.     var rq = JSON.stringify(rqJson);
  13.     var nliUrl = that.globalData.NLPUrl;
  14.     // cusid是用来实现上下文的,可以自己随意定义内容,要够长够随机
  15.     var cusid = that.globalData.NLPCusid;
  16.     console.log("[Console log]:NLIRequest(),URL:" + nliUrl);
  17.     wx.request({
  18.       url: nliUrl,
  19.       data: {
  20.         appkey: appkey,
  21.         api: api,
  22.         timestamp: timestamp,
  23.         sign: sign,
  24.         rq: rq,
  25.         cusid: cusid,
  26.       },
  27.       header: { 'content-type': 'application/x-www-form-urlencoded' },
  28.       method: 'POST',
  29.       success: function (res) {
  30.         var resData = res.data;
  31.         console.log("[Console log]:NLIRequest() success...");
  32.         console.log("[Console log]:Result:");
  33.         console.log(resData);
  34.         var nli = JSON.stringify(resData);
  35.         //回调函数,解析数据
  36.         typeof arg.success == "function" && arg.success(nli);
  37.       },
  38.       fail: function (res) {
  39.         console.log("[Console log]:NLIRequest() failed...");
  40.         console.error("[Console log]:Error Message:" + res.errMsg);
  41.         typeof arg.fail == "function" && arg.fail();
  42.       },
  43.       complete: function () {
  44.         console.log("[Console log]:NLIRequest() complete...");
  45.         typeof arg.complete == "function" && arg.complete();
  46.       }
  47.     })
  48.   }
复制代码


2.对话内容显示
前端显示代码
  1. {{item.text}}  {{item.text}}{{item.url}}
复制代码

语义解析技术由OLAMI提供【1】scroll-into-view=”{{scrolltop}}”是将对话滚动到最新位置,在js中把最新的id赋给scrolltop,页面会自动滚动到指定位置。
【2】chatList存储对话内容,循环渲染对话框。orientation是左右位置,左边是答案,右边是用户输入。
【3】userLogoUrl是用户头像的url,如果用户不授权使用用户公开信息,则使用默认的用户头像。


最后
其他的内容就是一些判断以及解析数据。
源代码地址:
游客,如果您要查看本帖隐藏内容请回复



回复

使用道具 举报

0

主题

25

帖子

23

积分

新手上路

Rank: 1

积分
23
发表于 2017-8-25 12:18:39 | 显示全部楼层

回帖奖励 +1 金钱

学习学习
回复

使用道具 举报

0

主题

5

帖子

27

积分

新手上路

Rank: 1

积分
27
发表于 2017-11-6 15:20:25 | 显示全部楼层
比较流弊,,鼎一下
回复

使用道具 举报

0

主题

3

帖子

25

积分

新手上路

Rank: 1

积分
25
发表于 2017-11-12 21:24:56 来自手机 | 显示全部楼层
感谢分享!!!
回复

使用道具 举报

0

主题

3

帖子

25

积分

新手上路

Rank: 1

积分
25
发表于 2017-11-12 21:26:45 来自手机 | 显示全部楼层
好东西!
回复

使用道具 举报

0

主题

4

帖子

21

积分

新手上路

Rank: 1

积分
21
发表于 2017-11-20 19:19:27 | 显示全部楼层
666666666666666666666666!!!!!
回复

使用道具 举报

0

主题

5

帖子

29

积分

新手上路

Rank: 1

积分
29
发表于 2017-11-23 14:03:01 | 显示全部楼层
向楼主学习
回复

使用道具 举报

0

主题

16

帖子

17

积分

新手上路

Rank: 1

积分
17
发表于 2017-12-31 00:56:44 | 显示全部楼层
Thank you
学习
回复

使用道具 举报

0

主题

1

帖子

4

积分

新手上路

Rank: 1

积分
4
发表于 2018-1-9 16:33:38 | 显示全部楼层
厉害了,谢谢大佬分享
回复

使用道具 举报

0

主题

6

帖子

12

积分

新手上路

Rank: 1

积分
12
发表于 2018-1-12 16:12:03 | 显示全部楼层
回复

使用道具 举报

本版积分规则

QQ|Archiver|手机版|小黑屋|小程序大全|小程序开发者论坛-汇集最优质源码、开发者教程、小程序资源

GMT+8, 2018-8-15 05:26 , Processed in 0.181956 second(s), 9 queries , File On.

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表