Приложение для тестирования сотрудников клиники методом один вопрос - до пяти ответов один из которых правильный. Сотрудник должен выбрать правильный вариант ответа
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

ШАГ 012 — Спринт 4: Доработки после тестирования

Дата: 2026-03-21 Контекст: Мастер-класс по разработке системы тестирования сотрудников клиники.


Запрос (серия правок после тестирования)

  1. «Сгенерировать с AI» не должен спрашивать тему — использовать название теста
  2. «Улучшить» должен показывать сравнение старого и нового с галочками, а не затирать текст
  3. «Проверить тест» → добавить кнопку «Предложить вариант» с полным сравнением всего теста

Доработки

1. Кнопка «Сгенерировать с AI»

Было: при нажатии открывался модал с полем ввода темы.

Стало:

  • Кнопка задизаблена, пока не заполнено поле «Название теста» (shouldUpdate на поле title)
  • При нажатии сразу берёт название теста как тему и запускает генерацию
  • Открывается модал с анимацией загрузки → превью вопросов → «Применить» / «Сгенерировать заново»

2. Кнопка «Улучшить» в карточке вопроса

Было: заменяла текст вопроса новой формулировкой без предупреждения.

Стало:

  • Открывается модал с двумя колонками: текущая формулировка и предложение AI
  • Изменения разбиты на позиции: текст вопроса + каждый вариант ответа отдельно
  • Чекбокс «Применить» у каждой позиции
  • Кнопка «Применить выбранные» — применяет только отмеченные пункты

Изменения в бэкенде:

  • improve_question(db, question, answers) — теперь принимает список ответов и возвращает JSON {question, answers[]}
  • POST /api/llm/improveImproveRequest добавлено поле answers, ImproveResponse теперь {improved_question, improved_answers[]}

3. Кнопка «Предложить вариант» в модале «Проверить тест»

Новая кнопка появляется после получения рекомендаций AI.

Поведение:

  • При нажатии вызывает новый POST /api/llm/improve_all
  • Модал переключается в режим сравнения: весь тест постранично
  • Для каждого вопроса: текущий vs AI-предложение + чекбокс
  • Для каждого варианта ответа: текущий vs AI-предложение + чекбокс
  • Правильные ответы помечены (правильный ✓)
  • Кнопки: «Применить выбранные» / «← К рекомендациям» / «Закрыть»

Новые файлы/функции бэкенда:

  • improve_all(db, title, questions) в services/llm.py
  • POST /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