您现在的位置: 微信小程序 > 微信小程序开

2021-01-02
来源:

基于对人工智能的兴趣和兴趣,我开始独自学习机器学习。像所有热爱AI的人一样,在一个孤独的探索旅程中,我几乎没有完成几次深度学习模型训练。

给我印象最深的是情感分类模型。他可以根据您的文字引起作者背后的情感和悲伤。

深度学习模型显示的“人性化”使我感到惊讶,因此我开始考虑如何将其“人性化”转化为帮助人们的工具。

基于情感模型构建上层应用程序,并使其向人类社会添加另一种烟花。

基于许多考虑,我最终选择开发一种微信“情感”小程序。

故事开始

在开发小程序之前,对我们小程序透彻了解是非常必要的。

什么是小程序

简单来说,与传统应用程序相比,微信小程序是一种全新的连接用户和服务的方式。它具有非常好的体验,可以在微信中轻松获取和传播。

小程序发展历史

实际上,小程序并非凭空出现的。当微信流行并成为几乎每个人都无法摆脱的社交工具时,托管微信的WebView逐渐成为最大的移动Web门户。 WebView的每日访问量甚至超过了所有浏览器的访问总和。尽管微信 WebView的日常活动数据无法通过第三方获得,但这一客观事实间接促进了小程序 WebView的诞生。

实际上,在小程序正式进入人们的视线之前,微信已经具有类似的js调用界面。这是调用微信 js-bridge本机组件浏览图片的示例:

WeixinJSBridge.invoke('imagePreview', { current: 'http://inews.com', urls: [ // 所有图片的URL列表,数组格式 'https://img/1.jpg', 'https://img/2.jpg', 'https://img/3.jpg' ] }, function(res) { console.log(res.err_msg) }) 复制代码

这种类型的js接口最初是为腾讯内部人员使用的,但许多开发人员偶然发现并使用了它。这已逐渐成为微信中网页的标准。

在15年之初,微信正式发布了一套专用于Web开发的工具包,称为js-sdk。在此工具包中,例如微信付款,录音,语音识别和等待数十个界面。这为所有以前从未打开过的Web开发人员打开了一扇新门,使所有开发人员可以自由使用微信开发的本机功能,这使他们可以完成一些以前不可能完成或很难做到的事情。

js-sdk完美地继承了WeixinJSBridge的特性,并且从仅对内部开放变为对外部开放。通过其公开的微信调用界面,所有Web开发人员都具有更多的功能来操作微信功能。但是,此模型不能很好地解决移动Web体验问题:

因此,增强版js-sdk诞生了,它具有一个非常重要的新功能,称为:微信 Web资源的脱机存储。

以下文字摘自内部文件(最终未对公众开放):

微信 Web资源的脱机存储是基于微信的Web开发人员的Web加速解决方案。

通过使用微信脱机存储,Web开发人员可以使用微信提供的资源存储功能直接在本地加载Web资源,而不必将其从服务器中拉出,从而减少了Web页面的加载时间。为微信用户提供更好的Web浏览体验。每个正式帐户下的所有Web应用程序都可以缓存多达5M的资源。

我相信每个人都已经了解了,这实际上是HTML5中应用程序缓存的增强版本。

但是,经过多次测试,我发现仍然存在尚未完全解决的问题:

最后微信意识到js-sdk无法解决这些问题。这需要一个全新的系统来完成,并且该系统必须具有以下功能:

这是小程序的起源。

故事始于序言

首先,请原谅我,本文不会教您如何以零基础小程序进行开发。如果您是软件开发的新手。然后,我建议您了解一些基本的js语法和相应的前端知识。

在掌握了前端的基础知识之后,我相信借助小程序前端组件的官方文档,任何人都可以快速开始开发小程序。

下面我主要与您分享以下两项核心知识和最具成本效益的两项小程序开发技能:

小程序云开发

像您一样,当我第一次想到开发小程序时,我有很多担忧:

出于这些考虑,我小心翼翼地打开了微信正式文件。大脑经过分布式阅读后,我发现了云的发展关键词。

什么是云开发?

微信官方文档对此进行了解释:

开发人员可以使用云来开发微信小程序,小型游戏并使用云功能,而无需构建服务器。

云开发为开发人员提供了完整的本机云支持和微信服务支持,削弱了后端以及运维的概念,不需要构建服务器,并且使用平台提供的API进行核心业务开发以实现快速启动和迭代同时,此功能与开发人员使用的云服务兼容,并且不互斥。

云开发提供了一些基本功能:

简单来说,通过云开发,我可以在不购买服务器的情况下开发全栈小程序。

嘿,是的,这就是我想要的。

如何构建小程序云开发环境

那么如何构建云开发环境?全面的正式文档,我总结了一组简约的建筑教程,您可以将其用作参考。

构建简约的云开发环境的四个步骤:

到目前为止,云环境已经完成。

什么是云功能?

设置了云开发环境之后,就该看看什么是云功能了。

ai小程序开发

官方定义如下:

云功能是在云中运行的一段代码。无需管理服务器。它是用开发工具编写的,可以一键上传和部署以运行后端代码。

简单来说,云功能是在云中运行的功能。

云功能有什么用?

云功能非常有用。

有了它,就相当于拥有一个“大后端”。所有业务逻辑和数据库操作都可以封装在云函数中并调用,这非常方便。

第一个云功能

有这么多原则,是时候战斗了。

右键单击云功能环境(cloudfunctions | xxxxxxx)并创建一个名为test的新云功能:

您可以看到默认文件(index.js)中包含云功能代码(获取当前微信用户上下文并返回用户信息):

// 云函数入口文件 const cloud = require('wx-server-sdk') cloud.init() // 云函数入口函数 exports.main = async (event, context) => { const wxContext = cloud.getWXContext() return { event, openid: wxContext.OPENID, appid: wxContext.APPID, unionid: wxContext.UNIONID, } } 复制代码

这时,您需要打开命令行并输入要运行npm install的目录以安装wx-server-sdk(如果目录中没有node_modules,则需要首先运行npm init):

最后,右键单击云功能并选择打开云功能的本地调试,然后单击右下角的进行调用:

您可以看到函数成功执行并获得了返回值(openid和其他信息...)

到目前为止,祝贺我们迅速完成了第一个云功能。

如何在小程序中快速调用AI模型。清晨的灵感

我相信每个人都对如何在云功能中以“零成本”调用AI功能感到好奇。

实际上,一开始我很沮丧。尽管小程序具有云功能,但由于以下原因,仍无法以``零成本''轻松调用AI模型:

但是在一个明媚的早晨,起床后,我突然有了灵感:

除了动手操作之外,没有其他想法,因此我访问了腾讯云控制台的自然语言处理模块。

按照说明激活服务后,我进入了API密钥管理并记录了API密钥:

那么如何在小程序中调用它?我再次陷入沉思...

云函数调用AI模型

经过长时间的探索,我返回到测试云功能目录中的命令行并安装了腾讯云服务调用包:

npm install tencentcloud-sdk-nodejs 复制代码

然后修改测试云功能(index.js):

// 云函数入口文件 const cloud = require('wx-server-sdk') const tencentcloud = require("tencentcloud-sdk-nodejs"); cloud.init() // 云函数入口函数 exports.main = async (event, context) => { const NlpClient = tencentcloud.nlp.v20190408.Client; const models = tencentcloud.nlp.v20190408.Models; const Credential = tencentcloud.common.Credential; const ClientProfile = tencentcloud.common.ClientProfile; const HttpProfile = tencentcloud.common.HttpProfile; let cred = new Credential(event.secretId, event.secretKey); let httpProfile = new HttpProfile(); httpProfile.endpoint = "nlp.tencentcloudapi.com"; let clientProfile = new ClientProfile(); clientProfile.httpProfile = httpProfile; let client = new NlpClient(cred, "ap-guangzhou", clientProfile); let req = new models.SentimentAnalysisRequest(); let text = event.text let params = '{"Text":\"' + text + '\"}' console.log('待预测字符串: ' + text) req.from_json_string(params); client.SentimentAnalysis(req, function (errMsg, response) { if (errMsg) { console.log(errMsg) } console.log('AI 预测情绪正值: ' + response.Positive) console.log('AI 预测情绪负值: ' + response.Negative) }) } 复制代码

在这段代码中,我通过腾讯云账户中的密钥连接了AI情感预测界面,最后打印了情感预测结果。

接下来,我打开本地云函数调用窗口并传递相应的参数:

点击通话后,我终于看到了AI模型的预测结果:

最后,我成功地使用了cloud函数来调用免费的AI开放界面

这时,我的眼中已经流下了眼泪。除了感动之外,还有一点满足感。事实证明,Cloud Development仍然可以像这样玩。

故事的结尾

在本文的这一点上,我相信每个人都已经理解并掌握了两个最重要的部分:

回想起来,整个小程序开发过程大约花了三天两夜,整个过程可能类似于“编程马拉松”。

编程马拉松,也称为黑客节,黑客节或编程节,是黑客之间流传的新词汇。编程马拉松是一项活动。

在此活动中,计算机程序员和与软件开发相关的其他人员,例如图形设计人员,界面设计人员和项目经理,聚集在一起,以紧密协作的方式从事软件项目。

编程马拉松的灵魂在于合作编写程序和应用程序。编程马拉松的时间通常从几天到一周不等。

-维基百科

因此,在“疯狂”发展之后,日记小程序的原型诞生了。

尽管前端页面不太复杂,但确实已经投入了大量的开发工作。

开发完成后,我不在乎是否有人真正使用它。因为我从他身上收获了献身于​​发展的喜悦。

分享