diff --git a/AGENTS.md b/AGENTS.md index 8f4f31c..0c787a0 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -231,6 +231,19 @@ Pe Discord/WhatsApp, folosesc reacții emoji natural: --- +## 🧾 Procesare Bonuri (OBLIGATORIU) + +Când Marius trimite un **PDF** și scrie "procesează bon" / "bon" / "adaugă bon": +1. **Găsesc PDF-ul** în media/inbound (ultimul primit) +2. **Rulez dry run:** `python3 tools/process_bon.py ` +3. **Arăt rezultatul:** partener, total, TVA, note contabile +4. **Aștept confirmare:** "ok" / "salvează" / "da" +5. **Salvez:** `python3 tools/process_bon.py --save` + +**Cuvinte cheie:** "procesează bon", "bon fiscal", "adaugă bon", "înregistrează bon" + +--- + ## 🎬 YouTube Notes (OBLIGATORIU) Când primesc un link YouTube: diff --git a/TOOLS.md b/TOOLS.md index 8269072..2a6c438 100644 --- a/TOOLS.md +++ b/TOOLS.md @@ -44,6 +44,40 @@ **Pentru orice altă adresă:** Citesc și raportez, aștept aprobare. +### Transcriere Audio/Video (Whisper) +- **Model:** OpenAI Whisper (local, CPU) +- **Dependințe:** PyTorch CPU, ffmpeg (static binary în ~/bin/) +- **Venv:** `~/clawd/venv/` + +**Utilizare:** +```bash +cd ~/clawd && source venv/bin/activate +export PATH="$HOME/bin:$PATH" + +# Transcriere directă +python3 -c " +import whisper +model = whisper.load_model('base') +result = model.transcribe('/path/to/audio.mp3', language='ro') +print(result['text']) +" + +# Download de pe Google Drive + transcriere +gdown 'FILE_ID' -O /tmp/audio.mp3 +``` + +**Modele disponibile:** +- `tiny` - cel mai rapid, mai puțin precis +- `base` - echilibru bun (folosit default) +- `small`, `medium`, `large` - mai precise, mai lente + +**Formate suportate:** mp3, mp4, wav, m4a, webm, etc. (orice ffmpeg poate procesa) + +**Note:** +- Pe CPU durează mai mult (~1x real-time pentru base) +- Pentru română, base e suficient de precis +- Transcrierea poate avea erori minore de recunoaștere + ### Dashboard - **URL:** https://moltbot.tailf7372d.ts.net/echo/ - **Task add:** `python3 dashboard/update_task.py add in-progress "titlu"` @@ -97,6 +131,23 @@ memory_get path="memory/file.md" from=1 lines=50 3. Re-indexează DOAR fișierul modificat (incremental) 4. Celelalte fișiere rămân neatinse +### Procesare Bonuri Fiscale (PDF → Oracle) +- **Script:** `python3 tools/process_bon.py [--save]` +- **Comandă:** Când Marius trimite PDF + "procesează bon" sau "bon fiscal" +- **Dry run:** fără `--save` - arată ce ar salva +- **Salvare:** cu `--save` - salvează efectiv în Oracle + +**Flux:** +1. Marius trimite PDF pe WhatsApp/Discord +2. Marius scrie: "procesează bon" / "bon" / "adaugă bon" +3. Echo rulează dry run, arată rezultatul +4. Marius confirmă "ok" / "salvează" → Echo rulează cu --save + +**Ce face scriptul:** +- OCR via roa2web API +- SQLite: receipt complet +- Oracle: partener + note contabile (ID_JTVA, TAXCODE, etc.) + ### Git - **Repo:** ~/clawd → gitea.romfast.ro/romfast/clawd - **Commit:** `python3 tools/git_commit.py --push` diff --git a/dashboard/issues.json b/dashboard/issues.json index c860c15..8448e6b 100644 --- a/dashboard/issues.json +++ b/dashboard/issues.json @@ -1,5 +1,5 @@ { - "lastUpdated": "2026-02-02T22:27:06.452Z", + "lastUpdated": "2026-02-03T17:20:07.199Z", "programs": [ "ROACONT", "ROAGEST", @@ -21,10 +21,11 @@ "program": "ROACONT", "owner": "robert", "priority": "urgent-important", - "status": "todo", + "status": "done", "created": "2026-02-02T11:25:18.115Z", "deadline": "2026-02-02", - "updated": "2026-02-02T22:27:06.428Z" + "updated": "2026-02-02T22:27:06.428Z", + "completed": "2026-02-03T17:20:07.195Z" }, { "id": "ROA-001", diff --git a/memory/2026-02-03.md b/memory/2026-02-03.md index 559c93b..98da77b 100644 --- a/memory/2026-02-03.md +++ b/memory/2026-02-03.md @@ -1,5 +1,44 @@ # 3 Februarie 2026 +## roa2web WhatsApp Import - COMPLET + +### Ce s-a realizat: +1. **OCR prin API** - doctr-plus, ~4 sec per bon (nu 30 sec ca PaddleOCR cold start) +2. **Flux complet testat:** PDF WhatsApp → OCR → SQLite → Oracle +3. **Scripturi în repo:** `roa2web/backend/scripts/whatsapp_import/` +4. **Commit:** `1366dbc` pe main + +### Flux final: +``` +PDF (WhatsApp) → OCR API (~4sec) → SQLite (draft) → Aprobare frontend → Oracle +``` + +### Probleme rezolvate: +- **Oracle pool "SID not found"** - trebuia restart complet backend (kill -9) +- **Frontend fără server dropdown** - Marius a fixat și făcut commit +- **Server ID** - acum e `central` nu `test` + +### Endpoint-uri API folosite: +- `POST /api/auth/login` - cu server_id="central" +- `POST /api/auth/check-identity` - verifică user și returnează servere +- `POST /api/data-entry/ocr/extract` - submit OCR job +- `GET /api/data-entry/ocr/jobs/{id}` - rezultat OCR +- `POST /api/data-entry/receipts/` - creare receipt în SQLite + +### Test real efectuat: +- Bon Dedeman (RO10562600) primit pe WhatsApp +- OCR: 5.2 sec, confidence 96% +- Salvat în SQLite: ID=73, status=draft +- Salvat și în Oracle: COD=1140631, luna 01/2026 + +### Locații importante (claude-agent LXC 171): +- Backend: http://localhost:8000 (sau claude-agent:8000) +- Frontend: http://localhost:3000 (sau claude-agent:3000) +- Scripturi: `/workspace/roa2web/backend/scripts/whatsapp_import/` +- Start: `./start.sh central` + +--- + ## Decizii - (în așteptare raport dimineață) @@ -13,6 +52,10 @@ - [ ] A2: Sistemul 5 pași pentru frici (15 min) - de programat - [ ] Verificare securitate Clawdbot (din insights tehnice) - [ ] Verificare email replies (flux nefuncțional?) +- [ ] **BON DE SALVAT:** CUI RO11201891, 310.98 RON, 02.02.2026 + - PDF: `2831eeeb-f331-4fb1-a7b1-ede1c954eadb.pdf` + - Partener nou - de verificat numele real + - Dry run făcut, așteaptă confirmare ## Insights disponibile (din 2026-02-03.md) - ⚡ Heartbeat cost optimization - VERIFICAT, monitorizăm diff --git a/memory/heartbeat-state.json b/memory/heartbeat-state.json index 5cced01..f59f323 100644 --- a/memory/heartbeat-state.json +++ b/memory/heartbeat-state.json @@ -1,12 +1,13 @@ { "lastChecks": { - "agents_sync": "2026-02-02", - "email": 1770044415, - "calendar": null, - "git": 1769965200, + "agents_sync": "2026-02-03", + "email": 1770206400, + "calendar": 1770206400, + "git": 1770220800, "kb_index": 1770022820 }, "notes": { - "2026-02-02": "15:00 UTC - Email OK (nimic nou). Cron jobs funcționale toată ziua." + "2026-02-02": "15:00 UTC - Email OK (nimic nou). Cron jobs funcționale toată ziua.", + "2026-02-03": "12:00 UTC - Calendar: sesiune 15:00 alertată. Emailuri răspuns rapoarte în inbox (deja read)." } } diff --git a/memory/kb/index.json b/memory/kb/index.json index 0f38061..93708b3 100644 --- a/memory/kb/index.json +++ b/memory/kb/index.json @@ -64,11 +64,11 @@ "project": null, "subdir": null, "video": "", - "tldr": "*Surse: Video-uri tehnice Clawdbot/Claude Code*" + "tldr": "*Surse: Video-uri tehnice Clawdbot/Claude Code/Lead Generation*" }, { - "file": "notes-data/projects/analiza-telegram-whatsapp-roa2web.md", - "title": "Analiză: Telegram/WhatsApp → roa2web → Contabilitate ROA", + "file": "notes-data/projects/roa2web-telegram-import/README.md", + "title": "Proiect: Import Bonuri Fiscale via Telegram/WhatsApp → ROA", "date": "2026-02-03", "tags": [], "domains": [ @@ -78,27 +78,55 @@ "project" ], "category": "projects", - "project": null, + "project": "roa2web-telegram-import", "subdir": null, "video": "", - "tldr": "Integrare canale messaging (Telegram/WhatsApp) cu roa2web pentru import documente în contabilitatea ROA. OCR prin Doctr (cost zero, local). Flux cu aprobare contabil." + "tldr": "Sistem pentru importul bonurilor fiscale de achiziție din Telegram/WhatsApp în contabilitatea ROA. OCR prin Doctr (cost zero, local). Integrare cu Oracle prin proceduri existente (PACK_CONTAFIN)." }, { - "file": "notes-data/projects/analiza-import-bonuri-pdf.md", - "title": "Analiză: Sistem Import Bonuri PDF via Telegram/Discord/WhatsApp → roa2web", + "file": "notes-data/projects/roa2web-telegram-import/schema-oracle.md", + "title": "Schema Oracle - ROA (MARIUSM_AUTO)", "date": "2026-02-03", "tags": [], - "domains": [ - "work" - ], - "types": [ - "project" - ], + "domains": [], + "types": [], "category": "projects", - "project": null, + "project": "roa2web-telegram-import", "subdir": null, "video": "", - "tldr": "Sistem pentru importul bonurilor fiscale (PDF/imagine) în ERP ROA prin canale de mesagerie. Utilizatorul trimite poza bonului → OCR extrage datele → roa2web validează și importă în Oracle." + "tldr": "*Schema documentată de Echo • 2026-02-03*" + }, + { + "file": "notes-data/projects/roa2web-telegram-import/flux-contabil.md", + "title": "Flux Contabil - Import Bonuri Fiscale Achiziție", + "date": "2026-02-03", + "tags": [], + "domains": [], + "types": [], + "category": "projects", + "project": "roa2web-telegram-import", + "subdir": null, + "video": "", + "tldr": "*Flux documentat de Echo • 2026-02-03*" + }, + { + "file": "notes-data/projects/grup-sprijin/biblioteca/meditatie-vizualizare-motivatie.md", + "title": "Meditație: Vizualizare pentru Motivație", + "date": "2026-02-03", + "tags": [ + "grup-sprijin" + ], + "domains": [ + "sprijin" + ], + "types": [ + "meditatie" + ], + "category": "projects", + "project": "grup-sprijin", + "subdir": "biblioteca", + "video": "", + "tldr": "Exercițiu de vizualizare care leagă o acțiune pentru care vrei motivație de o stare de plăcere intensă din trecut. Folosește tehnica \"fissurii în ecran\" pentru a transfera emoțional motivația." }, { "file": "notes-data/youtube/2026-02-03_openclaw-72-hours-full-breakdown.md", @@ -1689,12 +1717,12 @@ } ], "stats": { - "total": 92, + "total": 94, "by_domain": { - "work": 27, + "work": 26, "health": 16, "growth": 33, - "sprijin": 26, + "sprijin": 27, "scout": 2 }, "by_category": { @@ -1702,7 +1730,7 @@ "emails": 1, "health": 1, "insights": 8, - "projects": 23, + "projects": 25, "reflectii": 3, "retete": 1, "youtube": 38, diff --git a/memory/kb/insights/2026-02-03.md b/memory/kb/insights/2026-02-03.md index 7080252..bf2d812 100644 --- a/memory/kb/insights/2026-02-03.md +++ b/memory/kb/insights/2026-02-03.md @@ -1,12 +1,12 @@ # Insights - 3 Februarie 2026 -**Surse procesate:** 3 note tehnice noi + 1 insight anterior -**Focus:** Optimizări Clawdbot + Multi-agent orchestration -**Actualizat:** 06:00 UTC +**Surse procesate:** 5 note tehnice noi + insights anterioare +**Focus:** Optimizări Clawdbot + Multi-agent + **Lead Generation pentru clienți noi** +**Actualizat:** 17:00 UTC (19:00 București) --- -## 🔗 CONEXIUNE: De la Tool la Companion +## 🔗 CONEXIUNE: De la Tool la Companion → la CLIENȚI NOI **Pattern descoperit:** Notele tehnice de azi completează un cerc important: @@ -16,10 +16,17 @@ TOOL (Clawdbot) ← COST OPTIMIZATION ← MULTI-AGENT ← SECURITATE MARIUS: 80/20 mindset ↓ APLICARE: Delegare eficientă, nu micromanagement + ↓ + ⚡ NOU: Automatizare lead generation = + deblocare "nu caut clienți noi" ``` +**Insight cheie seară:** Nota despre "Unlimited Leads with Claude Code" atacă DIRECT provocarea principală a lui Marius: inacțiunea în căutarea clienților noi. + Ironia: Clawdbot (pe care rulăm) e exemplul perfect de "do things, not suggest things" - exact ce Marius vrea de la angajatul nou! +**Și acum:** Poate face lead generation automat, eliminând FRICȚIA care probabil cauzează inacțiunea. + --- ## @work - Tehnic și business @@ -158,6 +165,64 @@ MULTI-AGENT (dorit): --- +### [ ] ⚡ **COLD EMAIL AUTOMATIZAT - Soluția pentru "nu caut clienți noi" (prioritate: ⚡urgent)** + +**Context:** Din video-ul "How I Get Unlimited Leads Using Claude Code" - o agenție a construit sistem de lead generation care procesează 272,000 leads/secundă. + +**Esența PROFUNDĂ:** +James, care NU știa să codeze, a construit întregul sistem într-o săptămână după ce a învățat Claude Code timp de 3 săptămâni. Nu e vorba de "învață programare", ci de "descrie ce vrei și lasă AI-ul să construiască". + +**Conexiune DIRECTĂ cu Marius:** + +1. **Credința limitativă:** "Clienți noi = mai multă muncă" + - **Realitate:** Sistemul automatizat ELIMINĂ munca manuală de prospecting + - Cold email la scară = AI face screening-ul, tu vorbești doar cu cei interesați + +2. **Inacțiune în căutarea clienților:** + - **Cauza profundă:** Probabil nu e lene, ci FRICȚIE - e obositor să faci manual + - **Soluția 80/20:** Automatizează partea grea (găsit leads, validat emails, trimis), rămâi doar cu conversațiile + +3. **Model de business ROA:** + - Clienții lui sunt software houses cu ERP-uri + - Cold email către companii care au nevoie de soluții Oracle/contabilitate + - Google Ads library scraper → găsești companii care rulează ads (= au buget) + +**Ce au construit ei (și ce s-ar putea adapta):** +- Lead Processor: validare email în timp real +- Ad Library Scrapers: găsesc companii care rulează ads Google/LinkedIn +- Auto-Refill: când rămâi fără leads, se reîncarcă automat +- Executive Summary: raport AI despre ce funcționează + +**Rezultate lor:** +- RB2B: $4M ARR în 4 luni (42% din cold email) +- Fixer AI: $4.3M pipeline anual +- 8.8 milioane emails/lună + +**Acțiune concretă propusă:** + +**Varianta MINIMĂ (80/20):** +1. Echo creează un scraper simplu care găsește companii românești care: + - Au anunțuri de angajare pentru contabil/economist + - Sau postează despre ERP/software contabilitate pe LinkedIn +2. Lista → manual review de Marius (5 min/zi) +3. Template email personalizat per industrie +4. Trimitere semi-automată + +**Efort:** Echo ~4h setup, Marius ~30 min/săptămână review +**Potențial:** 5-10 leads calificate/săptămână + +**⚠️ ÎNTREBARE pentru Marius:** +"Dacă ai avea o listă de 10 companii/săptămână care au nevoie DEMONSTRABILĂ de soluții ROA, și un email template gata de trimis, ai acționa?" + +Dacă răspunsul e DA → construiesc sistemul. +Dacă răspunsul e "tot nu aș face" → problema nu e lipsa lead-urilor, ci altceva mai profund. + +**✅ RECOMAND** - direct pe provocarea principală, efort mic pentru varianta minimă + +**Sursă:** [How I Get Unlimited Leads Using Claude Code](files.html#memory/kb/youtube/2026-02-03_unlimited-leads-claude-code-cold-email.md) + +--- + ### [ ] 💡 **DON'T WORK ON APP, WORK ON AGENTS (prioritate: 💡nice)** **Context:** Citat transformator: @@ -241,33 +306,47 @@ MULTI-AGENT (dorit): | Angajat nou | Control vs autonomie | Nivele de trust progresive | | Clienți noi | Efort vs venit | Automatizează prospectarea | +### Tema: INACȚIUNE CLIENȚI NOI (NOU!) + +| Barieră percepută | Realitate | Soluție | +|-------------------|-----------|---------| +| "E prea multă muncă" | Munca manuală da, automatizat nu | Sistem lead gen automat | +| "Nu știu unde să caut" | AI poate găsi semnale (ads, hiring) | Scrapers LinkedIn/Google | +| "Cold email nu funcționează" | La ei: 42% din revenue = cold email | Template + personalizare | +| "Nu am timp" | 30 min/săptămână pentru review | Echo face restul | + --- ## ❓ Întrebări pentru Marius -1. **Vrei să verificăm configurația de securitate Clawdbot?** E meta - video-ul e despre tool-ul pe care îl folosim. +1. **CLIENȚI NOI (cea mai importantă):** Dacă ai avea o listă de 10 companii/săptămână care au nevoie demonstrabilă de soluții ROA, și un email template gata de trimis, ai acționa? (Răspunsul sincer la asta ne spune dacă problema e fricțiune sau altceva mai profund) -2. **Pentru angajat: ce nivel de sandbox ar fi confortabil?** Definit, Parametrizat, sau Autonom? +2. **Vrei să verificăm configurația de securitate Clawdbot?** E meta - video-ul e despre tool-ul pe care îl folosim. -3. **Ai experimentat cu "coding overnight"?** Descrii seara, review dimineața? +3. **Pentru angajat: ce nivel de sandbox ar fi confortabil?** Definit, Parametrizat, sau Autonom? -4. **Ce "agenți" (documentație/template) ar putea face training-ul pentru tine?** +4. **Ai experimentat cu "coding overnight"?** Descrii seara, review dimineața? + +5. **Ce "agenți" (documentație/template) ar putea face training-ul pentru tine?** --- ## 📊 Statistici procesare -**Surse noi:** 3 note tehnice +**Surse procesate azi:** 5 note tehnice - OpenClaw 72h Breakdown - Clawdbot Cost Optimization - Claude Code Task System +- **NOU:** Unlimited Leads Claude Code Cold Email +- OpenClaw Use Cases Automations -**Insights extrase:** 7 total (+ 1 anterior păstrat) -- ⚡ Urgent: 2 (securitate, cost) +**Insights extrase:** 8 total +- ⚡ Urgent: 3 (securitate, cost, **COLD EMAIL/CLIENȚI NOI**) - 📌 Important: 4 (delegare, multi-agent, overnight, fundamentele) - 💡 Nice: 1 (meta-level work) **Conexiuni cu provocările lui Marius:** +- **Inacțiune clienți noi → 1 insight DIRECT și acționabil** - Angajat nou și training → 3 insights directe - Stil 80/20 → 2 insights directe - Securitate infrastructură → 1 insight @@ -277,5 +356,6 @@ MULTI-AGENT (dorit): --- -*Actualizat: 2026-02-03 06:00 UTC* -*Surse: Video-uri tehnice Clawdbot/Claude Code* +*Actualizat: 2026-02-03 17:00 UTC (19:00 București)* +*Run: insights-extract seară* +*Surse: Video-uri tehnice Clawdbot/Claude Code/Lead Generation* diff --git a/memory/kb/projects/analiza-import-bonuri-pdf.md b/memory/kb/projects/analiza-import-bonuri-pdf.md deleted file mode 100644 index 4a64f2e..0000000 --- a/memory/kb/projects/analiza-import-bonuri-pdf.md +++ /dev/null @@ -1,226 +0,0 @@ -# Analiză: Sistem Import Bonuri PDF via Telegram/Discord/WhatsApp → roa2web - -**Data:** 2026-02-03 -**Status:** Analiză conceptuală -**Tags:** @work @project - ---- - -## TL;DR - -Sistem pentru importul bonurilor fiscale (PDF/imagine) în ERP ROA prin canale de mesagerie. Utilizatorul trimite poza bonului → OCR extrage datele → roa2web validează și importă în Oracle. - ---- - -## 1. Arhitectură Propusă - -``` -┌─────────────┐ ┌─────────────┐ ┌──────────────┐ ┌─────────────┐ -│ Telegram │ │ │ │ │ │ │ -│ Discord │────▶│ Clawdbot │────▶│ OCR Engine │────▶│ roa2web │ -│ WhatsApp │ │ (Router) │ │ (Parsare) │ │ (FastAPI) │ -└─────────────┘ └─────────────┘ └──────────────┘ └─────────────┘ - │ │ │ - │ │ │ - ▼ ▼ ▼ - • Primește fișier • Tesseract/Mistral • Validare date - • Identifică tip • Extrage câmpuri • Import Oracle - • Rutare canal • Structurează JSON • Confirmare user -``` - ---- - -## 2. Componente Tehnice - -### 2.1 Canale Inbound (Clawdbot) - -| Canal | Cum primește | Format acceptat | -|-------|--------------|-----------------| -| Telegram | Bot API / file_id | PDF, JPG, PNG | -| Discord | Attachment | PDF, JPG, PNG | -| WhatsApp | Media message | PDF, JPG, PNG | - -**Clawdbot poate:** -- Detecta atașamente pe orice canal -- Descărca fișierul local temporar -- Ruta către procesare OCR - -### 2.2 OCR Engine - -**Opțiuni (în ordinea complexității):** - -| Soluție | Pro | Contra | Efort | -|---------|-----|--------|-------| -| **Tesseract + regex** | Gratuit, local | Acuratețe medie, layout-uri diverse | Mic | -| **Mistral OCR API** | Calitate bună, JSON direct | Cost per request | Mic | -| **Claude Vision** | Excelent la context | Cost mai mare | Mic | -| **Google Document AI** | Enterprise, structurat | Cost, setup complex | Mare | - -**Recomandare:** Mistral OCR sau Claude Vision - calitate bună, integrare simplă cu Clawdbot. - -### 2.3 Câmpuri de Extras din Bon - -```json -{ - "tip_document": "bon_fiscal", - "data": "2026-02-03", - "ora": "14:32", - "furnizor": { - "nume": "MEGA IMAGE SRL", - "cui": "RO12345678", - "adresa": "Str. Exemplu nr. 1" - }, - "articole": [ - {"denumire": "Paine alba", "cantitate": 1, "pret_unitar": 4.50, "valoare": 4.50}, - {"denumire": "Lapte 1L", "cantitate": 2, "pret_unitar": 8.00, "valoare": 16.00} - ], - "total": 20.50, - "tva": { - "cota_9": 1.50, - "cota_19": 0.50 - }, - "numar_bon": "0001234", - "casa_marcat": "ABC12345" -} -``` - -### 2.4 roa2web Integration - -**Endpoint propus:** `POST /api/data-entry/import-bon` - -```python -# FastAPI endpoint -@router.post("/import-bon") -async def import_bon( - bon_data: BonFiscalSchema, - user_id: str = Depends(get_current_user) -): - # 1. Validare date (CUI valid, sume corecte) - # 2. Mapare furnizor în baza ROA - # 3. Creare document intrare marfă - # 4. Return confirmare + document_id -``` - ---- - -## 3. Flux Utilizator - -### 3.1 Happy Path - -1. **Marius** face poză la bon în magazin -2. **Trimite** pe Telegram la @ROABot (sau grup dedicat) -3. **Clawdbot** detectează imagine, descarcă -4. **OCR** extrage datele, validează structura -5. **Clawdbot** trimite preview: "Am extras: Mega Image, 20.50 RON, 3 articole. Confirm import? ✅/❌" -6. **Marius** confirmă (sau corectează) -7. **roa2web** importă în Oracle -8. **Confirmare**: "✅ Bon importat. Document #12345" - -### 3.2 Edge Cases - -| Situație | Handling | -|----------|----------| -| Poză neclară | "Nu am putut citi bonul. Retrimite o poză mai clară." | -| Furnizor nou | "Furnizor MEGA IMAGE nu există. Creez? [Da/Nu]" | -| Articol necunoscut | "Articol 'Paine alba' nu are corespondent. Alege: [1] Paine [2] Produse panificatie [3] Skip" | -| PDF protejat | "PDF-ul e protejat. Trimite ca imagine." | - ---- - -## 4. Provocări și Soluții - -### 4.1 Calitatea imaginii -- **Problemă:** Poze făcute pe fugă, iluminate prost -- **Soluție:** - - Pre-procesare imagine (contrast, deskew) - - Fallback la input manual dacă OCR confidence < 70% - -### 4.2 Varietatea formatelor -- **Problemă:** Fiecare comerciant are alt layout -- **Soluție:** - - LLM (Claude/Mistral) extrage semantic, nu pe poziție - - Template-uri pentru comercianți frecvenți (Mega, Lidl, Kaufland) - -### 4.3 Mapare articole -- **Problemă:** "Lapte Zuzu 1L 3.5%" vs cod ROA "LAPTE_001" -- **Soluție:** - - Fuzzy matching pe denumire - - Tabel mapări (bon_text → cod_roa) - - Learning: salvează mapările confirmate - -### 4.4 Rate limiting canale -- **Problemă:** WhatsApp/Telegram pot limita -- **Soluție:** - - Queue local pentru procesare - - Confirmare async ("Procesez, te anunț în 30 sec") - ---- - -## 5. Plan Implementare - -### Faza 1: POC (2-3 zile) -- [ ] Endpoint Clawdbot pentru primire fișier -- [ ] Integrare Mistral OCR / Claude Vision -- [ ] Parsare bon simplu (1 comerciant test) -- [ ] Răspuns pe canal cu datele extrase - -### Faza 2: Integrare roa2web (3-5 zile) -- [ ] Endpoint FastAPI `/api/import-bon` -- [ ] Validare și mapare furnizor -- [ ] Creare document Oracle -- [ ] Confirmare utilizator - -### Faza 3: Polish (2-3 zile) -- [ ] Handling edge cases -- [ ] Template-uri comercianți mari -- [ ] Tabel mapări articole -- [ ] Logging și statistici - -### Faza 4: Extindere (opțional) -- [ ] Suport pentru mai multe tipuri documente (facturi, chitanțe) -- [ ] Batch import (multiple bonuri) -- [ ] Dashboard statistici achiziții - ---- - -## 6. Efort Estimat - -| Componentă | Ore | Cine | -|------------|-----|------| -| Clawdbot file handler | 2-4 | Echo/Claude | -| OCR integration | 2-3 | Echo/Claude | -| roa2web endpoint | 4-6 | Marius + Claude | -| Mapări și validări | 4-8 | Marius | -| **Total MVP** | **12-21 ore** | Mix | - -**Cost OCR estimat:** ~$0.01-0.05 per bon (Claude Vision sau Mistral) - ---- - -## 7. Beneficii - -- **Timp economisit:** 2-5 min/bon → 10 sec/bon -- **Erori reduse:** OCR consistent vs. tastare manuală -- **Mobilitate:** Import din teren, nu doar de la birou -- **Trasabilitate:** Fiecare bon are sursa (poza originală) - ---- - -## 8. Următorii Pași - -1. **Marius decide:** Merită efortul? Câte bonuri/lună? -2. **Test rapid:** Un bon de la Mega Image → Claude Vision → vezi output -3. **Prototip:** Clawdbot + Claude Vision → răspuns formatat - ---- - -## 9. Întrebări pentru Marius - -1. Câte bonuri/documente procesezi lunar manual? -2. Care sunt cei mai frecvenți furnizori? -3. Ce câmpuri sunt obligatorii în ROA pentru intrare marfă? -4. Preferi confirmare înainte de import sau import direct cu corecție ulterioară? - ---- - -*Analiză generată de Echo • 2026-02-03 03:00* diff --git a/memory/kb/projects/analiza-telegram-whatsapp-roa2web.md b/memory/kb/projects/analiza-telegram-whatsapp-roa2web.md deleted file mode 100644 index da8dc5e..0000000 --- a/memory/kb/projects/analiza-telegram-whatsapp-roa2web.md +++ /dev/null @@ -1,263 +0,0 @@ -# Analiză: Telegram/WhatsApp → roa2web → Contabilitate ROA - -**Data:** 2026-02-03 -**Status:** Analiză tehnică actualizată după review cod -**Tags:** @work @project - ---- - -## TL;DR - -Integrare canale messaging (Telegram/WhatsApp) cu roa2web pentru import documente în contabilitatea ROA. OCR prin Doctr (cost zero, local). Flux cu aprobare contabil. - -**UPDATE:** După analiza codului, roa2web are deja: -- ✅ OCR complet (Doctr + PaddleOCR + Tesseract) -- ✅ API `/api/data-entry/ocr/extract` funcțional -- ✅ Bot Telegram pentru dashboard/facturi/sold -- ❌ **LIPSEȘTE:** Handler fișiere în bot Telegram -- ❌ **LIPSEȘTE:** PDF text layer extraction (optimizare pentru Adobe Scan) - ---- - -## 1. Ce Există Deja - -### roa2web -- **OCR:** Doctr (local, gratuit, rezultate bune) -- **Storage:** SQLite local (bonuri procesate) -- **API:** FastAPI endpoints - -### Clawdbot -- **Canale:** Telegram ✅, WhatsApp ✅, Discord ✅ -- **Capabilități:** Primire fișiere, rutare, răspuns - -### ROA (ERP) -- **DB:** Oracle -- **Contabilitate:** Module existente pentru intrări/facturi - ---- - -## 2. Ce Lipsește (Gap Analysis) - -| Component | Status | Ce trebuie | -|-----------|--------|------------| -| Telegram → roa2web | ❌ | Endpoint webhook sau polling | -| WhatsApp → roa2web | ❌ | Endpoint webhook sau polling | -| roa2web → Oracle | ❌ | API salvare în contabilitate | -| Workflow aprobare | ❌ | UI contabil + status draft/approved | - ---- - -## 3. Arhitectură Propusă - -``` -┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ -│ Telegram │ │ │ │ │ │ │ -│ WhatsApp │────▶│ Clawdbot │────▶│ roa2web │────▶│ ROA Oracle │ -└─────────────┘ │ (Bridge) │ │ (OCR+API) │ │ (Contab) │ - └─────────────┘ └─────────────┘ └─────────────┘ - │ │ │ - ▼ ▼ ▼ - • Primește fișier • Doctr OCR • Salvare draft - • Forward la API • Extrage date • Aprobare contabil - • Răspuns user • Validare • Înregistrare finală -``` - ---- - -## 4. Opțiuni Implementare - -### Opțiunea A: Clawdbot ca Bridge (RECOMANDAT) - -**Flux:** -1. User trimite bon pe Telegram/WhatsApp -2. Clawdbot detectează fișier, îl descarcă -3. Clawdbot trimite fișierul la `roa2web/api/upload` -4. roa2web procesează cu Doctr, returnează JSON -5. Clawdbot trimite răspuns user: "Bon procesat: Mega Image, 45.50 RON" -6. roa2web salvează draft în Oracle (status: pending) -7. Contabil vede în UI, aprobă → status: approved - -**Pro:** -- Folosește Clawdbot existent -- Nu modifică roa2web prea mult -- Flexibilitate pe canale - -**Contra:** -- Clawdbot trebuie să știe să ruteze fișiere - -**Efort:** 8-12 ore - -### Opțiunea B: Webhook Direct în roa2web - -**Flux:** -1. Telegram/WhatsApp webhook direct la roa2web -2. roa2web procesează și salvează -3. roa2web trimite răspuns înapoi pe canal - -**Pro:** -- Mai direct, fără intermediar - -**Contra:** -- Trebuie implementat handler pentru fiecare canal -- Duplicare logică cu Clawdbot - -**Efort:** 15-20 ore - -### Opțiunea C: Shared Folder / Email - -**Flux:** -1. User trimite pe canal → Clawdbot salvează în folder -2. roa2web monitorizează folder, procesează automat - -**Pro:** -- Simplu, decuplat - -**Contra:** -- Fără feedback instant la user -- Polling inefficient - -**Efort:** 4-6 ore - ---- - -## 5. Recomandare: Opțiunea A (Clawdbot Bridge) - -### 5.1 Ce trebuie în Clawdbot - -```python -# Pseudo-cod: handler pentru fișiere pe Telegram/WhatsApp -async def on_file_received(channel, file, user): - # 1. Descarcă fișierul - local_path = await download_file(file) - - # 2. Trimite la roa2web - response = await http_post( - "https://roa2web.romfast.ro/api/ocr/process", - files={"file": open(local_path, "rb")}, - data={"user_id": user.id, "source": channel} - ) - - # 3. Răspuns la user - if response.ok: - data = response.json() - await reply(f"✅ Procesat: {data['furnizor']}, {data['total']} RON") - else: - await reply("❌ Eroare procesare. Încearcă din nou.") -``` - -### 5.2 Ce trebuie în roa2web - -**Endpoint nou:** `POST /api/ocr/process` -- Primește fișier (PDF/imagine) -- Procesează cu Doctr (existent) -- Salvează în SQLite (existent) + Oracle (NOU) -- Returnează JSON cu datele extrase - -**Endpoint nou:** `POST /api/contabilitate/save-draft` -- Primește datele extrase -- Creează înregistrare draft în Oracle -- Status: pending_approval - -**Endpoint nou:** `POST /api/contabilitate/approve/{id}` -- Contabil aprobă -- Status: approved → înregistrare finală - -### 5.3 UI Contabil (opțional, faza 2) - -- Lista documente pending -- Preview date extrase vs. imagine originală -- Buton Approve / Reject / Edit - ---- - -## 6. Integrare Oracle - Detalii - -### Ce tabele în ROA? - -**Întrebare pentru Marius:** -- Unde se salvează intrările de marfă/bonuri în Oracle? -- Ce câmpuri sunt obligatorii? -- Există API/proceduri Oracle existente pentru insert? - -### Propunere structură draft - -```sql --- Tabel nou pentru documente OCR pending -CREATE TABLE roa_ocr_drafts ( - id NUMBER PRIMARY KEY, - source VARCHAR2(20), -- 'telegram', 'whatsapp' - user_id VARCHAR2(50), - file_path VARCHAR2(500), - extracted_data CLOB, -- JSON cu datele OCR - status VARCHAR2(20), -- 'pending', 'approved', 'rejected' - created_at TIMESTAMP, - approved_by VARCHAR2(50), - approved_at TIMESTAMP, - roa_document_id NUMBER -- FK la documentul creat în ROA după aprobare -); -``` - ---- - -## 7. Plan Implementare - -### Faza 1: Conectare canale (3-4 ore) -- [ ] Clawdbot: handler fișiere Telegram -- [ ] Clawdbot: handler fișiere WhatsApp -- [ ] Forward la roa2web API - -### Faza 2: roa2web API (4-6 ore) -- [ ] Endpoint `/api/ocr/process` (extinde existent) -- [ ] Returnare JSON standardizat -- [ ] Logging și error handling - -### Faza 3: Salvare Oracle (4-6 ore) -- [ ] Conexiune Oracle din roa2web (cx_Oracle/oracledb) -- [ ] Tabel `roa_ocr_drafts` -- [ ] Endpoint `/api/contabilitate/save-draft` - -### Faza 4: Aprobare (2-3 ore) -- [ ] Endpoint `/api/contabilitate/approve` -- [ ] Notificare user după aprobare - -### Faza 5: UI Contabil (opțional, 4-8 ore) -- [ ] Pagină listare drafts -- [ ] Aprobare/respingere din UI - ---- - -## 8. Estimare Totală - -| Fază | Ore | Cine | -|------|-----|------| -| Conectare canale | 3-4 | Echo (Clawdbot config) | -| roa2web API | 4-6 | Marius + Claude | -| Salvare Oracle | 4-6 | Marius (cunoaște schema) | -| Aprobare | 2-3 | Marius + Claude | -| **Total MVP** | **13-19 ore** | | -| UI Contabil (opț.) | 4-8 | Marius | - -**Cost:** 0 RON (Doctr local, fără API externe) - ---- - -## 9. Întrebări pentru Marius - -1. **Schema Oracle:** În ce tabel/modul se salvează bonurile în contabilitate? -2. **Câmpuri obligatorii:** Ce date TREBUIE să existe pentru o înregistrare validă? -3. **Contabil:** Cine aprobă? Un singur user sau mai mulți? -4. **Notificări:** Contabilul vrea notificare când vine ceva nou? (email/Telegram?) -5. **roa2web deploy:** Unde rulează? Are acces la Oracle-ul de producție? - ---- - -## 10. Următorul Pas - -Când ai 30 min, hai să: -1. Clarificăm schema Oracle pentru bonuri -2. Verificăm dacă roa2web poate conecta la Oracle -3. Facem un test: Telegram → Clawdbot → roa2web → JSON response - ---- - -*Analiză generată de Echo • 2026-02-03* diff --git a/memory/kb/projects/grup-sprijin/biblioteca/meditatie-vizualizare-motivatie.md b/memory/kb/projects/grup-sprijin/biblioteca/meditatie-vizualizare-motivatie.md new file mode 100644 index 0000000..217301d --- /dev/null +++ b/memory/kb/projects/grup-sprijin/biblioteca/meditatie-vizualizare-motivatie.md @@ -0,0 +1,121 @@ +# Meditație: Vizualizare pentru Motivație + +**Sursă:** MP3 de la Marius (Google Drive) +**Durată:** ~10-12 minute +**Domenii:** @sprijin @growth +**Tip:** meditație ghidată NLP + +--- + +## TL;DR + +Exercițiu de vizualizare care leagă o acțiune pentru care vrei motivație de o stare de plăcere intensă din trecut. Folosește tehnica "fissurii în ecran" pentru a transfera emoțional motivația. + +--- + +## Pași + +1. **Relaxare** - Găsește o poziție confortabilă, închide ochii + +2. **Identifică imaginea de plăcere** + - Caută în memorie o imagine din trecut care îți produce plăcere extremă + - Poate fi un moment, o acțiune, un loc de relaxare + - Orice simți că îți produce plăcere intensă + +3. **Vizualizează pe ecranul mental** + - Proiectează imaginea pe un ecran uriaș (ca la cinematograf) + - Vezi-te pe tine în scenă, filmat din lateral + - Fii atent la ce vezi, ce auzi, ce simți + +4. **Amplifică starea** + - Imaginează-ți o telecomandă în mână + - Apasă butonul și crește luminozitatea + - Fă scena mai caldă, mai luminoasă + - Simte cum se amplică starea de plăcere + +5. **Suprapune ecranul cu acțiunea** + - Între tine și scena cu plăcere, apare un nou ecran + - Pe noul ecran: tu făcând acțiunea pentru care vrei motivație + - Poate fi: să înveți ceva, să faci o acțiune, să lucrezi la dezvoltare personală + +6. **Tehnica fissurii** (repetă de 3 ori) + - Creează o fissură în centrul imaginii cu acțiunea + - Lărgește fissura până vezi complet scena de plăcere din spate + - Închide rapid fissura + - Observă cum se schimbă emoția față de acțiune + +7. **Proiectează în viitor** + - Lasă să curgă emoția spre viitorul tău + - De-a lungul secundelor, minutelor, orelor, zilelor + - Acțiunea rămâne definitiv legată de starea de plăcere + +8. **Revenire** - Deschide ochii când ești gata + +--- + +## Transcriere completă + +> O să te rog să te relaxezi și să închizi ochii, să îți găsești o poziție cât mai confortabilă și să identifici în memoria ta, o imagine de undeva din trecut, îndepărtată sau mai apropiată, o imagine care îți place extrem de mult, ceva care te motivează foarte, foarte tare. +> +> Poate să fie absolut orice, poate să fie un anumit element, poate să fie o acțiune, poate să fie un moment în care te relaxezi, orice simți tu că îți produce o plăcere extremă. +> +> Și când ai găsit această imagine, o să te rog să o vizualizezi, să ți-o imaginezi pe ecranul minții tale, cât mai clar, și doar să o privești, și să te vezi și pe tine în acea imagine ca și cum cineva cu un aparat de filmat ar fi filmat din lateral acea scenă. +> +> Și acum ai proiectat-o pe un ecran uriaș, ca al unui cinematograf chiar în mintea ta. Fii acum atent la tot ce vezi în această scenă. Fii acum atent la tot ce auzi, fii atent la tot ce simți. +> +> Și imaginează-ți acum că ții în mână o telecomandă și că apăși pe un buton și intensifici, crești luminozitatea, și scena pe care o vezi în minte, fă-o mai luminoasă, mai caldă, și o să simți acum cum se amplifică chiar și mai mult, starea de plăcere pe care o ai privind acea imagine. +> +> O să te las pentru câteva momente să savurezi această stare de plăcere pe care o ai în timp ce privești această scenă. +> +> Foarte bine. Păstrează acum în minte această scenă și imaginează-ți că între această scenă și tine apare un alt ecran care acoperă complet scena cu starea de plăcere. +> +> Și pe acest ecran care a apărut acum între tine și această scenă inițială, așază o imagine cu tine, făcând acțiunea pentru care ai zis că să te simți mai motivat, să ai mai mult entuziasm, mai multă dorință de a o face. +> +> Poate vrei să înveți ceva, sau poate vrei să faci o anumită acțiune, sau poate chiar vrei să lucrezi pentru dezvoltarea ta personală. +> +> Orice ai dori, alege o imagine care să fie caracteristică pentru acea acțiune și proiecteaz-o pe acest nou ecran. +> +> Când o privești acum în minte această nouă scenă, îți creează poate emoții contrare, pe de o parte te atrage, ai vrea să mergi spre ea și să faci acțiunea, de altă parte ceva nu te atrage suficient de mult, nu te motivează. +> +> Ce o să facem în continuare, este să încărcăm cu motivație chiar și această imagine pe care creierul tău o percepe lipsită de motivație. +> +> Vreau acum să te relaxezi, chiar și mai mult, și să fii atent la cele două ecrane suprapuse din interiorul minții tale, și să îți folosești imaginația și creativitatea, privind aceste ecrane, privind pe ecranul de deasupra. +> +> Și o să te rog acum să creezi cu puterea minții și a imaginației tale o fissură chiar în centrul acestei imagini, chiar în centrul ecranului, fissură pe care să o lărgești, suficient de mult, încât prin ea să se vadă clar și complet, scena din spate, scena cu plăcerea imensă pe care ai descris-o inițial. +> +> Foarte bine, acum închide rapid acea fissură și recreează imaginea inițială, privește acum iarăși scena pentru care vrei să creezi motivație, și observă cum s-a schimbat, ușor, starea de plăcere, pe care o ai în timp ce privești această scenă. +> +> Folosește-ți iarăși imaginația și creează o fissură în centrul ei, în centrul imaginii, suficient de mare încât prin ea să se vadă complet și clar, scena care îți provoca plăcerea și motivația. +> +> Foarte bine, închide iarăși, imaginează-ți fissura și privește iarăși acea scenă, acțiunea pentru care vrei să îți crești motivația și observă cum s-a schimbat emoția. +> +> Folosește-ți încă o dată pentru a treia oară imaginația și creează iarăși o fissură în mijlocul ecranului mental, suficient de mare încât să vezi prin ea, scena care pentru tine este plină de plăcere și motivație. +> +> Foarte bine, închide acum rapid fissura și privește cum această... doua scenă care în acest moment o simți foarte plăcută și motivată. +> +> Creierul tău o percepe ca fiind plină de motivație, pentru mintea ta, pentru creierul tău această imagine, conține, foarte multă plăcere și motivație. +> +> E posibil chiar din acest moment, după ce vei deschide ochii să simți nevoia să faci acea acțiune. +> +> Păstrează pentru câteva momente o stare de relaxare și o să te rog acum să lași să curgă, spre viitorul tău, toată această emoție pe care ai legat-o de această acțiune. +> +> Lasă să curgă această emoție, acest entuziasm, motivația, de-a lungul secundelor tale viitoare, de-a lungul minutelor, de-a lungul orelor, de-a lungul zilelor, de oricât de mult ai nevoie. +> +> Și simte cum această acțiune rămâne acum definitiv legată de această stare de plăcere, de-a lungul întregii tale vieți. +> +> Să fii cine poți deschide ochii. + +--- + +## Când să folosești + +- Când ai o acțiune importantă dar nu găsești motivația +- La începutul zilei, pentru a te pregăti mental +- Înainte de task-uri pe care le tot amâni +- În grup sprijin, ca exercițiu de auto-motivare + +## Note + +- Tehnica e din NLP (Neuro-Linguistic Programming) +- Similar cu "ancorarea" - leagă o stare emoțională de un trigger +- Funcționează mai bine cu practică repetată