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