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
51 lines
2.4 KiB
Plaintext
51 lines
2.4 KiB
Plaintext
# Configurarea puntii WhatsApp+RAG a lui Maria.
|
|
#
|
|
# install.sh copiaza acest fisier in ~/.maria-bridge/env cu drepturi 0600.
|
|
# Format KEY=value, fara `export`, fara expandare de variabile.
|
|
|
|
# --- Puntea WhatsApp (whatsapp/index.js) -----------------------------------
|
|
BRIDGE_HOST=127.0.0.1
|
|
BRIDGE_PORT=8099
|
|
# true = raspunde DOAR in chatul cu tine insuti (self-chat). Pune "false" abia
|
|
# dupa ce esti multumit de calitatea raspunsurilor — altfel Maria raspunde la
|
|
# oricine iti scrie pe numarul legat.
|
|
TEST_MODE_SELF_CHAT_ONLY=true
|
|
# Imaginile primite (capturi cu erori) peste aceasta marime sunt refuzate, fara
|
|
# descarcare. O captura de ecran normala are sub 1 MB.
|
|
MAX_MEDIA_MB=8
|
|
|
|
# --- OCR pentru capturile de ecran ------------------------------------------
|
|
# Modelul de raspuns e strict text, deci capturile trec prin tesseract inainte de
|
|
# RAG (vezi rag/ocr.py). Cere: apt-get install tesseract-ocr tesseract-ocr-ron
|
|
OCR_LANGS=ron+eng
|
|
OCR_MAX_CHARS=1500
|
|
OCR_TIMEOUT_S=60
|
|
|
|
# --- Backend LLM + embeddings -----------------------------------------------
|
|
# Modelul de chat folosit pentru raspunsuri (format compatibil OpenAI
|
|
# /v1/chat/completions). Implicit presupune un tunel/proxy local catre acelasi
|
|
# backend folosit de Echo (LXC 110) — vezi docs/maria-whatsapp-rag-prototype.md.
|
|
LLM_URL=http://127.0.0.1:8091
|
|
# Ollama, pentru embeddings (nomic-embed-text).
|
|
OLLAMA_URL=http://127.0.0.1:11434
|
|
EMBED_MODEL=nomic-embed-text
|
|
TOP_K=3
|
|
MAX_TOKENS=250
|
|
POLL_INTERVAL_S=2
|
|
|
|
# --- Depozit de documente + sincronizare Google Drive -----------------------
|
|
# Tinta rclone pentru dosarul de documente din Drive (pe Windows apare ca
|
|
# D:\GoogleDrive\romfast\document_store). Se aduc doar *.txt, *.md, *.xml.
|
|
# Gol = sincronizare dezactivata; documentele se administreaza doar manual din
|
|
# dashboard. Vezi README.md, "Sincronizare cu Google Drive": autorizarea se face
|
|
# cu `rclone authorize` pe o masina cu browser, tokenul se muta aici — fara cont
|
|
# de serviciu. Exemplu, cu dosarul fixat pe ID:
|
|
# DRIVE_REMOTE=gdrive,root_folder_id=1C4e75zgH1_7ZK-_oBP5ZZBvUPh3iEo1O:
|
|
DRIVE_REMOTE=
|
|
|
|
# --- control -----------------------------------------------------------------
|
|
# Fara dashboard propriu: start/stop/restart, documente, reindexare si
|
|
# sincronizare Drive se fac din dashboard-ul puntii Discord (discord-bridge/),
|
|
# sectiunea "Maria — WhatsApp + RAG" — un singur panou comun, o singura
|
|
# autentificare (DASHBOARD_TOKEN din ~/.claude-discord/env).
|