graph TD Q["Вопрос"] --> KW["Лексический контур"] Q --> VE["Векторный · bge-m3"] Q --> GR["Графовый контур"] KW --> RRF["RRF: слияние рангов"] VE --> RRF GR --> RRF RRF --> OF["Пул кандидатов: расширенный"] OF --> RR["Локальный реранкер: bge-reranker-v2-m3"] RR --> AC["Autocut: adaptive return"] AC --> E["Цитируемое доказательство"] RR --> AL["Журнал ошибок реранкера"] AL --> HG["Hard gate: 0 новых ошибок"] HG --> BEN["2×113 прогона"] E --> BJ["Слепая разметка: скрытый ответ"] BEN --> MET["hit@5 · MRR · precision · κ"] BJ --> MET MET -.->|"исправление → свежий прогон"| Q classDef query fill:#1c1836,stroke:#a78bfa,color:#f4f2ff; classDef rank fill:#16161f,stroke:#8a86a0,color:#f4f2ff; classDef eval fill:#06251e,stroke:#00d4aa,color:#d4fff5; classDef hard fill:#2a1420,stroke:#fb7185,color:#ffd4dd; class Q,KW,VE,GR,RRF query; class OF,RR,AC rank; class E,BEN,MET,BJ eval; class AL,HG hard;