# Chatboții și punțile de mesagerie — care e care Există **trei lucruri numite „Maria"**, **doi boți pe Discord** și **două punți WhatsApp legate la același număr de telefon**. Documentul ăsta spune care e care, unde rulează și cum verifici, în 30 de secunde, cu care vorbești de fapt. > **De ce există documentul:** pe 2026-08-31 s-a pierdut aproape o oră de diagnostic > fiindcă Maria de pe WhatsApp răspundea, dar toate verificările se făceau pe containerul > greșit. Pe LXC 171 totul părea rupt (niciun LLM, WhatsApp neasociat, log fără > activitate) — răspunsurile veneau de pe LXC 104. **Verificat live pe 2026-08-31.** Stările (`connected`, ce serviciu rulează) se schimbă; topologia, nu. --- ## Tabelul scurt | Cine | Unde rulează | Canal | Model | Sursa de cunoștințe | |---|---|---|---|---| | **Maria pe Flowise** | LXC 104, `flowise.service`, port 3000 | web (prin ngrok) | configurat în chatflow | chatflow Flowise + docstore propriu | | **Maria WhatsApp — instanța vie** | LXC 104, `maria-whatsapp-*.service` | WhatsApp, nr. 40723197939 | `llama-qwen35` local (Qwen3.5-2B-Q4, port 8091) | `rag_index.json` propriu, mic | | **Maria WhatsApp — versiunea din git** | LXC 171, `maria-*.service` | WhatsApp (**neasociat**) | același LLM, prin rețea | depozit sincronizat din Google Drive | | **Echo (MoltBot)** | LXC 110, `echo-core.service` | Telegram + WhatsApp + Discord | Claude Opus 4.5 (API) | proiectele lui, roa2web | | **Puntea Discord → Claude Code** | LXC 171, `claude-discord.service` | Discord (guild privat) | Sonnet/Opus, per fir | tot `/workspace`, acces SSH la cluster | Cele două Marii de WhatsApp rulează **același cod**, din surse diferite. Vezi mai jos. --- ## Cele trei Marii ### 1. Maria pe Flowise — chatbot web LXC 104 (`10.0.20.161`), `flowise.service` pe portul 3000, expus public prin `ngrok.service` la `https://mutual-special-koala.ngrok-free.app`. Chatflow-ul e definit în interfața Flowise; memoria e Buffer Window (ultimele 5 schimburi). Sursa versionată a chatflow-ului: `vfp_roaauto/COMUN/utile/chatbot/`. Detalii: [`proxmox/lxc104-flowise/README.md`](../proxmox/lxc104-flowise/README.md). ### 2. Maria WhatsApp + RAG — instanța care răspunde acum **LXC 104**, `/root/maria-whatsapp-bridge/` — **în afara git-ului**. | Serviciu | Ce face | |---|---| | `maria-whatsapp-bridge.service` | punte Baileys (Node), port 8099 | | `maria-whatsapp-consumer.service` | `consumer.py` — citește mesaje, caută în RAG, întreabă LLM-ul | | `llama-qwen35.service` | `llama.cpp` cu `Qwen3.5-2B-Q4_K_M`, API compatibil OpenAI pe **8091** | | `ollama.service` | embeddings, port 11434 | Legată la **+40723197939**, în modul self-chat: îi scrii ție însuți pe WhatsApp și ea răspunde în aceeași conversație, cu prefixul `[Maria]`. **Limitarea ei:** indexul are 24 de chunk-uri dintr-un singur fișier (`knowledge/roaauto_instructiuni.txt`). Orice întrebare din afara subiectului roaauto primește un răspuns inventat de model, fiindcă retrieval-ul nu are ce să găsească. ### 3. Maria WhatsApp + RAG — versiunea din git **LXC 171**, cod în `proxmox/lxc171-claude-agent/maria-whatsapp-bridge/`, stare în `~/.maria-bridge/`. Aceleași servicii, sub `systemctl --user`. Are tot ce s-a construit peste prototip: depozit sincronizat din Google Drive prin rclone (11 documente, 173 de chunk-uri), suport `.xml` preferat peste `.md`, lacăt între reindexări, dashboard de control. Foloseste LLM-ul de pe 104 prin rețea (`LLM_URL=http://10.0.20.161:8091`) — pe 171 nu există niciun model de chat, doar embeddings. **Nu e asociată la WhatsApp.** Până când e, instanța de pe 104 rămâne singura funcțională. Migrarea e urmărită în `claude-agent/TODO.md`. Detalii: [`maria-whatsapp-bridge/README.md`](../proxmox/lxc171-claude-agent/maria-whatsapp-bridge/README.md). --- ## Cei doi boți de Discord ### Puntea Discord → Claude Code (LXC 171) `claude-discord.service`. Un fir de Discord = o sesiune Claude Code care rulează **pe container, cu drepturile utilizatorului `claude`**: acces la `/workspace`, chei SSH, `pct exec` pe tot clusterul. Comenzi `/new`, `/cd`, `/model`, `/status`, `/stop`, `/cleanup`, `/permisiuni`. Dashboard de control: `claude-discord-dashboard.service`, port 18790, expus prin Tailscale la `https://claude-agent.tailf7372d.ts.net/claude`. Tot de acolo se comandă și Maria. Detalii: [`discord-bridge/README.md`](../proxmox/lxc171-claude-agent/discord-bridge/README.md). ### Echo Core (LXC 110) `echo-core.service` — bot pe Telegram, WhatsApp **și** Discord, cu Claude Opus 4.5 prin API. Alt bot, alt scop, alt container. Dacă un mesaj de pe Discord primește un răspuns care nu seamănă cu Claude Code, verifică dacă nu cumva a răspuns Echo. Detalii: [`proxmox/lxc110-moltbot/README.md`](../proxmox/lxc110-moltbot/README.md). --- ## Porturi | Port | Container | Serviciu | |---|---|---| | 3000 | LXC 104 | Flowise (web, prin ngrok) | | 4040 | LXC 104 | ngrok, interfață locală | | 8091 | LXC 104 | `llama.cpp` / Qwen3.5-2B — **LLM-ul de răspuns al Mariei** | | 8099 | LXC 104 | punte WhatsApp Maria (instanța vie) | | 11434 | LXC 104 | Ollama (embeddings) | | 8098 | LXC 110 | punte WhatsApp Echo | | 18789 | LXC 110 | gateway clawdbot | | 7788 / 7789 | LXC 110 | supertonic-tts / pocket-tts | | 8099 | LXC 171 | punte WhatsApp Maria (versiunea din git) | | 11434 | LXC 171 | Ollama (doar embeddings, fără model de chat) | | 18790 | LXC 171 | dashboard punte Discord + Maria | `8099` și `11434` există pe **ambele** containere, cu conținut diferit. De aici jumătate din confuzie — verifică întotdeauna pe ce container ești. --- ## Cum afli cu cine vorbești ```bash # Care punte WhatsApp e conectata, si pe ce numar ssh root@10.0.20.201 "pct exec 104 -- curl -s http://127.0.0.1:8099/status" # Maria vie ssh root@10.0.20.171 "curl -s http://127.0.0.1:8099/status" # Maria din git ssh root@10.0.20.200 "pct exec 110 -- curl -s http://127.0.0.1:8098/status" # Echo # Ce a procesat consumer-ul Mariei din git (daca e gol, nu ea a raspuns) tail -20 ~/.maria-bridge/logs/rag.log # LLM-ul de raspuns curl -s http://10.0.20.161:8091/v1/models ``` **Regula:** WhatsApp-ul lui Echo (LXC 110) și cel al Mariei (LXC 104) sunt legate la **același număr**, `+40723197939`, ca dispozitive diferite ale aceluiași cont. Un mesaj poate ajunge la ambele. Dacă primești două răspunsuri, două punți sunt active simultan. --- ## Capcane - **„Maria" nu e un singur lucru.** Întreabă întâi: web (Flowise), WhatsApp de pe 104, sau WhatsApp de pe 171? - **Prototipul de pe 104 nu e în git.** Modificările făcute acolo nu se văd nicăieri și se pierd. Codul versionat e cel de pe 171. - **Depozitul Mariei din git e oglindă a Google Drive.** `rclone sync` șterge local ce nu mai există în Drive; un document adăugat manual din dashboard dispare la următoarea sincronizare. - **Reindexarea durează ~21 de minute** pentru 173 de chunk-uri (embedding CPU-only, ~7,3 s per chunk pe LXC 171). Nu pare blocată — chiar durează. - **Maria nu are voie la infrastructură.** E chatbot pentru clienții ERP ROA; nimic din `proxmox/`, niciun IP, port sau credențial nu intră în depozitul ei de documente. Puntea Discord, în schimb, are acces la tot. Vezi `claude-agent/CLAUDE.md`.