fix(maria): pragul de acoperire la 0,80 si temperatura 0 — doua raspunsuri inventate

Grupul "Maria Test", 2026-09-01, ambele mesaje au primit raspunsuri inventate:

- "am si eu o factura pe luna august cu eroare in spv la trimitere AUTO SULE"
  (cosinus 0,768) — mesajul nu spune CE eroare e; Maria a explicat cum se reface
  o factura stearsa si a trimis omul sa verifice drepturile pe CIF in SPV.
- captura cu `<Error errorMessage="CUI cumparator incorect"/>` (0,778) — eroarea
  nu exista in niciun document; Maria a inventat o procedura cu "ID de descarcare",
  Borderou eFactura si retrimitere manuala.

Cauza: `RANK_STRONG_COSINE=0,70` inseamna "cosinusul singur e destul", dar toate
chunk-urile eFactura seamana intre ele — la 0,7x cosinusul nu mai distinge "e in
documente" de "e despre eFactura". Aceeasi greseala ca la codurile Oracle
(ORA-06550 vs ORA-12541, b7d75f0), doar ca fara cod pe care sa te sprijini.

- RANK_STRONG_COSINE 0,70 -> 0,80: peste atat trec doar potrivirile aproape
  textuale, restul cad pe dovada lexicala (termenii rari ai intrebarii chiar in
  chunk-uri). Ambele mesaje escaladeaza acum la suport.
- LLM_TEMPERATURE=0 la apelul modelului. Fara el llama.cpp foloseste 0,8 —
  creativitate exact acolo unde vrem doar ce scrie in context.
- Cele doua cazuri reale sunt adaugate in ops/calibrate-rank.py: 25/25.

Teste: 99 pass.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q4uzvgm7AyJch5WH8QHRhY
This commit is contained in:
Claude Agent
2026-09-01 18:24:37 +00:00
parent 5e60394c20
commit 45b36591c9
6 changed files with 41 additions and 4 deletions

View File

@@ -362,6 +362,19 @@ Fuziunea da mereu un clasament, si la o intrebare complet straina. De aceea deci
Fractiunea din pasul 3 nu e cosmetica: cu un singur termen gasit, „cum imi resetez
parola de la Windows" trecea drept acoperita fiindca „parola" apare in documente.
`RANK_STRONG_COSINE` a fost 0,70 si a lasat sa treaca doua raspunsuri inventate
(2026-09-01, grupul „Maria Test"): „am o factura pe luna august cu eroare in SPV"
(0,768 — nu spune ce eroare e) si o captura cu `errorMessage="CUI cumparator
incorect"` (0,778 — eroarea nu exista in documente). **Toate chunk-urile eFactura
seamana intre ele**, deci pe 0,7x cosinusul nu mai distinge „e in documente" de „e
despre eFactura"; e acelasi tip de greseala ca la codurile Oracle de mai sus, doar
ca fara cod pe care sa te sprijini. La **0,80** trec doar potrivirile aproape
textuale, iar restul cad pe dovada lexicala de la pasul 3. `ops/calibrate-rank.py`:
25/25, cu ambele cazuri adaugate la set.
Modelul primeste `temperature=0` (`LLM_TEMPERATURE`). Fara ea, llama.cpp raspunde
cu 0,8 — creativitate exact acolo unde vrem sa se rezume la context.
Pasul 0 e mai tare decat cosinusul pentru ca **doua erori Oracle diferite se scriu
aproape la fel**. O captura cu `ORA-06550 / PLS-00906` a primit cosinus 0,736 pe
chunk-ul despre `ORA-12541: TNS no listener` — peste pragul „sigur", deci Maria a