Cheshire Cat: Un Assistente Virtuale basato su AI

Cheshire Cat: Un Assistente Virtuale basato su AI

25 Gennaio 2024 ai 0
Catshire Cat Ai

Breve presentazione di Cheshire Cat, un Assistente Virtuale basato su Ai.

Il Cheshire Cat rappresenta un framework open source che agevola lo sviluppo di agenti intelligenti basati su diversi Large Language Models (LLM). Integrando un sistema di memoria a lungo termine, il Cheshire Cat conserva l’input dell’utente e formula risposte contestualizzate in base alle conversazioni pregresse. È anche possibile arricchire le informazioni contestuali dell’agente inserendo documenti nel sistema di memoria. Le capacità dell’agente possono essere ampliate attraverso la scrittura di plugin in Python per eseguire funzioni personalizzate o richiamare servizi esterni.

Definizione del framework Cheshire Cat, un Assistente Virtuale basato su Ai.

Panoramica delle principali caratteristiche.
Ora esploreremo in dettaglio le caratteristiche e le funzionalità con le quali interagiremo con il Cheshire Cat, delineando le sue principali peculiarità e capacità.

  • Storico delle Conversazioni Precedenti
    Ogni interazione passata viene archiviata nella memoria episodica, un database locale. Quando rivolgi una domanda, il Gatto risponde considerando attentamente le conversazioni precedenti.
  • Caricamento Documenti
    Si ha la possibilità di caricare documenti di testo, i quali vengono conservati in un database locale denominato memoria dichiarativa. Quando il Gatto risponde, tiene conto delle informazioni presenti in questi documenti. La procedura di caricamento dei documenti può essere effettuata sia attraverso le API che tramite il Portale di Amministrazione.
Figura 1 – Nell’immagine, il risponde alle domande: la memoria dichiarativa da documenti, la memoria episodica da conversazioni precedenti.
  • Esecuzione di Azioni
    Il Cheshire Cat va oltre la mera risposta alle domande; può anche compiere azioni. È possibile creare funzioni Python denominate “Strumenti” e far eseguire a tali codici il LLM. Le potenzialità del codice Python sono limitate solo dalla tua creatività.
  • Estensione del Nucleo
    In aggiunta, si ha la possibilità di personalizzare il cuore del Cheshire Cat. All’interno del flusso principale del processo, sono presenti punti di adattamento predefiniti denominati Hooks. Puoi scrivere funzioni Python che possono essere agganciate a questi Hooks. Il codice allegato verrà richiamato durante l’esecuzione del flusso e può alterare il comportamento interno del Cheshire Cat senza apportare dirette modifiche al suo nucleo.
    Gli Strumenti e gli Hooks sono incapsulati in Plugin, i quali possono essere installati inserendo i file in una cartella dedicata o attraverso l’uso del Portale di Amministrazione. Questi plugin possono essere resi pubblici tramite il registro pubblico, consentendo così agli altri utenti di installarli.
  • Portale di Amministrazione
    Il framework è completato da un portale web. Attraverso questo portale, l’amministratore ha la possibilità di configurare le impostazioni, installare plugin, caricare documenti e utilizzare lo strumento per scopi sperimentali. È anche possibile interagire tramite chat con il Cheshire Cat, esaminare le sue risposte e interrogare direttamente le sue memorie.
Figura 2 – In questa immagine, il portale di Cheshire Cat che si presenta dopo l’installazione, accessibile tramite http://localhost:1865/admin/.

Installazione e Configurazione del Cheshire Cat, un Assistente Virtuale basato su Ai

Prerequisiti:

Docker:
Docker rappresenta un sistema open-source dedicato alla gestione e all’automazione del deployment, ovvero la distribuzione di un’applicazione. Il concetto chiave di Docker è il “container”: un insieme di dati essenziali per l’esecuzione di un’applicazione, che include eseguibili, librerie, file di configurazione, e altro ancora. Grazie a questa tecnologia, è possibile eseguire il software su qualsiasi sistema operativo dotato dell’engine Docker.

Installazione:

Iniziamo la procedura di installazione seguendo i passaggi indicati di seguito:

1. In primo luogo, creiamo una cartella. Nel nostro caso, chiamiamola “Project” e posizioniamola nel percorso locale “C:\…\Docker-Cat\Project” a nostra scelta. All’interno di questa cartella, modifichiamo e salviamo un file compose.yml secondo le seguenti specifiche:

version: '3.7'

services:

  cheshire-cat-core:
    image: ghcr.io/cheshire-cat-ai/core:latest
    container_name: cheshire_cat_core
    ports:
      - ${CORE_PORT:-1865}:80
    environment:
      - PYTHONUNBUFFERED=1
      - WATCHFILES_FORCE_POLLING=true
    volumes:
      - ./static:/app/cat/static
      - ./plugins:/app/cat/plugins
      - ./data:/app/cat/data

Questo file YAML è utilizzato per specificare la configurazione del servizio conteinerizzato chiamato “cheshire-cat-cpre”, includendo informazioni essenziali come l’immagine docker da utilizzare, la mappatura delle porte, le variabili d’ambiente e i volumi da montare, che sono fondamentali per l'esecuzione del servizio all'interno di un container.

2. Successivamente, con l’engine Docker avviato, nella stessa cartella del file .yml si deve eseguire il comando:

docker compose up

È possibile verificare il corretto completamento dell’operazione se nella stessa cartella vengono create tre sottocartelle:

  • Data: dove vengono memorizzate le informazioni a lungo termine e le impostazioni.
  • Plugins: destinata all’installazione e allo sviluppo di plugin.
  • Static: una cartella dedicata a servire file statici.

3. Ora è possibile aprire il proprio browser e navigare all’indirizzo localhost:1865/admin per accedere al pannello di amministrazione. Qui è possibile configurare il proprio Large Language Model (LLM) nella sezione Settings e copiare la propria chiave API.

Figura 3 – Nella figura: configurazione del proprio LLM nella sezione “Settings”.

Funzionalità di Cheshire Cat

Chatting with the Cat: il playground del Portale di Amministrazione.
Come già detto, il Cat è un framework orientato alle API e non offre un’interfaccia utente pronta all’uso per l’utente finale. L’implementazione di questa UI è lasciata alla cura dell’utente. Tuttavia, il Cat mette a disposizione un playground che puoi utilizzare per testare rapidamente l’IA che stai sviluppando.

Figura 4 – In questa immagine sono illustrate tutte le funzionalità offerte dal Cheshire Cat.

Come funziona:

  1. Messaggio dell’utente: questo è il messaggio inviato dall’utente.
  2. Risposta del gatto: questa è la risposta inviata dal Gatto.
  3. Pulsante “Perché”: questo pulsante apre il pannello laterale “Perché” che spiega il motivo per cui il Gatto ha risposto in un certo modo.
  4. Pulsante “Lampo”: questo pulsante apre un piccolo pannello con funzionalità aggiuntive.
  5. Pulsante “Invio”: questo pulsante consente di inviare il messaggio.
  6. Pulsante “Microfono”: per acquisire comandi vocali.
  7. Pulsante “Tema”: questo pulsante alterna tra le modalità chiara e scura.

Caricare un documento:

Attraverso il Portale di Amministrazione (con l’utilizzo di API), è possibile caricare documenti che il Cat terrà in considerazione per generare risposte alle tue domande. Questi documenti vengono archiviati in un database locale denominato memoria dichiarativa.
Si hanno tre opzioni di caricare documenti:
1) tramite url 
2) tramite file 
3) tramite memories                                                      

Caso url:
In questo caso dopo aver cliccato il tasto “Lampo” e “Upload Url” carichiamo l’url ‘https://netai.it/google-gemini-rivoluzione-ai-che-sfida-gpt-4/’.

Figura 6 – Inserimento di un articolo tramite url

Una volta ricevuto la notifica di avvenuta lettura si può iniziare a interrogare il cheshire:

Figura 7 – Domanda riguardante l’url inserito con corretta risposta.

E ora cliccando sul punto interrogativo accanto alla risposta, si può comprendere cosa ha spinto il Cat a fornire quella risposta. In questo caso, è possibile vedere che ha utilizzato le informazioni provenienti dai documenti (memoria dichiarativa):

 

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *