Mathis, sulla responsabilità della conoscenza

di Giuseppe Vincenzi

Prologo

Perché ho scritto questo codice

Si parla dappertutto di Intelligenza Artificiale e, non vi nascondo, la cosa a volte mi provoca disagio intellettuale: dietro a questa coppia di parole spesso si allineano soluzioni di ogni genere, più o meno chiare, con effetti e scopi a volte non proporzionali alla potenza di calcolo e alla mole di dati richiesta.

E allora perché Mathis ? Proprio per darvi un esempio plastico della mia opinione sugli sviluppi e gli usi di questi algoritmi, di questi modelli; volevo darvi un esempio pratico e funzionante di una possibile implementazione che mi interessa approfondire, che si basa sulle capacità interpretative e generative di questi modelli.

Ritengo che l’integrazione di queste componenti in architetture più complesse, ibride, segna un’evoluzione che si installa in maniera duratura nel presente e nel futuro dell’informatica e delle architetture IT: ai tecnici come me rimane la responsabilità di progettare e realizzare soluzioni informatiche che hanno un impatto positivo sulla società, che siano strumento in mano alle donne e agli uomini detentori delle idee, delle creatività, e della responsabilità etica delle loro creazioni.

 

Cos’è Mathis?

Innanzitutto perché si chiama così : perché io sono uno sviluppatore con due anime civili, quella italiana e quella d’oltralpe. René Mathis è un agente dei servizi segreti francesi, personaggio del romanzo di Ian Fleming Casino Royale del 1953, alleato di James Bond.

Questo agente è stato interpretato nei film di 007 da Giancarlo Giannini, un attore simbolo del cinema italiano : il nome Mathis porta con sé quindi 3 caratteristiche chiavi, ovvero, l’agente, il francese, e l’italiano.

Il software Mathis l’ho definito : un agente virtuale per il knowledge management personale, conversazionale e open source.

Analizzo questa definizione.

  • Agente virtuale : è una componente software che aiuta un utente a svolgere una sua attività, trovando informazioni, prendendo in carico calcoli complessi, o anche effettuando compiti a debole valore aggiunto
  • Knowledge management personale : Mathis svolge il suo compito basandosi sulla conoscenza che gli è messa a disposizione dall’amministratore della soluzione. Le capacità dei sistemi LLM (Large Language Model) sono sfruttate per generare il testo di una risposta, ma non per andare a cercare l’informazione nel mare magnum dei dati che hanno allenato l’algoritmo generativo. Mathis utilizza solo base di conoscenza dei suoi amministratori che potranno quindi sviluppare una buona fiducia nelle azioni dell’agente virtuale
  • Conversazionale : cito la voce Treccani in cui si definisce così un programma che si estrinseca attraverso una successione di domande e di risposte, spesso gestite dall’utente. La modalità è di solito adottata quando la procedura elaborativa, per la sua stessa natura, può svolgersi in modi molto diversi secondo le situazioni che man mano si verificano e quindi secondo le decisioni prese di volta in volta da chi opera con il calcolatore. Ho sviluppato la capacità di memoria di una conversazione tra Mathis e l’utente di 10 messaggi al massimo (nella memoria dell’applicazione, senza quindi salvataggio in base di dati).
  • Open source : il codice sorgente è disponibile alla lettura e alla modifica su un repository pubblico. Il codice rispetta lo spirito del mio manifesto GIST : fa quello che gli chiediamo di fare e soprattutto non fa quello che non gli chiediamo di fare. Il risultato è un sorgente non estremamente lungo, e di cui io conosco il senso di ogni riga: uno sviluppatore che decide di usarlo avrà tutti gli strumenti e le informazioni per farlo suo e per poter assumersene la piena responsabilità da tecnico.

 

[…] fa quello che gli chiediamo di fare e soprattutto non fa quello che non gli chiediamo di fare

 

L’obiettivo della soluzione software è dunque quello di costruire una base di conoscenza chiara e affidabile che sarà messa a disposizione dell’agente virtuale Mathis che ci aiuterà a gestire una lista predefinita di azioni, e con il quale si potrà conversare in linguaggio naturale via Telegram o direttamente dalla webapp del pannello di amministrazione.

 

Homepage della Webapp Administration Panel – un finestra in cui conversare con l’agente è presente la centro della pagina

Un agente human-driven

Riconoscimento degli intenti

Ma come possiamo dialogare con un agente virtuale? Di cosa possiamo parlare? Molti vi diranno di qualsiasi cosa, tanto ha una risposta per tutto. Il problema è che se non si marcano confini di conoscenza chiari, non si può sapere se la risposta è giusta o sbagliata o, nel peggiore dei casi, un po’ dei due.

Messaggio di benvenuto in una conversazione su Telegram

Io milito per un utilizzo non generalista, ma piuttosto knowledge-driven e intent-limited (o forse meglio human-knowledge-driven e human-intent-limited per meglio posizionarmi):

  • Chiediamo di argomenti di cui possiamo verificarne la veridicità con i nostri mezzi intellettivi e intellettuali
  • L’agente fa quello che gli chiediamo di fare e non prova a occuparsi d’altro rispondendo a sollecitazioni di un tipo non previste.

 

Se non si marcano confini di conoscenza chiari, non si può sapere se la risposta è giusta o sbagliata o, nel peggiore dei casi, un po’ dei due.

 

Nella versione base di Mathis metto a disposizione solo 3 intenti che l’agente dovrà riconoscere e ai quali io gli avrò detto come rispondere:

  • L’utente chiede la lista dei documenti scaricabili
  • L’utente vuole uno o più documenti in particolari (rispetto a argomenti citati nella richiesta)
  • L’utente pone una domanda a cui rispondere basandosi sulla base di conoscenza

 

Finestra di una conversazione su Telegram in cui l’utente mostra l’intento di voler conoscere la lista completa dei documenti della base

 

Finestra di una conversazione Telegram in cui l’utente mostra l’intento di scaricare uno o più documenti che parlino di un argomento in particolare

Qualità della base di conoscenza

L’amministratore di Mathis deve innanzitutto lavorare meticolosamente sulla qualità della base di conoscenza che mette a disposizione dell’agente. L’umano può e deve sentirsi responsabile delle risposte fornite da una soluzione come Mathis, perché nel codice è previsto che gli algoritmi siano rispettosi di questa base e non ne tradiranno il senso.

Se dovesse succedere non ci troveremmo di fronte a un’allucinazione, ma a un errore, a un bug informatico da correggere.

 

finestra di una conversazione nella Webapp di Mathis – L’agente risponde con la lista dei punti di cui ha possibilità di parlare (dedotti dalla base di conoscenza)

 

L’umano può e deve sentirsi responsabile delle risposte fornite da una soluzione come Mathis

 

Come si costruisce una base di conoscenza ? Semplicemente raccogliendo documenti, ben redatti, e inserendoli nel sistema con informazioni a corredo che ne chiariscano il più possibile il senso e lo scopo.

 

Pagina della Webapp in cui aggiungere, modificare e cancellare documenti della base di conoscenza

Mathis è pronto a l’uso

Dal momento in cui mette un solo documento nella base documentale, Mathis è pronto all’uso:

  • Può essere l’interfaccia di contatto tra il vostro sito e i vostri visitatori
  • Un assistente su Telegram che risponde alle domande dei vostri utenti in vostra assenza, liberandovi del tempo e chiamandovi quando necessario
  • Un vostro agente per aiutarvi ad analizare i vostri documenti, i vostri dati

Mathis è open source, gratuito, e potete testarlo come e quando volete: e se avete dubbi o voglia di condivere qualche idea, non esistate a scrivermi.

#AI #OpenSource #KnowledgeManagement #Java #SpringBoot #TelegramBot #MistralAI #Supabase #RAG #DocumentManagement

Condividi:

Altri Articoli Recenti

Torna a tutti gli Articoli