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))