【模型部署】使用Flask部署演算法模型
阿新 • • 發佈:2020-08-20
Flask介紹
Flask是一個非常輕量級的Python Web框架。使用Flask可以很容易地部署演算法服務,通過HTTP方式對外提供API響應介面。
以敏感詞檢測演算法為例。 如果要部署其他演算法,程式碼對應做一些修改既可。
部署程式碼
from flask import Flask, request from sensitive_word_detect import SensitiveWordDetect app = Flask(__name__) # 此處做一些檔案讀取、類例項化、計算圖載入等預處理的工作 sensitive_words_path = './word_files/senti_words.txt' # 敏感詞列表 stopWords_path = './word_files/stop_words.txt' # 特殊符號列表 detector = SensitiveWordDetect(sensitive_words_path, stopWords_path) @app.route('/sentiwords', methods=("POST",)) def sentiwords(): line = request.form['line'] sensitive_words = '' if line.strip() != '': _, sensitive_lst = detector.replace_sensitive_word(line) for word in sensitive_lst: sensitive_words += word + ',' if sensitive_words.strip() == '': rst = { "legal":"通過", "body":[] } else: rst_lst = [] if sensitive_words.strip() != '': rst_lst.append({ "type":"包含敏感詞", "content":sensitive_words }) rst = { "legal":"不通過", "body":rst_lst } return rst if __name__ == '__main__': app.config['JSON_AS_ASCII'] = False app.run(host='0.0.0.0', port=8000)
呼叫測試
# coding=UTF-8 from datetime import datetime import requests starttime = datetime.now() text_path = "./test_files/000.txt" # 文字路徑 content = [] # 臨時儲存文字 with open(text_path, 'r', encoding='utf-8') as f: content = f.readlines() line = ''.join(content) data = {"line": line} headers = { 'Connection': 'close', } r = requests.post('http://0.0.0.0:8000/sentiwords', data=data, headers=headers) if str(r.status_code) != '200': print("status_code: ", str(r.status_code)) print(r.text) elif r.json()['legal'] == '不通過': for temp in r.json()['body']: if temp['type'] == '包含敏感詞': sensitive_word_result = temp['content'] print(sensitive_word_result) endtime = datetime.now() time_consume = endtime - starttime print('敏感詞檢測完成,共用時{}'.format(time_consume))