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
🏗️ 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 Shadow DOM per l'isolamento completo:
class TidikoAiWidget {
constructor(containerId = null, params = {}) {
// Configurazione del widget
this.options = { ...platformSettings, ...overrideSettings };
this.jwt = jwt;
this.appUrl = appUrl;
this.type = type;
// Inizializzazione
this.init(containerId);
}
async init(containerId) {
// Creazione del container
const host = containerId
? document.getElementById(containerId)
: this._createDefaultContainer();
// Attach shadow DOM
this.shadowRoot = host.attachShadow({ mode: "open" });
await this._injectContent();
this._setupEventListeners();
}
}
Servizi di Integrazione
Il sistema include servizi per l'integrazione con servizi esterni:
class NodeApiService
{
public static function createCollection($model)
{
$jwt = self::getJWT($model);
$url = config('app.node_server_url') . "/collections";
$response = Http::withHeaders([
'Authorization' => "Bearer {$jwt}",
])->post($url);
return $response->json();
}
}
📊 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
Il widget può essere integrato facilmente in qualsiasi sito web:
<!-- Integrazione Base -->
<script src="path/to/tidiko-widget.js"></script>
<script>
new TidikoAiWidget(null, {
title: "Assistente AI",
appUrl: "https://your-api.com",
jwt: "your-jwt-token",
});
</script>
Configurazione Avanzata
new TidikoAiWidget("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.