Passa al contenuto principale

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

Diagramma Architetturale