Nel vivace panorama dell’intelligenza artificiale generativa, un progetto italiano sta catturando l’attenzione degli esperti del settore: il Cheshire Cat chatbot, un framework open source ideato da Piero Savastano, data scientist esperto di Big Data e Intelligenza Artificiale. Questo innovativo progetto, che prende il nome dal celebre personaggio di “Alice nel paese delle meraviglie”, sta ridefinendo il modo in cui interagiamo con gli assistenti virtuali basati su IA.
Cheshire cat assistente virtuale, come funziona
L’idea alla base di Cheshire Cat è tanto semplice quanto rivoluzionaria: permettere a chiunque – cittadini, professionisti, imprese e pubbliche amministrazioni – di “reclamare il diritto di costruirsi in casa e di gestirsi il proprio assistente virtuale”. A differenza delle soluzioni proprietarie, Cheshire Cat offre una piattaforma completamente personalizzabile, rilasciata sotto licenza GPLv3, che può integrarsi con diversi Large Language Models (LLM) come GPT-3, ChatGPT, Cohere, e modelli di HuggingFace e Azure.
Architettura e funzionalità innovative
Ciò che rende Cheshire Cat particolarmente interessante è la sua architettura modulare, ispirata a WordPress. Come il celebre CMS ha rivoluzionato la creazione di siti web, Cheshire Cat mira a fare lo stesso nel campo degli assistenti virtuali. Il framework è completamente dockerizzato, rendendo l’installazione e l’implementazione sorprendentemente semplici.
Una delle caratteristiche più innovative è il sistema di memoria, strutturato in tre componenti principali:
– Memoria episodica: conserva le tracce delle interazioni passate, permettendo all’assistente di mantenere il contesto delle conversazioni
– Memoria dichiarativa: archivia i contenuti dei documenti caricati, consentendo all’assistente di accedere a informazioni specifiche
– Memoria procedurale: gestisce le definizioni delle funzioni Python e le informazioni operative
RAG: Il cuore dell’intelligenza contestuale
Un elemento distintivo è l’implementazione del Retrieval Augmented Generation (RAG), che permette all’assistente di basare le sue risposte su dati specifici dell’organizzazione. Questo significa che l’assistente può rispondere a domande contestuali, come “Come si chiama il mio cane?” o “A che ora apre il forno dove di solito vado a prendere il pane?”, accedendo a informazioni precedentemente fornite.
Personalizzazione attraverso plugin e hook
Il framework brilla particolarmente per la sua estensibilità attraverso plugin e hook:
– I plugin sono componenti software che estendono le funzionalità esistenti, scritti in Python
– Gli hook sono punti di accesso specifici nel ciclo di vita del framework che permettono di modificare il comportamento del sistema
La comunità di sviluppatori ha creato diversi plugin interessanti, come html-parser per il filtraggio di contenuti web, Dynamic-Language per il supporto multilingua, e sentrycat-plugin per l’integrazione con Sentry.
Integrazione tecnologica avanzata
Cheshire Cat utilizza Qdrant come database vettoriale predefinito per l’archiviazione e il recupero dei documenti. Questa integrazione offre vantaggi significativi:
– Collection Aliases per gestire il passaggio da un embedder all’altro
– Quantizzazione per bilanciare velocità, uso della memoria e qualità dei risultati
– Snapshot per la sicurezza dei dati.
Casi d’uso e applicazioni pratiche
La versatilità di Cheshire Cat si manifesta in diverse applicazioni pratiche:
– Assistente per la ricerca su PubMed
– Monitoraggio dei tempi di attesa dei mezzi pubblici
– Interazione con documenti PDF
– Integrazione con Siri
– Bridge API REST per WebSocket
Un ecosistema in crescita
La community attorno a Cheshire Cat è vibrante e in continua crescita, con sviluppatori che collaborano su GitHub e Discord, e partecipano a meetup nelle principali città europee. Questo approccio decentralizzato e orientato alla condivisione rappresenta un modo “sano” di vivere l’IA, particolarmente significativo nel panorama italiano.
Prospettive future
Mentre il progetto continua a evolversi, si prevede che Cheshire Cat possa diventare una piattaforma utile a molti, che permette a chiunque di creare soluzioni personalizzate. La crescente comunità di sviluppatori e l’architettura flessibile suggeriscono un futuro promettente per questo innovativo framework italiano.