# flask_project/flask_app/routes.py from flask import request, jsonify from flask_app.task import process_qianwen_long 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/', 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)