微信小程序的人工智能模型部署(flask)

目录

写在前面:

具体做法:

后端:

前端:

其他:


写在前面:

我使用的微信小程序开发工具是:“微信开发者工具”,当然你用其他的开发工具应该也差别不大;

人工智能模型用的是pytorch;

具体不介绍人工智能模型的保存,主要介绍一下flask的写法;

具体做法:

后端:

首先你要把人工智能模型先保存下来,因为你不可能每次运行这个模型的时候都重新训练一次对吧?关于模型保存,tensorflow和pytorch等都有不同的类似方法,这里就不详细介绍了,主要是介绍一下,保存模型后的,flask的写法。

写flask的时候,先确保你已经配置过环境了(如下,如果报错就是环境问题,在相应的地方pip一下环境就行):

 同时在同个文件夹下,声明你的人工智能模型:

具体代码:

import os.path

from flask import Flask, request
from itsdangerous import json

from project_xhy_.Test9_efficientNet import predict


app = Flask(__name__)# 声明app




@app.route('/ppp', methods=['GET', 'POST'])
#’/ppp‘要与下面的定义方法的名字一样,指的就是路径,可以有多个
#methods需要自己去阅读一下相关文档,看一下你的需求是什么,我这里只用到了POST
def ppp():
    if request.method == 'POST':#当请求方法为POST的时候,执行如下操作
        graphl = request.form.get("attl")#获取前端所提供的图片
        infol = predict.get_predict(graphl)#对图片进行模型预测

    return json.dumps(infol, ensure_ascii=False)#将模型预测的结果返回给前端


if __name__ == '__main__':
    app.run(host='0.0.0.0',port=9800)
    #host=0.0.0.0,是指这个模型在本地网络运行,port=9800,就是端口号为9800
    #如果是跑在服务器上的话,把host这个改一下就行
    #最好自己看一下自己电脑哪个端口可以用,免得出错;

前端:

在地址处需要填写相应的地址,需要与flask运行时报出的地址一致(如下,划红线的就是需要填写的地址),另外,你运行前端代码的时候,确保你的flask代码一直在运行,不要关闭:
微信小程序的人工智能模型部署(flask)_第1张图片

if_sick(){ 
    var that = this
    wx.request({
      url:'http://地址/ppp',//输入请求的ip地址
      method:'POST',//请求的方法
      header: {'content-type': "application/x-www-form-urlencoded",},
      data:{
        attl:'C:/Users/asus/Desktop/img/l.jpg'//传递的内容
      },
      success: function(res){//当请求成功后的操作
        console.log(res.data)
        that.setData({
          lr:res.data//将返回结果赋值给本地的lr
        })
        console.log("11",that.data.lr)//在控制台输出结果,检验是否正确
      }
    })

//跟上面一样,重复请求,只是传入的东西不一样,软件功能要求
    wx.request({
      url:'http://地址/ppp',
      method:'POST',
      header: {'content-type': "application/x-www-form-urlencoded",},
      data:{
        attl:'C:/Users/asus/Desktop/img/r.jpg'
      },
      success: function(res){
        console.log(res.data)
        that.setData({
          rr:res.data
        })
        console.log("22",that.data.rr)
      }
    })

//点击按钮后将返回的数据传递到下一页面,因为ai识别是需要时间的,所以加点延迟,避免传递空值
    wx.showToast({
      title: '识别中',
      icon: 'none',
      duration: 5000, //弹出提示框时长
      mask: true,
      success(data) {
        setTimeout(function () {
          //要延时执行的代码
          wx.navigateTo({
            url: "../../pages/issueReport/issueReport?lefteye="+that.data.eye_left+"&righteye="+that.data.eye_right+"&name="+that.data.patientname+"&id="+that.data.patientid+"&rr="+that.data.rr+"&lr="+that.data.lr+"",
          })
        }, 5000) //延迟时间
      }
    })

其他:

1. 在微信开发者工具里进行本地调试的时候记得调整以下两个地方:

        (1)在"详情"的本地设置里勾选:

微信小程序的人工智能模型部署(flask)_第2张图片

        (2)在"设置" 的"代理设置"里选择如下:

微信小程序的人工智能模型部署(flask)_第3张图片

你可能感兴趣的:(人工智能,python,flask,后端)