Introduzione
Tidiko AI è una piattaforma per permettere ai clienti di avere chatbot AI personalizzati per la loro azienda.
Architettura della Piattaforma
Componenti Principali
La piattaforma è composta da 3 elementi principali che lavorano insieme per fornire un sistema completo di gestione AI:
1. Laravel Application
- Scopo: Gestione delle logiche di business e interfaccia utente
- Funzionalità principali:
- Gestione account utenti (amministratori e clienti)
- Gestione assistenti e agenti AI
- Gestione piani di abbonamento
- Interfaccia amministrativa e clienti
- Chat widget JavaScript per l'interazione utente
- Repository: Tidiko AI - Laravel Application
2. Node Agent (LangGraph)
- Scopo: Gestione delle chat AI e intermediario tra Laravel e Worker
- Tecnologie: LangGraph, Qdrant (vector store), GPT-4o-mini
- Funzionalità principali:
- Ricerca documenti nel vector store
- Generazione risposte AI tramite GPT-4o-mini
- Intermediazione richieste tra Laravel e Worker
- Gestione streaming delle risposte
- Repository: Tidiko AI - Node Agent cartella
main
3. Node Worker
- Scopo: Esecuzione attività in background
- Tecnologie: Hatchet (sistema di code), Qdrant (vector store), Jina (embedding), Crawlee + Playwright (crawling interno), MinIO (object storage)
- Funzionalità principali:
- Generazione embedding per ricerca documenti
- Elaborazione e salvataggio documenti su Qdrant
- Crawling avanzato con Crawlee + Playwright (sitemap ricorsive, batching automatico)
- Storage object con MinIO per risultati crawling
- Salvataggio messaggi chat su Laravel
- Repository: Tidiko AI - Node Worker cartella
hatchet
Flusso delle Interazioni
Laravel ↔ Node Agent (LangGraph)
Operazioni dirette:
- Caricamento e eliminazione risorse
- Creazione e eliminazione collection (una per assistente/agente)
- Invio messaggi utente tramite chat widget
- Ricezione streaming risposte AI
Node Agent (LangGraph) ↔ Worker
Il Node Agent funge da intermediario per:
- Adattamento parametri richieste da Laravel
- Invio richieste di elaborazione documenti
- Invio richieste di salvataggio chat
- Gestione di tutte le operazioni asincrone
Worker ↔ Laravel
Comunicazione limitata:
- Verifica spazio rimanente per caricamento link
- Salvataggio messaggi chat elaborati
- Nota: Il Worker non è esposto pubblicamente in rete
🆕 Tecnologie e Miglioramenti Recenti
Crawler Interno con Crawlee + Playwright
Il sistema di crawling è stato completamente rinnovato con:
- ✅ Crawlee: Framework moderno per web scraping con supporto avanzato per sitemap ricorsive
- ✅ Playwright: Browser automation per gestire contenuti JavaScript e SPA
- ✅ Batching Automatico: Divisione intelligente degli URL in batch da 10 per ottimizzare le performance
- ✅ Pipeline HTML → Markdown: Conversione avanzata con rimozione elementi non utili
- ✅ Fallback Crawl4AI: Mantiene compatibilità con il sistema precedente
MinIO Object Storage
Integrazione completa di MinIO per:
- ✅ Storage Risultati Crawling: Salvataggio persistente dei contenuti estratti
- ✅ Gestione URL Lists: Tracking degli URL processati e falliti
- ✅ Compatibilità S3: API standard per facilità di migrazione
- ✅ Console Web: Interfaccia amministrativa per monitoraggio
Docker Unificato con Turborepo
Sistema di build ottimizzato:
- ✅ Immagini Unificate: Un solo Dockerfile per app e worker
- ✅ Turborepo: Build parallela e cache intelligente
- ✅ Docker Compose Profiles: Gestione unificata di dev/prod/staging
- ✅ Hot Reload: Sviluppo rapido con mount del codice sorgente