docs: care chatbot e care — trei "Maria", doi boti de Discord, doua punti WhatsApp
Pe 2026-08-31 s-a pierdut aproape o ora de diagnostic fiindca Maria raspundea pe WhatsApp, dar verificarile se faceau pe containerul gresit: pe LXC 171 totul parea rupt (niciun LLM pe 8091, WhatsApp neasociat, log fara activitate) in timp ce raspunsurile veneau de pe LXC 104. Nicio pagina nu spunea ca exista doua instalari. docs/chatboti-si-punti.md, verificat live: tabel scurt "cine e cine", cate o sectiune per instanta (Maria pe Flowise, Maria WhatsApp de pe 104 care e cea vie, Maria din git de pe 171 care nu e asociata, Echo pe 110, puntea Discord), tabel de porturi cu notarea ca 8099 si 11434 exista pe ambele containere cu continut diferit, comenzi de verificat cu cine vorbesti, si capcanele (prototipul de pe 104 nu e in git, depozitul e oglinda a Drive-ului, reindexarea dureaza ~21 min, granita Mariei fata de infrastructura). Faptul care lega totul: WhatsApp-ul lui Echo (110) si al Mariei (104) sunt legate la acelasi numar, +40723197939, ca dispozitive diferite ale aceluiasi cont. Documentul e legat din CLAUDE.md si dintr-un citat pus in capul celor cinci README-uri implicate, ca sa fie gasit de cine aterizeaza direct acolo. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Q4uzvgm7AyJch5WH8QHRhY
This commit is contained in:
@@ -45,6 +45,7 @@ input/ # Oracle DMP files for import
|
|||||||
- **Oracle database setup**: `proxmox/lxc108-oracle/README.md`
|
- **Oracle database setup**: `proxmox/lxc108-oracle/README.md`
|
||||||
- **Migration orchestration**: `proxmox/lxc108-oracle/migration/00-MASTER-MIGRATION.sh`
|
- **Migration orchestration**: `proxmox/lxc108-oracle/migration/00-MASTER-MIGRATION.sh`
|
||||||
- **Chatbot architecture**: `proxmox/lxc104-flowise/docs/prd.md`
|
- **Chatbot architecture**: `proxmox/lxc104-flowise/docs/prd.md`
|
||||||
|
- **Care chatbot e care (trei „Maria", doi boți de Discord, două punți WhatsApp pe același număr)**: `docs/chatboti-si-punti.md`
|
||||||
- **Docker Sandboxes (sbx) — agenți AI izolați**: `proxmox/lxc102-docker/README.md`
|
- **Docker Sandboxes (sbx) — agenți AI izolați**: `proxmox/lxc102-docker/README.md`
|
||||||
- **Punte Discord → Claude Code (comandă LXC 171 de pe telefon, dintr-un guild privat)**: `proxmox/lxc171-claude-agent/discord-bridge/README.md`
|
- **Punte Discord → Claude Code (comandă LXC 171 de pe telefon, dintr-un guild privat)**: `proxmox/lxc171-claude-agent/discord-bridge/README.md`
|
||||||
- **Dashboard de control al punții Discord (stare, restart, orfani, confirmări; https://claude-agent.tailf7372d.ts.net/claude)**: `proxmox/lxc171-claude-agent/discord-bridge/dashboard/README.md`
|
- **Dashboard de control al punții Discord (stare, restart, orfani, confirmări; https://claude-agent.tailf7372d.ts.net/claude)**: `proxmox/lxc171-claude-agent/discord-bridge/dashboard/README.md`
|
||||||
|
|||||||
158
docs/chatboti-si-punti.md
Normal file
158
docs/chatboti-si-punti.md
Normal file
@@ -0,0 +1,158 @@
|
|||||||
|
# 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`.
|
||||||
@@ -1,5 +1,9 @@
|
|||||||
# LXC 104 - Flowise AI (Chatbot Maria)
|
# LXC 104 - Flowise AI (Chatbot Maria)
|
||||||
|
|
||||||
|
> **Care chatbot e care?** Exista trei lucruri numite „Maria", doi boti pe Discord si
|
||||||
|
> doua punti WhatsApp legate la acelasi numar. Inainte de a depana, citeste
|
||||||
|
> [`docs/chatboti-si-punti.md`](../../docs/chatboti-si-punti.md) — spune care instanta raspunde de fapt.
|
||||||
|
|
||||||
**Director:** `proxmox/lxc104-flowise/`
|
**Director:** `proxmox/lxc104-flowise/`
|
||||||
**VMID:** 104
|
**VMID:** 104
|
||||||
**IP:** 10.0.20.161
|
**IP:** 10.0.20.161
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
# LXC 110 - MoltBot (AI Chatbot)
|
# LXC 110 - MoltBot (AI Chatbot)
|
||||||
|
|
||||||
|
> **Care chatbot e care?** Exista trei lucruri numite „Maria", doi boti pe Discord si
|
||||||
|
> doua punti WhatsApp legate la acelasi numar. Inainte de a depana, citeste
|
||||||
|
> [`docs/chatboti-si-punti.md`](../../docs/chatboti-si-punti.md) — spune care instanta raspunde de fapt.
|
||||||
|
|
||||||
**Director:** `proxmox/lxc110-moltbot/`
|
**Director:** `proxmox/lxc110-moltbot/`
|
||||||
**VMID:** 110
|
**VMID:** 110
|
||||||
**IP:** 10.0.20.173 (intern) | 100.120.119.70 (Tailscale)
|
**IP:** 10.0.20.173 (intern) | 100.120.119.70 (Tailscale)
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
# LXC 171 - Claude Agent (Development Environment)
|
# LXC 171 - Claude Agent (Development Environment)
|
||||||
|
|
||||||
|
> **Care chatbot e care?** Exista trei lucruri numite „Maria", doi boti pe Discord si
|
||||||
|
> doua punti WhatsApp legate la acelasi numar. Inainte de a depana, citeste
|
||||||
|
> [`docs/chatboti-si-punti.md`](../../docs/chatboti-si-punti.md) — spune care instanta raspunde de fapt.
|
||||||
|
|
||||||
**Director:** `proxmox/lxc171-claude-agent/`
|
**Director:** `proxmox/lxc171-claude-agent/`
|
||||||
**VMID:** 171
|
**VMID:** 171
|
||||||
**IP:** 10.0.20.171 (intern) | 100.95.55.51 (Tailscale)
|
**IP:** 10.0.20.171 (intern) | 100.95.55.51 (Tailscale)
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
# Punte Discord -> Claude Code (LXC 171)
|
# Punte Discord -> Claude Code (LXC 171)
|
||||||
|
|
||||||
|
> **Care chatbot e care?** Exista trei lucruri numite „Maria", doi boti pe Discord si
|
||||||
|
> doua punti WhatsApp legate la acelasi numar. Inainte de a depana, citeste
|
||||||
|
> [`docs/chatboti-si-punti.md`](../../../docs/chatboti-si-punti.md) — spune care instanta raspunde de fapt.
|
||||||
|
|
||||||
Un bot Discord subtire care duce mesajele dintr-un guild privat catre CLI-ul `claude`
|
Un bot Discord subtire care duce mesajele dintr-un guild privat catre CLI-ul `claude`
|
||||||
care ruleaza pe containerul de dezvoltare **LXC 171 (claude-agent, 10.0.20.171)**, si
|
care ruleaza pe containerul de dezvoltare **LXC 171 (claude-agent, 10.0.20.171)**, si
|
||||||
aduce raspunsurile inapoi. Practic: acelasi Claude Code cu care lucrezi in terminal,
|
aduce raspunsurile inapoi. Practic: acelasi Claude Code cu care lucrezi in terminal,
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
# Punte WhatsApp + RAG pentru Maria (LXC 171)
|
# Punte WhatsApp + RAG pentru Maria (LXC 171)
|
||||||
|
|
||||||
|
> **Care chatbot e care?** Exista trei lucruri numite „Maria", doi boti pe Discord si
|
||||||
|
> doua punti WhatsApp legate la acelasi numar. Inainte de a depana, citeste
|
||||||
|
> [`docs/chatboti-si-punti.md`](../../../docs/chatboti-si-punti.md) — spune care instanta raspunde de fapt.
|
||||||
|
|
||||||
Bot de suport ROA pe WhatsApp: puntea WhatsApp (Baileys) primeste mesajele,
|
Bot de suport ROA pe WhatsApp: puntea WhatsApp (Baileys) primeste mesajele,
|
||||||
consumer-ul RAG raspunde folosind DOAR informatiile dintr-un depozit de
|
consumer-ul RAG raspunde folosind DOAR informatiile dintr-un depozit de
|
||||||
documente indexat cu embeddings (Ollama). Controlul (start/stop/restart,
|
documente indexat cu embeddings (Ollama). Controlul (start/stop/restart,
|
||||||
|
|||||||
Reference in New Issue
Block a user