flask 部署服务

主要步骤

  • 通过flask部署模型, 第一步是训练模型,此处用简单的hello word 方法替代,测试结果。
  • 通过定义controller,设定模型/方法输入,输出
  • 建立app程序,运行该程序,启动flask服务。

通过flask 与swag进行模型部署。

1. 建立方法, hello_word.py

def print_text(x):
    result = x + "success"
    return result

2. 建立test_controller.py

1)text_standardize中添加输入与输出的描述,展现在swag web 端。
2) 指定输入,与输出。

from flask import Flask, jsonify, request
#from python.service.text_classification_service import BertIntentModel, intent_recognition
from hello_word import print_text
from flask import Blueprint
test_controller = Blueprint('test_controller', __name__)

@test_controller.route('/testFlask', methods=['GET'])
def text_standardize():
    """
    flask test接口
    ---
    tags:
      - test
    description:
        hello world
    parameters:
      - name: text
        in: query
        type: string
        required: true
        description: 输入中文句子

    responses:
      201:
          description: 处理成功
          example: {'code':1,'message':处理成功}
      406:
        description: 处理失败,参数有误等
    """
    text = request.args.get('text')
    result = print_text(text)  # 方法入口

    return jsonify(
        retCode=201,
        result=result
    )

3.建立app.py启动服务

swagger主要是配置web的界面

#coding=utf-8
#import sys
#sys.path.append("..")
from flask import Flask
from gevent import pywsgi
from test_controller import test_controller  # test_controller主要是添加swag中的说你
from flasgger import Swagger  # pip install flasgger -i https://pypi.tuna.tsinghua.edu.cn/simple/
# http://127.0.0.1:8089/apidocs/index.html  ## 本地访问链接

app = Flask(__name__)
# 注册蓝图,并指定其对应的前缀(url_prefix)
app.register_blueprint(test_controller, url_prefix="/nlpBaseSvr")
swagger_config = Swagger.DEFAULT_CONFIG
swagger_config['title'] = 'Rank基础服务'    # 配置大标题
swagger_config['description'] = '主要提供【召回】、【排序】等基础服务接口'    # 配置公共描述内容
#swagger_config['host'] = config.SWAGGER_HOST    # 请求域名
Swagger(app, config=swagger_config)

server = pywsgi.WSGIServer(("**.**.**.**", 5001), app)  # 127.0.0.1 本地ip
server.serve_forever()

4. web端访问

http://...:5001/apidocs/index.html
flask 部署服务_第1张图片

注意事项:
1)如果本地web链接远程服务器,则ip配置为远程服务器。
2)如果端口被占用,则通过 netstat -tunlp,进行查看,如果确定该进程不使用,则可以 kill -9 10277进行删掉。或者给ip换个新的端口
在这里插入图片描述

你可能感兴趣的:(python学习,flask,python,后端)