Spaces:
Sleeping
Sleeping
| from flask import Flask, render_template, request, jsonify | |
| from core.task_factory import TaskFactory | |
| from models.settings import GenerationSettings | |
| import traceback | |
| app = Flask(__name__) | |
| def index(): | |
| return render_template('index.html') | |
| 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 | |
| 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) | |