手机版

微信小程序实战——智能秘籍“远程知识”来源分享(基于olami的语义理解).

时间:2021-12-12 来源:互联网 编辑:宝哥软件园 浏览:

这篇文章的原地址是:http://blog.csdn.net/happycxz/article/details/75432928.

“远程知识”微信小程序所有源代码打包下载:http://download.csdn.net/download/happycxz/9905134

微信小程序智能生活小秘书开发详解

实现了智能生活信息查询的小秘书功能,支持天气、新闻、日历、汇率、笑话、故事、百科、诗歌、邮政编码、区号、菜谱、股票、节目预告等,还支持聊天、24点计数、数学计算、单位换算、购物、搜索等功能。

有三种使用方法:摇动、点击界面按钮和手动输入。

欢迎转载

微信小程序实战——智能小秘“遥知之”源码分享(语义理解基于olami) ...(图1) 微信小程序实战——智能小秘“遥知之”源码分享(语义理解基于olami) ...(图2)

实现功能

微信小程序实战——智能小秘“遥知之”源码分享(语义理解基于olami) ...(图3)

扫码试用(左右皆可)

免费开放语义接口平台olami.ai微信小程序平台JS,CSS

界面展示

微信小程序实战——智能小秘“遥知之”源码分享(语义理解基于olami) ...(图4)

基本上扩展了正式案例的目录结构和命名。index.xx是与首页相关的代码,logs.xx是与日志页相关的代码。

比官方目录结构多两个文件:

config.js

因为使用了一些配置,所以最好将其打包。js。

pics/bg.jpg

小程序背景图,在开发环境中加载本地文件作为背景图是有效的,但是在预览体验时效果不佳。网上有人说不支持本地文件,所以这里这张图其实是不用的,只是暂时保存。

开发资源

源码分析

提供了两个公共接口,分别是获取用户微信账号的昵称和位置,以及获取当前地理位置。

const corpusList=require('。/config ')。corpusvar UTIL=require('。/utils/util . js ');App({ onshow : function(){ util . log(' App Show ')},onhide : function(){ util . log(' App Hide ')},onlaunch : function(){ util . log(' App Launch ')this . updateuser location()},updateuser location : function()}

var that = this wx.getLocation({ //type: 'wgs84', // gps原始坐标 type: 'gcj02', //国家标准加密坐标 success: function (res) { that.globalData.latitude = res.latitude that.globalData.longitude = res.longitude that.globalData.speed = res.speed //var accuracy = res.accuracy UTIL.log('REFRESH LOCATION: ' + that.globalData.latitude + ' | ' + that.globalData.longitude + ' , speed: ' + that.globalData.speed) }, fail: function(res) { UTIL.log('REFRESH LOCATION FAILED...') } }) }, getUserInfo:function(cb){ var that = this if(this.globalData.userInfo){ typeof cb == "function" && cb(this.globalData.userInfo) }else{ //调用登录接口 wx.login({ success: function () { wx.getUserInfo({ success: function (res) { that.globalData.userInfo = res.userInfo that.globalData.custId = UTIL.getUserUnique(that.globalData.userInfo); typeof cb == "function" && cb(that.globalData.userInfo) } }) }, fail: function () { UTIL.log('登录WX失败了!') } }) } }, clearUserInfo: function() { var that = this that.globalData.userInfo = null; that.globalData.hasLogin = false; }, globalData:{ userInfo:null, corpus: corpusList, custId: '', latitude: 0.0, longitude: 0.0, speed: 0, }})

app.json

配置小程序窗体相关属性:标题名称,背景色,网络超时等。

配置首页面为pages/index/index。

{  "pages": [    "pages/index/index",    "pages/logs/logs"  ],  "window": {    "backgroundTextStyle": "black",    "navigationBarBackgroundColor": "#F8F8F8",    "navigationBarTitleText": "遥知之 -- olami语义支持",    "navigationBarTextStyle": "black",    "backgroundColor": "#F8F8F8"  },  "networkTimeout": {    "request": 10000,    "connectSocket": 10000,    "uploadFile": 10000,    "downloadFile": 10000  }}

app.wxss

配置了“遥知之”小程序container全局样式

/**app.wxss**/.container {  height: 100%;  display: flex;  flex-direction: column;  align-items: center;  justify-content: center;  box-sizing: border-box;}

配置文件:config.js

保存一些配置信息,包括NLI的key和secret,还有小程序中预置的语料集合。

module.exports = {  //NLI appkey  appkey: `b4118cd178064b45b7c8f1242bcde31f`,  //NLI appsecret  appsecret: `7908028332a64e47b8336d71ad3ce9ab`,  corpus: [    // '闲聊',    // '天气',    // '诗词',    // '单位换算',    // '新闻',    // '算24点',    // '菜谱',    // '汇率',    // '邮编',    // '区号',    // '股票',    // '日历',    // '节目预告',    // '笑话',    // '故事',    // '购物',    // '数学运算',    // '百科',    // '搜索',    '你今年多大啦',    '上海今天天气如何',    '北京的呢',    '李白写过什么诗',    '我要听李白的静夜思',    '背一首将进酒',    '一公里等于多少英尺',    '我要看体育新闻',    '4567算24点',    '红烧肉的做法',    '1美元能换算多少人民币',    '查一下南昌的邮编',    '郑州的区号是多少',    '中国石油的股价',    '今年中秋节是哪一天',    '明晚湖南卫视放什么节目',    '来个笑话',    '讲个故事听听',    '我要买电脑',    '1加到100等于多少',    '黄山有多高',    '百度搜一下薛之谦的照片',  ]};

utils目录文件:GUID.js, MD5.js, NLI.js, util.js

获取随机GUID:GUID.js

//表示全局唯一标识符 (GUID)。function Guid(g) {  var arr = new Array(); //存放32位数值的数组  if (typeof (g) == "string") { //如果构造函数的参数为字符串    InitByString(arr, g);  } else {    InitByOther(arr);  }  //返回一个值,该值指示 Guid 的两个实例是否表示同一个值。  this.Equals = function (o) {    if (o && o.IsGuid) {      return this.ToString() == o.ToString();    } else {      return false;    }  }  //Guid对象的标记  this.IsGuid = function () { }  //返回 Guid 类的此实例值的 String 表示形式。  this.ToString = function (format) {    if (typeof (format) == "string") {      if (format == "N" || format == "D" || format == "B" || format == "P") {        return ToStringWithFormat(arr, format);      } else {        return ToStringWithFormat(arr, "D");      }    } else {      return ToStringWithFormat(arr, "D");    }  }  //由字符串加载  function InitByString(arr, g) {    g = g.replace(/\{|\(|\)|\}|-/g, "");    g = g.toLowerCase();    if (g.length != 32 || g.search(/[^0-9,a-f]/i) != -1) {      InitByOther(arr);    } else {      for (var i = 0; i < g.length; i++) {        arr.push(g[i]);      }

版权声明:微信小程序实战——智能秘籍“远程知识”来源分享(基于olami的语义理解).是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。