Dosarul document_store din Drive are 3 surse .xml pe care depozitul le ignora
complet, fiindca store.py accepta doar .txt/.md. La d406_saft_knowledge exista
ambele formate, iar .xml e cu trei luni mai nou (2026-01-28 vs 2025-10-15) si cu
50% mai mare (64 KB vs 41 KB) — deci indexam varianta mai saraca.
- store.py devine sursa unica pentru extensii (DOC_EXTENSIONS = .txt/.md/.xml).
Cand acelasi nume de baza exista in mai multe formate, la indexare intra unul
singur, cel mai bogat (.xml > .md > .txt); celalalt ramane pe disc, marcat
`shadowed_by`. Fara asta, acelasi raspuns ar aparea de doua ori in rezultate.
`list_documents()` arata tot (dashboard), `documents_for_index()` doar
castigatorii (indexer).
- indexer.py taie XML-ul altfel: un chunk per element de nivel 1, adica o
problema = un chunk, cu <mesaj_eroare> si <rezolvare> impreuna. Taierea pe
linii goale le-ar separa si cautarea ar returna eroarea fara raspuns.
Etichetele raman prefixe lizibile ("mesaj eroare: ..."), fara paranteze
unghiulare care doar dilueaza embedding-ul. XML invalid nu opreste indexarea:
cade pe taierea obisnuita, cu o linie in log. Elementele peste 4000 de
caractere se taie mai departe pe granite de cuvant — `chunk_text` imparte doar
pe linii goale, deci un element scris ca un paragraf lung ar fi ramas intreg
(prins de test).
- sync.py: amprenta si `rclone --include` derivate din DOC_EXTENSIONS.
- dashboard: acelasi filtru si aceeasi preferinta (copie, fiindca nu poate
importa `store` — coliziune de nume pe `config`), plus marcajul "umbrit de X"
in tabelul de documente si numarul de documente chiar indexate.
- README: sectiunea Drive rescrisa pe `rclone authorize` (autorizezi pe o masina
cu browser, muti tokenul) in loc de cont de serviciu — mai putini pasi, fara
consola Google Cloud. Documentat si ca `sync` sterge local ce nu mai e in Drive.
tests/ nou (20 de teste, fara retea si fara Ollama): preferinta de format,
vizibilitatea in dashboard, taierea XML, entitati, comentarii, XML invalid,
elemente uriase. Suita puntii Discord: 426 pass, neafectata.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q4uzvgm7AyJch5WH8QHRhY
41 lines
2.0 KiB
Plaintext
41 lines
2.0 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
|
|
|
|
# --- 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).
|