Introduzione a Tidiko AI
Tidiko AI è una piattaforma completa per chatbot intelligenti basata su Laravel, che offre funzionalità avanzate di intelligenza artificiale per la gestione di conversazioni, assistenti virtuali e agenti AI. La piattaforma è progettata per essere scalabile, sicura e facilmente integrabile in qualsiasi sito web.
🚀 Caratteristiche Principali
🤖 Gestione Assistenti AI
- Creazione e Configurazione: Creazione di assistenti personalizzati con istruzioni specifiche
- Modelli AI Multipli: Supporto per diversi modelli di intelligenza artificiale
- Personalizzazione Avanzata: Configurazione di temperatura, top-p e formati di risposta
- Gestione File: Upload e gestione di documenti per il training degli assistenti
🏢 Sistema Multi-Azienda
- Gestione Aziende: Supporto per multiple aziende con piani di abbonamento
- Controllo Accessi: Sistema di ruoli e permessi granulare
- Fatturazione: Integrazione con Stripe per la gestione dei pagamenti
- Piani di Abbonamento: Sistema flessibile di piani con limiti configurabili
💬 Sistema di Conversazioni
- Thread di Conversazione: Gestione persistente delle conversazioni
- Messaggi in Tempo Reale: Comunicazione real-time tramite WebSocket
- Storico Completo: Archiviazione e recupero delle conversazioni
- Analytics: Tracking dettagliato di token utilizzati e costi
🌐 Widget Standalone
- Shadow DOM: Isolamento completo dagli stili della pagina host
- Responsive Design: Adattamento automatico a mobile e desktop
- Personalizzazione: Temi, colori e layout completamente configurabili
- Integrazione Semplice: Installazione con una singola riga di codice
🧩 Chat SDK Headless
- Senza UI/CSS: stesso motore del widget (
createTidikoChat), tu disegni la chat - Guida integratore: Chat SDK Headless
🔌 Chat REST API
- HTTP puro: token
pk_/sk_su Laravel, thread e messaggi (JSON o SSE) sul Node Agent - Chat API docs: https://app.tidiko.ai/docs/api (OpenAPI + UI)
- Playground: https://app.tidiko.ai/playground (dashboard, JWT di sessione)
- Guida integratore: Chat REST API
🏗️ Architettura del Sistema
Backend Laravel
L'applicazione principale è costruita su Laravel 11 e include:
class Assistant extends Model
{
use HasFactory;
protected $table = 'assistants';
protected $guarded = [];
public function files()
{
return $this->hasMany(File::class, 'vector_store_uuid', 'vector_store_uuid');
}
public function conversations()
{
return $this->hasMany(Conversation::class, 'assistant_id');
}
public function company()
{
return $this->belongsTo(Company::class);
}
}
Frontend Widget
Il widget frontend utilizza Preact con Shadow DOM (shadowDomWidgetPreact.jsx):
class TidikoAiWidgetPreact {
constructor(containerId = null, params = {}) {
this.options = { ...platformSettings, ...overrideSettings };
this.jwt = jwt;
this.appUrl = appUrl;
this.init(containerId);
}
async init(containerId) {
const host = containerId
? document.getElementById(containerId)
: this._createDefaultContainer();
this.shadowRoot = host.attachShadow({ mode: "open" });
await this._injectContent();
this._renderWidget();
}
}
Servizi di integrazione
Upload, collection e task embedding passano da WorkerApiService:
WorkerApiService::createCollection($assistant);
WorkerApiService::submitFileTask($file, $vectorStoreUuid);
Vedi services.md e upload-pipeline.md.
📊 Modelli Principali
Company (Azienda)
Gestisce le informazioni delle aziende e i loro abbonamenti:
class Company extends Model
{
use HasFactory, Billable, Notifiable;
public function assistants()
{
return $this->hasMany(Assistant::class, 'company_id');
}
public function subscriptionPlan()
{
$sparkPlan = $this->sparkPlan();
$freePlan = SubscriptionPlan::where('name', 'FREE')->first();
if (!$sparkPlan || !$sparkPlan->id) {
return $freePlan;
}
return SubscriptionPlan::where('sandbox_monthly_price_id', $sparkPlan->id)
->orWhere('production_monthly_price_id', $sparkPlan->id)
->first() ?? $freePlan;
}
}
Conversation (Conversazione)
Gestisce le conversazioni tra utenti e assistenti:
class Conversation extends Model
{
use HasFactory;
protected $table = 'conversations';
protected $guarded = [];
public function messages()
{
return $this->hasMany(Message::class);
}
public function assistant()
{
return $this->belongsTo(Assistant::class, 'assistant_id');
}
}
Message (Messaggio)
Gestisce i singoli messaggi all'interno delle conversazioni:
class Message extends Model
{
use HasFactory;
protected $table = 'messages';
protected $guarded = [];
public function conversation()
{
return $this->belongsTo(Conversation::class);
}
}
🔧 Funzionalità Avanzate
Sistema di File e Vector Store
- Upload Multipli: Supporto per file, URL e API
- Vector Store: Integrazione con servizi di embedding
- Processamento Asincrono: Gestione delle operazioni pesanti in background
- Refresh Automatico: Aggiornamento periodico dei contenuti
Sistema di Notifiche
- WebSocket Integration: Comunicazione bidirezionale con il frontend
- Email Notifications: Invio di email per eventi importanti
- Notifiche Limiti: Avvisi per limiti di abbonamento raggiunti
Sistema di Autenticazione
- JWT Tokens: Autenticazione basata su token JWT
- API Keys: Gestione delle chiavi API per l'integrazione
- Multi-Company: Sistema di isolamento per aziende
🌐 Integrazione Widget
Per una chat con UI Tidiko usa il widget Preact (Widget Preact). Per una chat con UI tua in browser usa il Chat SDK Headless (createTidikoChat). Per un backend o un client HTTP usa la Chat REST API.
Il widget può essere integrato facilmente in qualsiasi sito web:
<!-- Integrazione Base -->
<script src="path/to/tidiko-widget.js"></script>
<script>
new TidikoAiWidgetPreact(null, {
title: "Assistente AI",
appUrl: "https://your-api.com",
jwt: "your-jwt-token",
});
</script>
Configurazione Avanzata
new TidikoAiWidgetPreact("chat-container", {
title: "Supporto Clienti",
theme: "dark",
primaryColor: "#ff8e5e",
companyName: "La Tua Azienda",
hasDocuments: true,
faqMessages: [
"Come posso aiutarti?",
"Hai bisogno di supporto?",
],
});
📈 Monitoraggio e Analytics
Tracking dei Costi
- Token Usage: Monitoraggio dettagliato dei token utilizzati
- Costi per Modello: Calcolo dei costi per ogni modello AI
- Report Mensili: Generazione di report dettagliati
Performance Monitoring
- Tempo di Risposta: Monitoraggio delle performance
- Errori e Log: Sistema completo di logging
- Health Checks: Controlli di salute del sistema
🔒 Sicurezza
Autenticazione e Autorizzazione
- JWT Security: Token sicuri con scadenza e refresh
- Company Isolation: Isolamento completo tra aziende
- Input Validation: Validazione rigorosa degli input
- Subscription Limits: Controllo limiti di abbonamento
Privacy e GDPR
- Data Encryption: Crittografia dei dati sensibili
- Company Data Isolation: Separazione dati per azienda
- Conversation Privacy: Privacy delle conversazioni
- File Security: Sicurezza dei file caricati
🚀 Deployment e Scalabilità
Ambiente di Produzione
- Docker Support: Containerizzazione completa
- Multi-Environment: Supporto per ambienti di sviluppo e produzione
- Database Migration: Sistema di migrazione database
- Asset Compilation: Compilazione automatica degli asset
Monitoraggio
- Token Tracking: Monitoraggio dettagliato dei token utilizzati
- Cost Analytics: Calcolo dei costi per modello AI
- Usage Reports: Report di utilizzo per azienda
- Error Logging: Sistema di logging per errori
Tidiko AI rappresenta una soluzione completa e moderna per l'implementazione di chatbot intelligenti, offrendo tutte le funzionalità necessarie per creare, gestire e scalare assistenti AI in modo efficace e sicuro.