open source

NBMultiRag: un RAG multimodale per chattare con i tuoi file



Indirizzo copiato

NBMultiRag è un framework open source in Python che implementa un sistema RAG locale multimodale. Permette di interrogare documenti, audio, video e immagini mantenendo i dati sul proprio computer, senza dipendere da servizi cloud esterni

Pubblicato il 24 apr 2025

Nanni Bassetti

Consulente informatico libero professionista – Digital Forensics Consultant



software gestionali, online documentation system and business files storage

NBMultiRag è un framework open source sviluppato in Python che consente di “chattare” con i propri documenti sfruttando la tecnica del Retrieval-Augmented Generation (RAG). L’interfaccia grafica è disponibile sia in italiano che in inglese, questo strumento permette di gestire documenti di vario tipo, inclusi file multimediali come audio, video e immagini, garantendo al contempo che i dati rimangano esclusivamente sul computer dell’utente.

NBmultiRag - un GPT tutto in LOCALE

Cos’è NBMultiRag

Il 03/marzo/2025 ho lanciato NBMultiRag, seguendo un’esigenza che mi girava in testa da tempo, ossia un chatbot locale che potesse estrarre testo non solo dai canonici file PDF e altri formati di documento, ma anche da scritte presenti nelle immagini, dagli audio e dai video, in modo da formare un RAG (Retrieval Augmented Generation) multimodale.

Forse per mia imperizia, non ho mai trovato un framework che rispondesse a queste necessità, quindi ho pensato, che con l’aiuto delle AI ed un po’ di mia abilità, potevo costruirmelo; la caratteristica più importante è che doveva girare tutto in locale, senza chiamate API a servizi online e soprattutto senza dover inviare documenti su RAG online.

Infine, doveva poter funzionare anche su computer “casalinghi” e non su dei mostri da gaming spinto o super-server.

Con questo spirito e questa idea ho iniziato ed ancora lo miglioro quando mi accorgo di qualcosa e spero sempre nell’aiuto della community che gira nel mondo Open Source.

Quindi che cos’è NBMultiRag? È un framework che integra modelli di linguaggio GPT (LLM) scaricati da OLLAMA, per consentire agli utenti di interagire in modalità chat con i propri documenti, inoltre il sistema, non solo permette di chattare “in bianco” (senza l’uso del RAG), ma anche di creare workspace personalizzati per indicizzare cartelle contenenti documenti eterogenei eseguendo:

  • Indicizzazione e suddivisione dei documenti: I documenti vengono frammentati in segmenti (chunk) per essere processati più efficientemente.
  • Trascrizione e OCR: I file audio e video vengono trascritti, mentre le immagini sono processate tramite OCR, mentre per i video vengono estratti e descritti 10 frame distribuiti uniformemente.
  • Interazione tramite upload: È possibile caricare file singoli per una descrizione puntuale del contenuto.
Immagine che contiene testo, schermata, software, Software multimedialeIl contenuto generato dall'IA potrebbe non essere corretto.

Figura 1 – Documenti usati per il RAG presi da una challenge online https://cfreds.nist.gov/all/Hexordia/2025MVSCTF

Come funziona NBMultiRag

NBMultiRag sfrutta Streamlit, un framework open source per Python che consente di creare applicazioni web interattive in modo rapido e semplice, che, con poche righe di codice, trasforma gli script Python in applicazioni web condivisibili, facilitando la configurazione e l’interazione con i modelli di intelligenza artificiale.

In sostanza, Streamlit viene impiegato per realizzare una GUI intuitiva, permettendo agli utenti di interagire direttamente con il modello GPT e di gestire l’indicizzazione dei documenti.

Modalità upload di file singoli

Oltre all’indicizzazione di intere cartelle si possono caricare singoli file tramite interfaccia chat, che genera un’analisi e descrizione del contenuto del file, rendendo lo strumento adatto anche per analisi puntuali.

Utilizzo locale e connessione a internet

Un aspetto fondamentale del framework è la gestione dei dati in locale:

  • L’accesso a internet è necessario solo al lancio del programma per scaricare i modelli da HuggingFace e Whisper.
  • Successivamente, il framework funziona in modalità offline, garantendo la privacy e la sicurezza dei dati dell’utente.

Utilizzo dei modelli scaricati da Huggingface e Whisper

I modelli scaricati da HuggingFace sono il cuore dell’elaborazione del framework e includono:

  • Modelli di embedding (BERT): bert-base-italian-uncased per l’italiano e bert-base-uncased per l’inglese, questi modelli trasformano il testo in vettori numerici (embeddings), fondamentali per indicizzare e confrontare il contenuto dei documenti.
  • Modelli per l’analisi multimediale: Come Salesforce/blip-image-captioning-base, che permette di descrivere il contenuto delle immagini e di supportare l’analisi dei video.

Questi modelli sono utilizzati per:

  • Generare rappresentazioni semantiche dei documenti.
  • Fornire al sistema un contesto ricco per generare risposte accurate e contestualizzate.

Mentre i modelli Whisper servono per la trascrizione delle tracce audio, quindi da speech-to-text.

Segmentazione dei documenti: chunk_size e chunk_overlap e temperatura

Per gestire testi lunghi e garantire una buona qualità dell’indicizzazione, il sistema utilizza due parametri chiave:

  • chunk_size:
    Definisce la dimensione dei segmenti (chunk) in cui un documento viene suddiviso, che consente di processare il testo in parti più piccole, rendendolo gestibile per i modelli di embedding.
  • chunk_overlap:
    Specifica il numero di token o caratteri che devono sovrapporsi tra due chunk consecutivi, questo assicura che le informazioni critiche presenti al confine tra i chunk non vengano perse, mantenendo la continuità contestuale.

Questi parametri vanno calibrati attentamente per garantire che ogni segmento sia sufficientemente autonomo da poter essere analizzato correttamente, ma al contempo connesso semanticamente agli altri.

La Temperatura è il parametro che serve a diminuire o ad aumentare la “fantasia” nelle risposte dell’LLM, condizionando le probabilità di scelta delle parole, bassa implica scegliere le parole con maggior probabilità e quindi più attinenti al contesto, alta invece porta il modello ad una maggiore creatività, ma può esser meno attinente e coerente al contesto.

Parametri di retrieval: “numero di documenti rilevanti nel contesto” e “numero di risultati nella ricerca”

Durante la fase di interrogazione vengono utilizzati due ulteriori parametri per ottimizzare il recupero delle informazioni:

  • Numero di documenti rilevanti nel contesto:
    Questo parametro determina la quantità totale di contenuto (misurata in token o in “pezzi di documento”) che viene incorporata nel prompt inviato al modello GPT.
    Un valore elevato, ad esempio 700, consente di fornire al modello un contesto molto ricco, migliorando la qualità della risposta ed è importante bilanciare questo valore con il limite massimo di token che il modello può gestire.
  • Immagine che contiene testo, schermata, software, Software multimedialeIl contenuto generato dall'IA potrebbe non essere corretto.Numero di risultati nella ricerca:
    Questo parametro stabilisce quanti chunk (o segmenti di documenti) vengono inizialmente restituiti dalla fase di ricerca, un numero ridotto (ad esempio, 20) aiuta

a filtrare i risultati, garantendo che vengano selezionati solo i segmenti più pertinenti prima di essere ulteriormente integrati nel contesto della query.

Requisiti e installazione

Requisiti software

  • Python 3.12.4:
    NBMultiRag è stato sviluppato su questa versione.
  • Tesseract:
    Essenziale per l’esecuzione dell’OCR. Durante l’installazione, è consigliabile abilitare le lingue italiano ed inglese.
  • Streamlit:
    Utilizzato per creare l’interfaccia grafica interattiva.
  • Ollama: per gestire ed interrogare i modelli di IA.

Istruzioni per sistemi windows

  1. Installazione:
    Eseguire il file install.bat e seguire i prompt per il download dei modelli necessari.
  2. Creazione del Workspace:
    Dopo l’avvio del framework, creare un workspace personalizzato configurando l’embedder e indicando la cartella contenente i documenti da indicizzare.
  3. Setup dell’Ambiente Python:
    • Tkinter, in Windows il pacchetto arriva con l’istallazione di Python (https://www.python.org/ )
    • Creare una cartella dedicata a NBMultiRag e copiare il contenuto della repository.
    • Creare un ambiente virtuale:
      python -m venv nbmultirag
    • Attivare l’environment (su Windows: nbmultirag\Scripts\activate).
    • Installare le dipendenze:
      pip install -r requirements.txt
    • Avviare l’applicazione con:
      streamlit run nbmultirag.py

Per i sistemi basati su Linux (non testato)

  1. Istallare Tesseract (/usr/bin/tesseract)
  2. Istallare Ollama
  3. Istallare TkInter per la vostra distribuzione

Conclusioni

Spero di esser giunto vicino alla mia idea iniziale, considerando che è stato un lavoro svolto soltanto da me e con l’”aiutino” delle AI online, ma spero che sia d’ispirazione per baldi sviluppatori, che possano aiutare a far crescere il progetto, anche se con la velocità evolutiva che c’è in questo settore, nulla mi vieta di pensare che tutto diverrà obsoleto in pochi mesi, è un bene? È un male? Non so più che pensare, perché non avevo mai assistito ad una rapidità simile, ogni giorno escono modelli, idee, approcci sempre diversi ed evoluti e mi fa pensare ad una vera innovazione e rivoluzione nell’informatica e moltissimo viene dal mondo open source, quindi bene così!

Per maggiori dettagli e per consultare il repository ufficiale, visita:

NBMultiRag, distribuito sotto licenza GPL-3.0, è un esempio concreto di come l’innovazione open source possa promuovere un uso consapevole e sicuro dell’intelligenza artificiale in ambito locale.

EU Stories - La coesione innova l'Italia

Tutti
L'ANALISI
INIZIATIVE
PODCAST
Video&podcast
Analisi
VIDEO&PODCAST
Video & Podcast
Social
Iniziative
INNOVAZIONE
EU Stories | Dalla produzione industriale a fucina di innovazione: come il Polo universitario della Federico II a San Giovanni a Teduccio ha acceso il futuro
L'INIZIATIVA
DNSH e Climate proofing: da adempimento ad opportunità. Spunti e proposte dal FORUM PA CAMP Campania
INNOVAZIONE
EU Stories, il podcast | Laboratori Aperti: riqualificazione e innovazione in 10 città dell’Emilia-Romagna
Da OpenCoesione 3.0 a Cap4City: ecco i progetti finanziati dal CapCoe.  Il podcast “CapCoe. La coesione riparte dalle persone”
Capacità amministrativa e coesione: il binomio vincente per lo sviluppo dei territori
FORUM PA PLAY: come unire sostenibilità e investimenti pubblici. Speciale FORUM PA CAMP Campania
Scenari
Il quadro economico del Sud: tra segnali di crescita e nuove sfide
Sostenibilità
Lioni Borgo 4.0: un passo verso la città del futuro tra innovazione e sostenibilità
Podcast
Centro Servizi Territoriali: uno strumento per accompagnare gli enti nell’attuazione della politica di coesione. Il podcast “CapCoe. La coesione riparte dalle persone”
Podcast
EU Stories, il podcast | Politiche di coesione e comunicazione: una sinergia per il futuro
Opinioni
La comunicazione dei fondi europei da obbligo ad opportunità
eBook
L'analisi della S3 in Italia
Norme UE
European Accessibility Act: passi avanti verso un’Europa inclusiva
Agevolazioni
A febbraio l’apertura dello sportello Mini Contratti di Sviluppo
Quadri regolamentari
Nuovi Orientamenti sull’uso delle opzioni semplificate di costo
Coesione
Nuovo Bauhaus Europeo (NEB): i premi che celebrano innovazione e creatività
Dossier
Pubblicato il long form PO FESR 14-20 della Regione Sicilia
Iniziative
400 milioni per sostenere lo sviluppo delle tecnologie critiche nel Mezzogiorno
Formazione
“Gian Maria Volonté”: dalle aule al mondo del lavoro, focus sui tirocini della Scuola d’Arte Cinematografica
TRANSIZIONE ENERGETICA
Il ruolo del finanziamento BEI per lo sviluppo del fotovoltaico in Sicilia
Formazione
“Gian Maria Volonté”: dalla nascita ai progetti futuri, focus sulla Scuola d’Arte Cinematografica. Intervista al coordinatore Antonio Medici
MedTech
Dalla specializzazione intelligente di BionIT Labs una innovazione bionica per la disabilità
Finanza sostenibile
BEI e E-Distribuzione: investimenti per la sostenibilità energetica
Professioni
Servono competenze adeguate per gestire al meglio i fondi europei
Master
Come formare nuove professionalità per governare e gestire al meglio i fondi europei?
Programmazione UE
Assunzioni per le politiche di coesione: prossimi passi e aspettative dal concorso nazionale. Il podcast “CapCoe. La coesione riparte dalle persone”
innovazione sociale
Rigenerazione urbana: il quartiere diventa un hub dell’innovazione. La best practice di San Giovanni a Teduccio
Programmazione europ
Fondi Europei: la spinta dietro ai Tecnopoli dell’Emilia-Romagna. L’esempio del Tecnopolo di Modena
Interventi
Riccardo Monaco e le politiche di coesione per il Sud
Iniziative
Implementare correttamente i costi standard, l'esperienza AdG
Finanziamenti
Decarbonizzazione, 4,8 miliardi di euro per progetti cleantech
Formazione
Le politiche di Coesione UE, un corso gratuito online per professionisti e giornalisti
Interviste
L’ecosistema della ricerca e dell’innovazione dell’Emilia-Romagna
Interviste
La ricerca e l'innovazione in Campania: l'ecosistema digitale
Iniziative
Settimana europea delle regioni e città: un passo avanti verso la coesione
Iniziative
Al via il progetto COINS
Eventi
Un nuovo sguardo sulla politica di coesione dell'UE
Iniziative
EuroPCom 2024: innovazione e strategia nella comunicazione pubblica europea
Iniziative
Parte la campagna di comunicazione COINS
Interviste
Marco De Giorgi (PCM): “Come comunicare le politiche di coesione”
Analisi
La politica di coesione europea: motore della transizione digitale in Italia
Politiche UE
Il dibattito sul futuro della Politica di Coesione
Mobilità Sostenibile
L’impatto dei fondi di coesione sul territorio: un’esperienza di monitoraggio civico
Iniziative
Digital transformation, l’Emilia-Romagna rilancia sulle comunità tematiche
Politiche ue
Fondi Coesione 2021-27: la “capacitazione amministrativa” aiuta a spenderli bene
Finanziamenti
Da BEI e Banca Sella 200 milioni di euro per sostenere l’innovazione di PMI e Mid-cap italiane
Analisi
Politiche di coesione Ue, il bilancio: cosa ci dice la relazione 2024
Politiche UE
Innovazione locale con i fondi di coesione: progetti di successo in Italia
INNOVAZIONE
EU Stories | Dalla produzione industriale a fucina di innovazione: come il Polo universitario della Federico II a San Giovanni a Teduccio ha acceso il futuro
L'INIZIATIVA
DNSH e Climate proofing: da adempimento ad opportunità. Spunti e proposte dal FORUM PA CAMP Campania
INNOVAZIONE
EU Stories, il podcast | Laboratori Aperti: riqualificazione e innovazione in 10 città dell’Emilia-Romagna
Da OpenCoesione 3.0 a Cap4City: ecco i progetti finanziati dal CapCoe.  Il podcast “CapCoe. La coesione riparte dalle persone”
Capacità amministrativa e coesione: il binomio vincente per lo sviluppo dei territori
FORUM PA PLAY: come unire sostenibilità e investimenti pubblici. Speciale FORUM PA CAMP Campania
Scenari
Il quadro economico del Sud: tra segnali di crescita e nuove sfide
Sostenibilità
Lioni Borgo 4.0: un passo verso la città del futuro tra innovazione e sostenibilità
Podcast
Centro Servizi Territoriali: uno strumento per accompagnare gli enti nell’attuazione della politica di coesione. Il podcast “CapCoe. La coesione riparte dalle persone”
Podcast
EU Stories, il podcast | Politiche di coesione e comunicazione: una sinergia per il futuro
Opinioni
La comunicazione dei fondi europei da obbligo ad opportunità
eBook
L'analisi della S3 in Italia
Norme UE
European Accessibility Act: passi avanti verso un’Europa inclusiva
Agevolazioni
A febbraio l’apertura dello sportello Mini Contratti di Sviluppo
Quadri regolamentari
Nuovi Orientamenti sull’uso delle opzioni semplificate di costo
Coesione
Nuovo Bauhaus Europeo (NEB): i premi che celebrano innovazione e creatività
Dossier
Pubblicato il long form PO FESR 14-20 della Regione Sicilia
Iniziative
400 milioni per sostenere lo sviluppo delle tecnologie critiche nel Mezzogiorno
Formazione
“Gian Maria Volonté”: dalle aule al mondo del lavoro, focus sui tirocini della Scuola d’Arte Cinematografica
TRANSIZIONE ENERGETICA
Il ruolo del finanziamento BEI per lo sviluppo del fotovoltaico in Sicilia
Formazione
“Gian Maria Volonté”: dalla nascita ai progetti futuri, focus sulla Scuola d’Arte Cinematografica. Intervista al coordinatore Antonio Medici
MedTech
Dalla specializzazione intelligente di BionIT Labs una innovazione bionica per la disabilità
Finanza sostenibile
BEI e E-Distribuzione: investimenti per la sostenibilità energetica
Professioni
Servono competenze adeguate per gestire al meglio i fondi europei
Master
Come formare nuove professionalità per governare e gestire al meglio i fondi europei?
Programmazione UE
Assunzioni per le politiche di coesione: prossimi passi e aspettative dal concorso nazionale. Il podcast “CapCoe. La coesione riparte dalle persone”
innovazione sociale
Rigenerazione urbana: il quartiere diventa un hub dell’innovazione. La best practice di San Giovanni a Teduccio
Programmazione europ
Fondi Europei: la spinta dietro ai Tecnopoli dell’Emilia-Romagna. L’esempio del Tecnopolo di Modena
Interventi
Riccardo Monaco e le politiche di coesione per il Sud
Iniziative
Implementare correttamente i costi standard, l'esperienza AdG
Finanziamenti
Decarbonizzazione, 4,8 miliardi di euro per progetti cleantech
Formazione
Le politiche di Coesione UE, un corso gratuito online per professionisti e giornalisti
Interviste
L’ecosistema della ricerca e dell’innovazione dell’Emilia-Romagna
Interviste
La ricerca e l'innovazione in Campania: l'ecosistema digitale
Iniziative
Settimana europea delle regioni e città: un passo avanti verso la coesione
Iniziative
Al via il progetto COINS
Eventi
Un nuovo sguardo sulla politica di coesione dell'UE
Iniziative
EuroPCom 2024: innovazione e strategia nella comunicazione pubblica europea
Iniziative
Parte la campagna di comunicazione COINS
Interviste
Marco De Giorgi (PCM): “Come comunicare le politiche di coesione”
Analisi
La politica di coesione europea: motore della transizione digitale in Italia
Politiche UE
Il dibattito sul futuro della Politica di Coesione
Mobilità Sostenibile
L’impatto dei fondi di coesione sul territorio: un’esperienza di monitoraggio civico
Iniziative
Digital transformation, l’Emilia-Romagna rilancia sulle comunità tematiche
Politiche ue
Fondi Coesione 2021-27: la “capacitazione amministrativa” aiuta a spenderli bene
Finanziamenti
Da BEI e Banca Sella 200 milioni di euro per sostenere l’innovazione di PMI e Mid-cap italiane
Analisi
Politiche di coesione Ue, il bilancio: cosa ci dice la relazione 2024
Politiche UE
Innovazione locale con i fondi di coesione: progetti di successo in Italia

Articoli correlati

Articolo 1 di 4