25 lines
1.3 KiB
Python
25 lines
1.3 KiB
Python
|
|
"""Какая метрика каким кодом ошибки и какой компетенцией размечается.
|
|||
|
|
|
|||
|
|
Это методика, а не вычисление: таблица читается глазами и сверяется
|
|||
|
|
с docs/product/METHODOLOGY.md. Считает метрики gost.py, сюда он только смотрит.
|
|||
|
|
"""
|
|||
|
|
|
|||
|
|
from app.domain.taxonomy import Competency, ErrorCode
|
|||
|
|
|
|||
|
|
#: Метрика → (код ошибки при провале, компетенция радара).
|
|||
|
|
METRIC_MAP: dict[str, tuple[ErrorCode, Competency]] = {
|
|||
|
|
"answer_time": (ErrorCode.E3, Competency.INTAKE),
|
|||
|
|
"callback": (ErrorCode.E3, Competency.INTAKE),
|
|||
|
|
"checklist_completeness": (ErrorCode.E1, Competency.INTERVIEW),
|
|||
|
|
"interview_time": (ErrorCode.E3, Competency.NORMS),
|
|||
|
|
"incident_type": (ErrorCode.E2, Competency.ROUTING),
|
|||
|
|
"dds_choice": (ErrorCode.E2, Competency.ROUTING),
|
|||
|
|
"address": (ErrorCode.E5, Competency.CARD),
|
|||
|
|
"victims_count": (ErrorCode.E5, Competency.CARD),
|
|||
|
|
"required_fields": (ErrorCode.E5, Competency.CARD),
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
#: Вес детерминированного слоя в итоговой оценке. Остальное — LLM-судья
|
|||
|
|
#: на мягкие критерии (E4), и не больше (docs/arch/BACKEND.md).
|
|||
|
|
DETERMINISTIC_WEIGHT = 0.6
|
|||
|
|
JUDGE_WEIGHT = 0.4
|