docs: update ТЗ to v1.3 — детализировать версионность и AI-помощник
- §4.2: развернуто описание поведения версионности (правка in-place до первой попытки, создание новой версии после, переключение активной, привязка попыток к версии) - §4.7: AI-функции разделены на два уровня — над всем тестом (сгенерировать / проверить / предложить вариант) и над отдельным вопросом (улучшить / дистракторы); описана механика постатейного сравнения с чекбоксами Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1,8 +1,8 @@
|
||||
# Техническое задание
|
||||
## Система тестирования сотрудников клиники
|
||||
|
||||
**Версия:** 1.2
|
||||
**Дата:** 2026-03-21
|
||||
**Версия:** 1.3
|
||||
**Дата:** 2026-04-23
|
||||
**Статус:** Согласовано
|
||||
|
||||
---
|
||||
@@ -58,12 +58,14 @@
|
||||
**Настройки теста (задаются автором при создании):**
|
||||
- Разрешить возврат к предыдущему вопросу: да / нет
|
||||
|
||||
**Правила работы с тестом:**
|
||||
- Автор может редактировать тест пока никто его не проходил
|
||||
- Если тест уже проходили — создаётся новая версия (`version + 1`), старая сохраняется
|
||||
- Все версии теста хранятся; результаты привязаны к конкретной версии
|
||||
- Активная версия — та, которую видят сотрудники; автор может вручную переключить активную версию
|
||||
- Тест можно деактивировать (скрыть из списка, не удалять)
|
||||
**Правила работы с тестом (версионность):**
|
||||
|
||||
- Пока по тесту не было ни одной попытки, автор редактирует тест **на месте** — номер версии не меняется.
|
||||
- Как только появилась хотя бы одна попытка, любое сохранение изменений создаёт **новую версию** теста (`version + 1`, связь со старой версией через `parent_id`). Старая версия становится неактивной, но сохраняется в истории.
|
||||
- Все версии теста хранятся в виде связанной цепочки. Каждая попытка прохождения привязана к конкретной версии, по которой сотрудник проходил тест, — разбор ошибок по старым результатам остаётся корректным.
|
||||
- В списке тестов сотрудникам и авторам показывается только **одна активная версия** каждой цепочки.
|
||||
- Автор может открыть страницу истории версий теста и вручную переключить активную версию на любую из цепочки — остальные версии при этом автоматически становятся неактивными.
|
||||
- Тест можно деактивировать целиком (скрыть цепочку из списка, данные не удаляются).
|
||||
|
||||
### 4.3. Назначение теста
|
||||
|
||||
@@ -113,21 +115,28 @@ HR-менеджер видит трекер по всей клинике.
|
||||
|
||||
### 4.7. AI-помощник при создании и редактировании тестов
|
||||
|
||||
Интеграция с LLM (DeepSeek) доступна авторам тестов в форме создания и редактирования.
|
||||
Интеграция с LLM (DeepSeek) доступна авторам тестов в форме создания и редактирования. AI работает на двух уровнях: **над всем тестом целиком** и **над отдельным вопросом с блоком его вариантов ответов**.
|
||||
|
||||
**Функции AI-помощника:**
|
||||
**Функции уровня всего теста:**
|
||||
|
||||
| Функция | Описание |
|
||||
|---------|----------|
|
||||
| Генерация теста | Автор вводит тему — AI генерирует готовый набор вопросов с вариантами ответов |
|
||||
| Улучшение формулировки | AI переформулирует выбранный вопрос более чётко и однозначно |
|
||||
| Добавление дистракторов | AI генерирует правдоподобные неправильные варианты ответов к вопросу |
|
||||
| Проверка качества | AI анализирует весь тест и выдаёт рекомендации по улучшению |
|
||||
| Сгенерировать тест | На основе названия теста AI генерирует готовый набор вопросов с вариантами ответов. Кнопка доступна только когда название теста заполнено; отдельный ввод темы не требуется. Результат показывается превью, автор применяет его целиком кнопкой «Применить все вопросы». |
|
||||
| Проверить тест | AI анализирует весь тест и выдаёт структурированные рекомендации по улучшению (чёткость формулировок, качество дистракторов, охват темы). Показывается в модальном окне. |
|
||||
| Предложить вариант (улучшить весь тест) | AI предлагает улучшенные формулировки всех вопросов и всех вариантов ответов. Результат отображается как **постатейное сравнение** (старая версия → новая) с чекбоксами — автор выбирает, какие изменения применить. |
|
||||
|
||||
**Функции уровня одного вопроса:**
|
||||
|
||||
| Функция | Описание |
|
||||
|---------|----------|
|
||||
| Улучшить вопрос | AI переформулирует выбранный вопрос и его варианты ответов более чётко и однозначно. Результат показывается в модале **с постатейным сравнением и чекбоксами** (вопрос + каждый вариант ответа отдельно), прямой замены без подтверждения не происходит. |
|
||||
| Дистракторы | AI генерирует 3 новых правдоподобных неправильных варианта ответа к вопросу; они добавляются к существующим, а не заменяют их. |
|
||||
|
||||
**Настройки:**
|
||||
- API-ключ DeepSeek вводится на странице `/settings` и хранится в базе данных
|
||||
- Страница настроек содержит кнопку «Проверить подключение» — выполняет тестовый запрос к API
|
||||
- Ключ хранится только на бэкенде и не передаётся на фронтенд
|
||||
- API-ключ DeepSeek вводится на странице `/settings` и хранится в базе данных.
|
||||
- Страница настроек содержит кнопку «Проверить подключение» — выполняет тестовый запрос к API.
|
||||
- Ключ хранится только на бэкенде, на фронтенд не передаётся.
|
||||
- Все AI-функции требуют настроенного ключа: при его отсутствии возвращается понятная ошибка с предложением перейти в «Настройки».
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user