lct-20: АРМ диспетчера ДДС и цепочка 112 → ДДС

Возврат карточки — самая ценная механика цепочки: неполнота КИО
перестаёт быть процентом в отчёте и становится сорванным выездом
с конкретной причиной. В разборе это отметка E6: «не заполнено floor,
victims_count — выезд сорван».

Снимок карточки не меняется после передачи: оператор не дописывает
задним числом поле, которое забыл. Тест правит карточку после передачи
и проверяет, что в снимке этого нет.

Диспетчер садится за АРМ, когда вызов уже идёт, — станция, подключённая
после передачи, всё равно получает карточку.

У станции нет аудио вообще: ни VAD, ни распознавания, ни синтеза.
This commit is contained in:
Ivan Gerasimov 2026-09-17 21:45:47 +03:00
commit ee2a526831
15 changed files with 439 additions and 13 deletions

View file

@ -9,6 +9,7 @@ from app.domain.taxonomy import Competency, ErrorCode
#: Метрика → (код ошибки при провале, компетенция радара).
METRIC_MAP: dict[str, tuple[ErrorCode, Competency]] = {
"answer_time": (ErrorCode.E3, Competency.INTAKE),
"dds_chain": (ErrorCode.E6, Competency.CARD),
"callback": (ErrorCode.E3, Competency.INTAKE),
"checklist_completeness": (ErrorCode.E1, Competency.INTERVIEW),
"interview_time": (ErrorCode.E3, Competency.NORMS),
@ -36,6 +37,7 @@ METRIC_WEIGHTS: dict[str, float] = {
"victims_count": 1.0,
"answer_time": 1.0,
"callback": 1.0,
"dds_chain": 2.0,
}
#: Вес детерминированного слоя в итоговой оценке. Остальное — LLM-судья