You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
161 lines
5.9 KiB
161 lines
5.9 KiB
from flask import Flask, request, jsonify,Response
|
|
import os
|
|
from checkPlaceName import checkPlaceName
|
|
from checkRepeatText import checkRepeatText
|
|
from checkCompanyName import checkCompanyName
|
|
from checkDocumentError import getDocumentError
|
|
from checkTitleName import checkTitleName
|
|
from flask_cors import CORS
|
|
import qwen_agenttext
|
|
app = Flask(__name__)
|
|
cros = CORS(app)
|
|
UPLOAD_FOLDER = 'uploads'
|
|
usableTag=[0,0,0,0,0,0,0,0]
|
|
if not os.path.exists(UPLOAD_FOLDER):
|
|
os.makedirs(UPLOAD_FOLDER)
|
|
@app.route('/upload', methods=['POST'])
|
|
def upload_file():
|
|
if 'file' not in request.files:
|
|
return jsonify({"error": "No file part"}), 400
|
|
file = request.files['file']
|
|
if file.filename == '':
|
|
return jsonify({"error": "No selected file"}), 400
|
|
if file:
|
|
filename = file.filename
|
|
file.save(os.path.join(UPLOAD_FOLDER,filename))
|
|
return jsonify({"message": "File uploaded successfully"}), 200
|
|
@app.route('/stream' ,methods=["GET", "POST"])
|
|
def stream_numbers():
|
|
context= request.args.get('context')
|
|
# def generate_numbers():
|
|
# event_id=0
|
|
# for number in range(1, 10):
|
|
# json_data = json.dumps({"number": number})
|
|
# print(json_data)
|
|
# event_id += 1
|
|
# yield f"id: {event_id}\n"
|
|
# yield f"event: time-update\n"
|
|
# yield f"data: {json_data}\n\n" # 每次生成一个数字就发送
|
|
# time.sleep(0.5) # 为了演示,加入短暂延迟
|
|
# json_data = json.dumps({"number": "done"})
|
|
# yield f"id: {1}\n"
|
|
# yield f"event: time-update\n"
|
|
# yield f"data: {json_data}\n\n" # 发送完成信号
|
|
|
|
headers = {
|
|
"Content-Type": "text/event-stream",
|
|
"Cache-Control": "no-cache",
|
|
"X-Accel-Buffering": "no",
|
|
"Access-Control-Allow-Origin": "*",
|
|
"Access-Control-Allow-Methods": "GET,POST",
|
|
"Access-Control-Allow-Headers": "x-requested-with,content-type",
|
|
}
|
|
return Response(qwen_agenttext.getxinx(context),headers=headers)
|
|
@app.route('/sse/checkRepeatText', methods=['GET'])
|
|
def checkRepeatTextWeb():
|
|
filename = request.args.get('filename')
|
|
|
|
def generate_checkRepeatText(filename):
|
|
id=0
|
|
try:
|
|
for i in checkRepeatText(filename):
|
|
yield f"id: {id+1}\n"
|
|
yield f"event: checkRepeatText\n"
|
|
yield f"data: {i}\n\n" # 发送完成信号
|
|
except Exception as e:
|
|
yield f"id: {id+1}\n"
|
|
yield f"event: checkRepeatText\n"
|
|
yield f"data: **程序出现异常**\n\n" # 发送完成信号
|
|
headers = {
|
|
"Content-Type": "text/event-stream",
|
|
"Cache-Control": "no-cache",
|
|
"X-Accel-Buffering": "no",
|
|
"Access-Control-Allow-Origin": "*",
|
|
"Access-Control-Allow-Methods": "GET,POST",
|
|
"Access-Control-Allow-Headers": "x-requested-with,content-type",
|
|
}
|
|
return Response(generate_checkRepeatText(filename), headers=headers)
|
|
|
|
|
|
@app.route('/sse/checkPlaceName', methods=['GET'])
|
|
def checkPlaceNameWebSse():
|
|
filename = request.args.get('filename')
|
|
|
|
def generate_checkPlaceName(filename):
|
|
id=0
|
|
for i in checkPlaceName(filename):
|
|
yield f"id: {id+1}\n"
|
|
yield f"event: checkPlaceName\n"
|
|
yield f"data: {i}\n\n" # 发送完成信号
|
|
headers = {
|
|
"Content-Type": "text/event-stream",
|
|
"Cache-Control": "no-cache",
|
|
"X-Accel-Buffering": "no",
|
|
"Access-Control-Allow-Origin": "*",
|
|
"Access-Control-Allow-Methods": "GET,POST",
|
|
"Access-Control-Allow-Headers": "x-requested-with,content-type",
|
|
}
|
|
return Response(generate_checkPlaceName(filename), headers=headers)
|
|
@app.route('/sse/checkCompanyName', methods=['GET'])
|
|
def checkCompanyNameWebSse():
|
|
filename = request.args.get('filename')
|
|
|
|
def generate_checkCompanyName(filename):
|
|
id = 0
|
|
for i in checkCompanyName(filename):
|
|
yield f"id: {id + 1}\n"
|
|
yield f"event: checkCompanyName\n"
|
|
yield f"data: {i}\n\n" # 发送完成信号
|
|
|
|
headers = {
|
|
"Content-Type": "text/event-stream",
|
|
"Cache-Control": "no-cache",
|
|
"X-Accel-Buffering": "no",
|
|
"Access-Control-Allow-Origin": "*",
|
|
"Access-Control-Allow-Methods": "GET,POST",
|
|
"Access-Control-Allow-Headers": "x-requested-with,content-type",
|
|
}
|
|
return Response(generate_checkCompanyName(filename), headers=headers)
|
|
|
|
@app.route('/sse/checkDocumentErrorWeb', methods=['GET'])
|
|
def checkDocumentErrorWebSse():
|
|
filename = request.args.get('filename')
|
|
|
|
def generate_checkDocumentError(filename):
|
|
id = 0
|
|
for i in getDocumentError(filename):
|
|
yield f"id: {id + 1}\n"
|
|
yield f"event: getDocumentError\n"
|
|
yield f"data: {i}\n\n" # 发送完成信号
|
|
|
|
headers = {
|
|
"Content-Type": "text/event-stream",
|
|
"Cache-Control": "no-cache",
|
|
"X-Accel-Buffering": "no",
|
|
"Access-Control-Allow-Origin": "*",
|
|
"Access-Control-Allow-Methods": "GET,POST",
|
|
"Access-Control-Allow-Headers": "x-requested-with,content-type",
|
|
}
|
|
return Response(generate_checkDocumentError(filename), headers=headers)
|
|
@app.route('/sse/checkTitleName', methods=['GET'])
|
|
def checkTitleNameWebSse():
|
|
filename = request.args.get('filename')
|
|
|
|
def generate_checkTitleName(filename):
|
|
id = 0
|
|
for i in checkTitleName(filename):
|
|
yield f"id: {id + 1}\n"
|
|
yield f"event: checkTitleName\n"
|
|
yield f"data: {i}\n\n" # 发送完成信号
|
|
|
|
headers = {
|
|
"Content-Type": "text/event-stream",
|
|
"Cache-Control": "no-cache",
|
|
"X-Accel-Buffering": "no",
|
|
"Access-Control-Allow-Origin": "*",
|
|
"Access-Control-Allow-Methods": "GET,POST",
|
|
"Access-Control-Allow-Headers": "x-requested-with,content-type",
|
|
}
|
|
return Response(generate_checkTitleName(filename), headers=headers)
|
|
if __name__ == '__main__':
|
|
app.run(host="0.0.0.0",port=80)
|