配置python程序debug/run,避免每次运行都会重复加载数据集或模型,节约大量等待时间
使用轻量级的后端框架flask运行要加载的模型,作为后端,保持在后端运行
调用程序时直接使用url访问即可
需要用到的依赖包:
pip install flask
逐步构建
首先新建一个文件运行flask的文件,文件名随便:
from flask import Flask, requestapp = Flask(__name__)@app.route('/model', methods=['GET'])
def get_model():if request.method == 'GET':param = request.args.get("input", None)"""调用模型处理""" # 这里直接把传入的输出,可以在这里加入调用模型的逻辑return paramif __name__ == '__main__':app.run(host='127.0.0.1', debug=True, port='8999') # debug模式运行,如果不想看日志可以使debug=False
在本地浏览器中运行:http://127.0.0.1:8999/model?input=“aaa”,可以看到输出:
"aaa"
保持这个程序全程一直运行即可。
再次新建一个文件,用于调用这个接口:
import json
import requestsdef use_flask(analyze_input) -> json: # 传入待分析的文本,与tokenurl = "http://127.0.0.1:8999/model" # 这里是访问的urlrequest = requests.get(url, params={'input': analyze_input # 这里传入})if request.status_code == 200:return request.textif __name__ == '__main__':data = use_flask("my_input_value")print(data)
当我们调试主程序时,不论运行多少次这个文件,都不会影响到flask的后端程序,因此可以方便我们多次快速调试。
如果有多个参数,可以在requests.get(url, params)这里添加
完整代码
Flask文件:
from flask import Flask, requestapp = Flask(__name__)@app.route('/model', methods=['GET'])
def get_model():if request.method == 'GET':param = request.args.get("input", None)"""调用模型处理"""return paramif __name__ == '__main__':app.run(host='127.0.0.1', debug=True, port='8999')
使用示例:
import json
import requestsdef use_flask(analyze_input) -> json: # 传入待分析的文本,与tokenurl = "http://127.0.0.1:8999/model"request = requests.get(url, params={'input': analyze_input})if request.status_code == 200:return request.textif __name__ == '__main__':data = use_flask("my_input_value")print(data)
参考链接:https://blog.csdn.net/weixin_35757704/article/details/122923201