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.
4.5 KiB
4.5 KiB
ШАГ 012 — Спринт 4: Доработки после тестирования
Дата: 2026-03-21 Контекст: Мастер-класс по разработке системы тестирования сотрудников клиники.
Запрос (серия правок после тестирования)
- «Сгенерировать с AI» не должен спрашивать тему — использовать название теста
- «Улучшить» должен показывать сравнение старого и нового с галочками, а не затирать текст
- «Проверить тест» → добавить кнопку «Предложить вариант» с полным сравнением всего теста
Доработки
1. Кнопка «Сгенерировать с AI»
Было: при нажатии открывался модал с полем ввода темы.
Стало:
- Кнопка задизаблена, пока не заполнено поле «Название теста» (
shouldUpdateна полеtitle) - При нажатии сразу берёт название теста как тему и запускает генерацию
- Открывается модал с анимацией загрузки → превью вопросов → «Применить» / «Сгенерировать заново»
2. Кнопка «Улучшить» в карточке вопроса
Было: заменяла текст вопроса новой формулировкой без предупреждения.
Стало:
- Открывается модал с двумя колонками: текущая формулировка и предложение AI
- Изменения разбиты на позиции: текст вопроса + каждый вариант ответа отдельно
- Чекбокс «Применить» у каждой позиции
- Кнопка «Применить выбранные» — применяет только отмеченные пункты
Изменения в бэкенде:
improve_question(db, question, answers)— теперь принимает список ответов и возвращает JSON{question, answers[]}POST /api/llm/improve—ImproveRequestдобавлено полеanswers,ImproveResponseтеперь{improved_question, improved_answers[]}
3. Кнопка «Предложить вариант» в модале «Проверить тест»
Новая кнопка появляется после получения рекомендаций AI.
Поведение:
- При нажатии вызывает новый
POST /api/llm/improve_all - Модал переключается в режим сравнения: весь тест постранично
- Для каждого вопроса: текущий vs AI-предложение + чекбокс
- Для каждого варианта ответа: текущий vs AI-предложение + чекбокс
- Правильные ответы помечены
(правильный ✓) - Кнопки: «Применить выбранные» / «← К рекомендациям» / «Закрыть»
Новые файлы/функции бэкенда:
improve_all(db, title, questions)вservices/llm.pyPOST /api/llm/improve_allвapi/llm.py
Изменённые файлы
backend/app/services/llm.py ← improve_question принимает answers; новая функция improve_all
backend/app/api/llm.py ← обновлён ImproveRequest/ImproveResponse; новый /improve_all
frontend/src/api/llm.ts ← обновлена сигнатура improve; новый метод improveAll
frontend/src/components/TestForm/ ← все три доработки UI
Следующие шаги
- Спринт 1: Инфраструктура + Создание тестов
- Спринт 2: Прохождение теста + результат
- Спринт 3: Редактирование + версионность
- Спринт 4: AI-помощник (DeepSeek)
- Спринт 5: Трекер результатов
- Спринт 6: Авторизация и роли
- Спринт 7: Уведомления в MAX