如何使用Python开发微信小程序?

如何使用Python开发微信小程序?,第1张

小程序自2017年1月9日上线以来,随着一年多的发展,今年可以说是小程序流量红利爆发的一年。那么小程序的爆发除了基于微信11亿用户基础上,还有哪些优势特点让其自身拥有爆点呢?完全可以试试国内的云丰网的商城四合一,包含小程序商城,模板设计,比有赞微盟还好用。

创建步骤:

1.申请免费且支持python的服务器,新浪云sae,新建SAE应用之后,有两种代码提交方式,建议使用SVN(因为git支持代码提交,但不支持环境配置);

2.将对应版本的信息复制到微信开发-基本配置-URL,提交显示错误,因为还没有写代码,可以先用web框webpy架写个网页;

查看webpy使用说明:http://www.webpy.org/install.zh-cn

查看ase进行python开发入门说明:http://www.sinacloud.com/doc/sae/python/index.html

3.配置信息,告诉新浪云需要什么运行环境。点击代码管理-编辑代码,将用到的第三方库信息写入config.yaml,注意破折号,冒号后面空格!!

libraries:

- name: webpy

  version: "0.36"

- name: lxml

  version: "2.3.4"

在index.wsgi文件中写入python启动程序

新建文件,写入接受微信get请求验证的Python文件

4.在index.wgsi中写入以下信息:

#coding=utf-8

import os

import sae

import web

from weixinInterface import WeixinInterface

#配置web的路由

urls = (

    '/weixin','WeixinInterface'

)

#拼接路径

app_root=os.path.dirname(__file__)

templates_root = os.path.join(app_root,'templates')

#渲染模版

render = web.template.render(templates_root)

#启动app

app = web.application(urls,globals()).wsgifunc()

application = sae.create_wsgi_app(app)

5.在自己编写的Python文件中写入微信验证和接受信息的程序

#coding=utf-8

import hashlib

import web

import time

import os

from lxml import etree

#hashlib用于加密,md5,hash等

#lxml用来解析xml文件

class WeixinInterface(object):

    #初始化

    def __init__(self):

        #拼接路径

        self.app_root = os.path.dirname(__file__)

        self.templates_root = os.path.join(self.app_root,'templates')

        #渲染模版

        self.render = web.template.render(self.templates_root)

    #使用get方法,接收微信的get请求,看开发者文档的说明

    #http://mp.weixin.qq.com/wiki/8/f9a0b8382e0b77d87b3bcc1ce6fbc104.html

    def GET(self):

        data = web.input()

        signature = data.signature#微信加密签名

        timestamp = data.timestamp#时间戳

        nonce = data.nonce#随机数

        echostr = data.echostr#随即字符串

        token = 'zq90857'#自己设置的token

        #将token、timestamp、nonce三个参数进行字典序排序

        list = [token,timestamp,nonce]

        list.sort()

        #将三个参数字符串拼接成一个字符串进行sha1加密

        sha1=hashlib.sha1()

        map(sha1.update,list)

        temStr = sha1.hexdigest()#加密

        #判断

        if temStr == signature:

            return echostr

6.假设接收文字信息,按照开发者文档的要求,配置template文件夹下reply_text.xml文件

$def with(toUser,fromUser,createtime,content)

<xml>

 <ToUserName><![CDATA[$toUser]]></ToUserName>

 <FromUserName><![CDATA[$fromUser]]></FromUserName> 

 <CreateTime>$createtime</CreateTime>

 <MsgType><![CDATA[text]]></MsgType>

 <Content><![CDATA[$content]]></Content>

 </xml>

朋友圈很多人都想学python,有一个很重要的原因是它非常适合入门。对于 人工智能算法 的开发,python有其他编程语言所没有的独特优势, 代码量少 ,开发者只需把精力集中在算法研究上面。

本文介绍一个用python开发的,自动与美女尬聊的小软件。以下都是满满的干货,是我工作之余时写的,经过不断优化,现在分享给大家。那现在就让我们抓紧时间开始吧!

准备:

编程工具IDE:pycharm

python版本: 3.6.0

首先新建一个py文件,命名为:ai_chat.py

PS: 以下五步的代码直接复制到单个py文件里面就可以直接运行。为了让读者方便写代码,我把代码都贴出来了,但是排版存在问题,我又把在pycharm的代码排版给截图出来。

第一步: 引入关键包

简单介绍一下上面几个包的作用: pickle 包 是用来对数据序列化存文件、反序列化读取文件,是人类不可读的,但是计算机去读取时速度超快。(就是用记事本打开是乱码)。 而 json包 是一种文本序列化,是人类可读的,方便你对其进行修改(记事本打开,可以看到里面所有内容,而且都认识。) gensim 包 是自然语言处理的其中一个python包,简单容易使用,是入门NLP算法必用的一个python包。 jieba包 是用来分词,对于算法大咖来说效果一般般,但是它的速度非常快,适合入门使用。

以上这些包,不是关键,学习的时候,可以先跳过。等理解整个程序流程后,可以一个一个包有针对性地去看文档。

第二步:静态配置

这里path指的是对话语料(训练数据)存放的位置,model_path是模型存储的路径。

这里是个人编程的习惯,我习惯把一些配置,例如:文件路径、模型存放路径、模型参数统一放在一个类中。当然,实际项目开发的时候,是用config 文件存放,不会直接写在代码里,这里为了演示方便,就写在一起,也方便运行。

第三步: 编写一个类,实现导数据、模型训练、对话预测一体化

首次运行的时候,会从静态配置中读取训练数据的路径,读取数据,进行训练,并把训练好的模型存储到指定的模型路径。后续运行,是直接导入模型,就不用再次训练了。

对于model类,我们一个一个来介绍。

initialize() 函数 __init__() 函数 是对象初始化和实例化,其中包括基本参数的赋值、模型的导入、模型的训练、模型的保存、最后返回用户一个对象。

__train_model() 函数,对问题进行分词,使用 gesim 实现词袋模型,统计每个特征的 tf-idf , 建立稀疏矩阵,进而建立索引。

__save_model() 函数 和 __load_model() 函数 是成对出现的,很多项目都会有这两个函数,用于保存模型和导入模型。不同的是,本项目用的是文件存储的方式,实际上线用的是数据库

get_answer() 函数使用训练好的模型,对问题进行分析,最终把预测的回答内容反馈给用户。

第四步:写三个工具类型的函数,作为读写文件。

其中,获取对话材料,可以自主修改对话内容,作为机器的训练的数据。我这里只是给了几个简单的对话语料,实际上线的项目,需要大量的语料来训练,这样对话内容才饱满。

这三个工具函数,相对比较简单一些。其中 get_data() 函数,里面的数据是我自己编的,大家可以根据自己的习惯,添加自己的对话数据,这样最终训练的模型,对话方式会更贴近自己的说话方式。

第五步: 调用模型,进行对话预测

主函数main(), 就是你整个程序运行的起点,它控制着所有步骤。

运行结果:

程序后台运行结果:

如果有疑问想获取源码( 其实代码都在上面 ),可以后台私信我,回复:python智能对话。 我把源码发你。最后,感谢大家的阅读,祝大家工作生活愉快!


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11139524.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-13
下一篇 2023-05-13

发表评论

登录后才能评论

评论列表(0条)

保存