task_generator / app.py
reginafeles's picture
Update app.py
1511531 verified
from flask import Flask, render_template, request, jsonify
from core.task_factory import TaskFactory
from models.settings import GenerationSettings
import traceback
app = Flask(__name__)
@app.route('/')
def index():
return render_template('index.html')
@app.route('/generate', methods=['POST'])
def generate():
try:
data = request.get_json() or {}
settings = GenerationSettings(
count=data.get('count', 1),
complexity=data.get('complexity', 'medium'),
task_types=data.get('task_types', [])
)
factory = TaskFactory()
tasks = factory.generate_tasks(settings)
if not tasks:
return jsonify({'tasks': [], 'warning': 'Не удалось сгенерировать задачи'}), 200
print(tasks)
return jsonify({'tasks': tasks})
except Exception as e:
print("Ошибка генерации задач:\n", traceback.format_exc())
return jsonify({'tasks': [], 'error': str(e)}), 500
@app.route('/task-types', methods=['GET'])
def get_task_types():
task_types = {
'classic': [
{'id': 1, 'name': 'Билеты/экзамены', 'description': 'Не выучил несколько билетов'},
{'id': 2, 'name': 'Пирожки/конфеты', 'description': 'Выбор предмета из смеси'},
{'id': 3, 'name': 'Такси', 'description': 'Выбор такси определенного цвета'},
{'id': 4, 'name': 'Спортсмены', 'description': 'Порядок выступления спортсменов'},
{'id': 5, 'name': 'Бракованные изделия', 'description': 'Вероятность качественного товара'},
{'id': 6, 'name': 'Игральные кости', 'description': 'Сумма очков при бросании костей'},
{'id': 7, 'name': 'Монеты', 'description': 'Количество орлов при бросании монеты'},
{'id': 8, 'name': 'Конференции', 'description': 'Распределение докладов по дням'},
{'id': 9, 'name': 'Парные соревнования', 'description': 'Игрок с соотечественником'},
{'id': 10, 'name': 'Отношения', 'description': 'Отношение количества предметов'},
{'id': 11, 'name': 'Часы со стрелками', 'description': 'Положение часовой стрелки'},
{'id': 12, 'name': 'Телевизор/каналы', 'description': 'Каналы без рекламы'}
],
'theorems': [
{'id': 13, 'name': 'Противоположное событие', 'description': '1 - P(исходное событие)'},
{'id': 14, 'name': 'Несовместные события', 'description': 'Сумма вероятностей'},
{'id': 15, 'name': 'Независимые события', 'description': 'Произведение вероятностей'},
{'id': 16, 'name': 'Формула полной вероятности', 'description': 'Фабрики с разным браком'},
{'id': 17, 'name': 'Последовательности', 'description': 'Определенная последовательность событий'},
{'id': 18, 'name': 'Ровно n задач', 'description': 'Разность вероятностей'},
{'id': 19, 'name': 'Гроссмейстеры', 'description': 'Выигрыш с разными цветами фигур'}
]
}
return jsonify(task_types)
if __name__ == "__main__":
app.run(host="0.0.0.0", port=7860, debug=False, use_reloader=False)