feat(maria): modelul de embedding in cheia de cache si listarea grupurilor WhatsApp
Cheia de refolosire a embeddings-urilor era doar textul chunk-ului. La schimbarea
lui EMBED_MODEL indexul ar fi ramas un amestec de vectori din doua modele, iar
cautarea ar fi dat rezultate aiurea fara nici un mesaj de eroare. Acum fiecare
intrare poarta modelul cu care a fost calculata si se refolosesc doar cele cu
modelul curent; intrarile vechi, fara camp, se recalculeaza o singura data.
Indexul de pe container a fost stampilat manual cu `nomic-embed-text` (singurul
folosit pana acum), deci nu s-au recalculat cele 169 de chunk-uri.
`GET /groups` listeaza grupurile contului cu JID, nume si numar de participanti.
JID-ul unui grup ("120363...@g.us") nu se vede nicaieri in WhatsApp, iar el e
singurul mod de a scrie SUPPORT_JID pentru un grup de suport.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q4uzvgm7AyJch5WH8QHRhY
This commit is contained in:
@@ -60,7 +60,7 @@ embeddings.
|
||||
WhatsApp (self-chat, sau numarul legat)
|
||||
|
|
||||
v
|
||||
whatsapp/index.js (Baileys) -- API HTTP :8099 (/status /send /messages /react /qr /pair)
|
||||
whatsapp/index.js (Baileys) -- API HTTP :8099 (/status /send /messages /react /qr /pair /groups)
|
||||
| descarca imaginile primite in ~/.maria-bridge/media/
|
||||
|
|
||||
v
|
||||
@@ -312,8 +312,11 @@ Iar cand chiar reindexeaza, **refoloseste vectorii chunk-urilor nemodificate** d
|
||||
indexul precedent (`rag/indexer.py:_vectori_existenti`). Un embedding costa ~7
|
||||
secunde pe CPU: fara refolosire, adaugarea unui singur document la 170 de chunk-uri
|
||||
insemna 20 de minute de reconstruit tot. Cheia e chiar textul chunk-ului — daca nu
|
||||
s-a schimbat niciun caracter, vectorul e acelasi. Logul spune de fiecare data cate
|
||||
au fost calculate si cate refolosite.
|
||||
s-a schimbat niciun caracter, vectorul e acelasi — dar numai pentru **acelasi
|
||||
`EMBED_MODEL`**: fiecare intrare din index poarta modelul cu care a fost calculata,
|
||||
iar la schimbarea modelului indexul se reface intreg. Altfel ar ramane un amestec de
|
||||
vectori din doua modele, iar cautarea ar da rezultate aiurea fara nici o eroare.
|
||||
Logul spune de fiecare data cate au fost calculate si cate refolosite.
|
||||
|
||||
## Teste
|
||||
|
||||
@@ -386,7 +389,15 @@ suport, cu rezumatul ca legenda — de aceea captura se sterge abia dupa ce mesa
|
||||
complet tratat, nu imediat dupa OCR.
|
||||
|
||||
Destinatia e `SUPPORT_JID` din `env`: `<numar>@s.whatsapp.net` pentru o persoana sau
|
||||
`<id>@g.us` pentru un grup. **Nesetat = nimeni nu e anuntat**, dar escaladarea tot se
|
||||
`<id>@g.us` pentru un grup. **JID-ul unui grup nu se vede nicaieri in WhatsApp**; se
|
||||
citeste din punte, care le listeaza pe toate cu numele lor:
|
||||
|
||||
```bash
|
||||
curl -s localhost:8099/groups | python3 -m json.tool | grep -B1 'ROMFAST'
|
||||
```
|
||||
|
||||
Grupul trebuie sa contina si numarul Mariei (`40723197939`) — altfel JID-ul nici nu
|
||||
apare in lista, iar trimiterea ar esua. **Nesetat = nimeni nu e anuntat**, dar escaladarea tot se
|
||||
inregistreaza in `~/.maria-bridge/escalations/` si apare in dashboard, sectiunea
|
||||
„Trimise la suport". Jurnalul se scrie intotdeauna, si cand notificarea esueaza:
|
||||
altfel exact intrebarile fara raspuns ar disparea fara urma.
|
||||
|
||||
Reference in New Issue
Block a user