feat(maria): asociere prin cod de telefon si citirea capturilor cu erori
Doua lucruri cerute de utilizator, ambele pe acelasi drum: sa poti lega
puntea fara sa ai un ecran de scanat, si sa poti trimite Mariei o poza cu
eroarea in loc sa transcrii mesajul.
Asociere prin cod de 8 caractere (alternativa la QR):
- endpoint-ul /pair exista, dar nu era folosibil: fara `browser` explicit
WhatsApp refuza codul, iar dupa introducerea lui corecta serverul cere un
restart (515) care consuma din bugetul de reincercari si putea opri puntea.
Acum descriptorul e Browsers.ubuntu('Chrome') si restartRequired reconecteaza
imediat, fara sa numere.
- codul are TTL de 3 minute, iar /status il da doar cat timp e valabil —
un cod expirat afisat in dashboard trimite omul sa tasteze degeaba.
- dashboard: camp pentru numar + buton, in acelasi card cu QR-ul.
Imagini cu erori (capturi de ecran):
- puntea descarca imaginile in ~/.maria-bridge/media/ (imageMessage sau
document cu mimetype image/*, si prin ambalajele efemer/"vezi o data" —
fara despachetare pareau mesaje fara continut si se aruncau tacut).
- rag/ocr.py: tesseract ron+eng. Modelul de raspuns e strict text, deci OCR
nu e o optiune de calitate, e singura cale.
- cautarea in index merge DOAR pe liniile care arata a eroare; o fereastra
intreaga de meniuri si totaluri dilueaza embedding-ul si scoate chunk-uri
fara legatura. Modelul primeste captura intreaga, marcata ca text OCR.
- capturile se sterg imediat dupa citire (pot contine date de client).
- cand nu se citeste nimic si nu exista legenda, Maria cere textul erorii
in loc sa raspunda in gol.
16 teste noi (42 in total). install.sh verifica tesseract; README documenteaza
ambele metode de asociere si drumul unei capturi.
Separat, in docs/chatboti-si-punti.md: chatul "Eu" e vazut de AMBELE punti de pe
numar. Puntea lui Echo (LXC 110) e asociata ca dispozitiv :11 al aceluiasi cont,
momentan nelegata dar pornita — daca se reasociaza, raspunde in "Eu" langa Maria.
Notat si ca serviciile lui Echo sunt unitati de UTILIZATOR: `systemctl is-active`
ca root raspunde "inactive" desi botul ruleaza.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q4uzvgm7AyJch5WH8QHRhY
This commit is contained in:
@@ -122,6 +122,21 @@ else
|
||||
warn "instaleaza cu: sudo apt-get install -y rclone (apoi vezi README.md)"
|
||||
fi
|
||||
|
||||
# --- 7b. tesseract (OCR pentru capturile de ecran primite) -------------------
|
||||
# Fara el, Maria raspunde in continuare la text, dar la o captura cu eroare
|
||||
# raspunde ca nu poate citi imaginea. Vezi rag/ocr.py.
|
||||
if command -v tesseract >/dev/null 2>&1; then
|
||||
if tesseract --list-langs 2>/dev/null | grep -qx ron; then
|
||||
info "tesseract gasit, cu limba romana"
|
||||
else
|
||||
warn "tesseract nu are pachetul de limba romana (ron) — OCR-ul va fi mai slab"
|
||||
warn "instaleaza cu: sudo apt-get install -y tesseract-ocr-ron"
|
||||
fi
|
||||
else
|
||||
warn "tesseract nu e instalat — capturile de ecran primite pe WhatsApp nu pot fi citite"
|
||||
warn "instaleaza cu: sudo apt-get install -y tesseract-ocr tesseract-ocr-ron"
|
||||
fi
|
||||
|
||||
# --- 8. enable / start -------------------------------------------------------
|
||||
for u in maria-whatsapp.service maria-rag.service; do
|
||||
systemctl --user enable "$u" >/dev/null 2>&1 \
|
||||
@@ -136,13 +151,14 @@ if [ "$DO_START" -eq 1 ]; then
|
||||
systemctl --user restart maria-whatsapp.service && info "punte WhatsApp pornita"
|
||||
echo
|
||||
echo " Deschide dashboard-ul puntii Discord (sectiunea 'Maria — WhatsApp + RAG')"
|
||||
echo " si scaneaza codul QR din cardul 'Conectare WhatsApp' inainte sa pornesti maria-rag."
|
||||
echo " si asociaza WhatsApp din cardul 'Conectare WhatsApp' inainte sa pornesti"
|
||||
echo " maria-rag: fie scanezi codul QR, fie ceri un cod de asociere pentru numar."
|
||||
systemctl --user restart maria-rag.service && info "consumer RAG pornit"
|
||||
systemctl --user --no-pager status maria-whatsapp.service | sed 's/^/ /'
|
||||
else
|
||||
echo
|
||||
echo " Serviciile bridge/rag NU au fost pornite (intentionat: bridge-ul cere"
|
||||
echo " scanarea unui cod QR de asociere WhatsApp, actiune manuala)."
|
||||
echo " asocierea WhatsApp — cod QR sau cod de asociere — actiune manuala)."
|
||||
echo " Dupa ce completezi $STATE_DIR/env: $0 --start"
|
||||
fi
|
||||
|
||||
|
||||
Reference in New Issue
Block a user