Blog

La nostra raccolta di articoli e approfondimenti tecnici

Video

Una raccolta di video dai nostri eventi, webinar e molto altro

Use case

Una raccolta dei nostri Casi di successo

Con l’aumento dell’interesse verso modelli linguistici avanzati come ChatGPT, cresce la domanda per soluzioni personalizzate e locali. Recentemente, ho modificato un processor di Apache NiFi 2.0 che supporta processor scritti in Python, per integrare Ollama, un LLM opensource locale.

Perché Ollama?

Ollama è una piattaforma che consente di eseguire modelli di linguaggio in locale, offrendo alcuni vantaggi:

  • Maggiore controllo: l’esecuzione locale garantisce un maggiore controllo sui dati, fondamentale per la riservatezza e la sicurezza delle informazioni.
  • Indipendenza dal cloud: non richiede una connessione internet costante né l’uso di chiavi API.
  • Personalizzazione: Ollama consente di installare e utilizzare diversi modelli di linguaggio, permettendo una maggiore flessibilità e adattabilità alle esigenze specifiche oltre che la possibilità di sperimentare modelli diversi.
  • Librerie utilizzate: sia ChatGPT che Ollama possono essere acceduti tramite oggetti simili della stessa libreria python; “il salto di specie” da un sistema all’altro è molto semplice dal punto di vista dello sviluppo.

Modifica del Processor NiFi

E’ stato modificato il processor promptChatGPT per adattarlo a Ollama. Le modifiche principali sono state:

  1. Chiamate API sostituite: grazie a Langchain, che supporta Ollama, ho cambiato le chiamate per indirizzarle verso il modello locale.
  2. Nuova proprietà: aggiunto un campo per configurare l’URL del server Ollama locale.
  3. Semplificata la configurazione: eliminati chiavi API e altre proprietà non necessarie con Ollama.

Differenze tra i Processor

Vediamo quali sono le modifiche apportate. Di seguito le differenza tra le proprietà del processor originale e successivamente quello derivato.

PromptChatGPT

PromptOllama

Conclusione

L’implementazione di un processor che utilizza Ollama dimostra come sia possibile costruire in Nifi soluzioni anche attraverso l’uso di modelli di LLM locali.

Questo approccio è particolarmente interessante per aziende che richiedono maggiore controllo sui propri dati o operano in ambienti con connessioni internet limitate e ove le esigenze possano essere soddisfatte con l’utilizzo di tale tipologia di strumenti.

Grazie al supporto per i processor scritti in Python introdotto in NiFi, la customizzazione è stata abbastanza agevole.

E’ possibile estendere ulteriormente quest’ultima modificando anche i processor che generano i vector embedding ampliando così lo spettro delle integrazioni possibili su tale ambito avendo quali target OpenSearch, o altri vector db.

Avere a disposizione il prompt che utilizza Ollama per le risposte e il vector embedding ci consente di pensare alla implementazione di sistemi RAG su tecnologia interamente opensource e locale.

Tali implementazioni utilizzerebbero Nifi ed il suo ecosistema per l’implementazione di tutta la catena di acquisizione del dato e un motore locale sia per LLM che per la generazione del vector embedding.

Scopri le tecnologie scelte da Seacom

Selezioniamo le migliori tecnologie open source per agevolare la comunicazione, la condivisione e la collaborazione tra i team, migliorando l’efficienza e la produttività e seguiamo le aziende lungo l’intero processo, dall’adozione fino al mantenimento