46 lines
1.5 KiB
Python
Raw Normal View History

2024-11-24 11:11:20 +08:00
# flask_project/flask_app/routes.py
from flask import request, jsonify
2024-11-25 17:18:30 +08:00
from flask_app.task import process_qianwen_long
2024-11-24 11:11:20 +08:00
def register_routes(app):
@app.route('/api/qianwen_long', methods=['POST'])
def qianwen_long_endpoint():
data = request.json
file_id = data.get('file_id')
user_query = data.get('user_query')
if not file_id or not user_query:
return jsonify({'error': 'file_id 和 user_query 是必需的'}), 400
try:
# 发送任务到 Celery 队列
task = process_qianwen_long.delay(file_id, user_query)
return jsonify({'task_id': task.id}), 202
except Exception as e:
return jsonify({'error': str(e)}), 500
@app.route('/api/task_status/<task_id>', methods=['GET'])
def get_task_status(task_id):
task = process_qianwen_long.AsyncResult(task_id)
if task.state == 'PENDING':
response = {
'state': task.state,
'status': '等待中...'
}
elif task.state == 'SUCCESS':
response = {
'state': task.state,
'result': task.result
}
elif task.state == 'FAILURE':
response = {
'state': task.state,
'status': str(task.info), # 错误信息
}
else:
response = {
'state': task.state,
'status': task.info,
}
return jsonify(response)