lct-03 и lct-04: журнал сессий и библиотека сценариев
БД: 11 таблиц, первая миграция. Группы и связь trainee → group заложены
сразу, даже пустыми — размечать накопленные сессии задним числом значит
делать лишнюю миграцию. Номер попытки живёт в сессии, отдельной таблицы
попыток нет: дельта считается запросом по (trainee_id, scenario_id).
Сценарии: строгая схема — опечатка в имени поля падает на старте, а не
игнорируется молча. ground_truth собирается кодом, попытка задать
incident_type, dds или required_facts в YAML отвергается: иначе генератор
разведёт факты и эталон и курсанта оштрафуют за правильный ответ. Руками
задаются только нормализованные адрес и число пострадавших — из фразы
«улица Ленина, 14, квартира 47, 5-й этаж» кодом «улица Ленина, 14»
не достать.
GET /api/scenarios/{id} больше не отдаёт чек-лист. Это содержимое
подсказок: отдать его целиком значит выдать в контрольном режиме то,
чего там быть не должно, в обход выдачи по одному пункту.
Тесты базы поднимают свой движок на каждый тест: глобальный кэшируется
и привязывается к первому событийному циклу.
This commit is contained in:
parent
59d5a6a26d
commit
6b2c96bab6
22 changed files with 1380 additions and 8 deletions
|
|
@ -39,7 +39,6 @@ facts:
|
|||
- id: f_gas
|
||||
value: "плита газовая, вентиль в кухне, перекрыть не успел"
|
||||
reveal_on: { question: q_gas }
|
||||
hidden: true
|
||||
|
||||
checklist:
|
||||
- { id: q_address, fact: f_address }
|
||||
|
|
@ -57,10 +56,9 @@ required_fields:
|
|||
- description
|
||||
|
||||
ground_truth:
|
||||
# Выводится из фактов кодом при загрузке, здесь — для наглядности примера.
|
||||
incident_type: fire
|
||||
dds: "01"
|
||||
required_facts: [f_address, f_what_burns, f_people]
|
||||
# incident_type, dds и required_facts выводит загрузчик — писать их здесь запрещено.
|
||||
# Руками задаются только нормализованные ожидания, которые из текста факта
|
||||
# кодом не достать.
|
||||
address: "улица Ленина, 14"
|
||||
victims: 2
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue