Blog | SparkFabrik

AI per sviluppatori: la rivoluzione open source del software

Scritto da SparkFabrik Team | Mar 18, 2025 8:00:00 AM

L'Intelligenza Artificiale Generativa e la sua accessibilità attraverso strumenti open source stanno trasformando il panorama dello sviluppo. In questo articolo, esploriamo i vantaggi e gli strumenti AI per sviluppatori, analizzando come stiano rivoluzionando il processo di sviluppo software e ridefinendo i processi del settore IT.

L’open source e la diffusione di tool AI per sviluppatori 

L'open source sta giocando un ruolo fondamentale nell'evoluzione delle tecnologie di Intelligenza Artificiale Generativa, dimostrando ancora una volta la sua capacità di guidare l'innovazione in ambiti tecnologici emergenti. Standard de facto per le moderne soluzioni software e le tecnologie cloud, le tecnologie open sono ormai utilizzate dal  90% delle organizzazioni a livello mondiale. Una tendenza che si sta estendendo anche al settore dell'AI, che ha visto una crescita esplosiva nel 2023-2024 e continua ad espandersi rapidamente.  

Tuttavia, l'applicazione dei principi open source all'AI generativa solleva nuove sfide senza precedenti, come l'adattamento della definizione di software open source ai modelli di linguaggio di grandi dimensioni (LLM), che coinvolgono dataset massivi, hardware dedicato e codice.  

Nonostante queste complessità, l'ecosistema open source per GenAI si sta rapidamente evolvendo in tutti i settori dello sviluppo; dalle piattaforme runtime e motori di inferenza, ai database vettoriali e framework di sviluppo. Fatto che dimostra come questo approccio stia permettendo a comunità e aziende di collaborare per sbloccare il pieno potenziale di tecnologie che altrimenti potrebbero essere controllate da pochi attori.

Cosa ne pensano gli sviluppatori di questa rivoluzione in atto? Il sentiment del mondo dello sviluppo - ovvero la percezione di questo scenario - si direbbe positivo, con il 72% degli sviluppatori che dichiara una posizione favorevole o molto favorevole riguardo l'uso degli strumenti di AI nel workflow di sviluppo.  

Vediamo quindi più nel dettaglio quali sono le aree di lavoro interessate dai nuovi strumenti AI per sviluppatori, e in particolare gli strumenti open source analizzati dal Paolo Mainardi, CTO di SparkFabrik, per Linux Foundation Newsroom.

Cos’è Open Source AI?

L’AI Open Source rappresenta un approccio all’Intelligenza Artificiale in cui modelli, strumenti e dataset sono accessibili pubblicamente, consentendo a sviluppatori e aziende di contribuire, modificare e distribuire le tecnologie senza dover dipendere da soluzioni proprietarie. Questo modello segue i principi dell’open source già affermati nel mondo del software tradizionale, con l’obiettivo di rendere l’AI più trasparente, collaborativa e accessibile a un’ampia comunità di innovatori.

Mozilla ha recentemente proposto una definizione più strutturata di Open Source AI, sottolineando che "per essere veramente open source, un sistema di AI deve garantire l’accesso e la possibilità di modifica a tutti i suoi componenti chiave: codice, dati e modelli"Mozilla, Open Source AI Definition】. Questo punto è cruciale, perché molte soluzioni di AI, pur dichiarandosi open, limitano l’accesso ai dataset di training o ai pesi dei modelli, creando una sorta di "open source a metà".

Anche McKinsey evidenzia questo problema, affermando che “l'AI open source offre maggiore trasparenza e personalizzazione, ma pone domande cruciali su governance, sicurezza e scalabilità”McKinsey, Open Source in the Age of AI】. L’adozione di modelli AI aperti richiede quindi un bilanciamento tra innovazione e gestione dei rischi, specialmente considerando le implicazioni etiche e normative emergenti, come l’AI Act europeo.

Un contributo fondamentale alla definizione dell’AI Open Source arriva anche dalla Open Source Initiative (OSI), che sta lavorando a una definizione chiara e strutturata. Secondo la loro bozza più recente, “affinché un sistema AI possa essere considerato realmente open source, devono essere garantite quattro libertà fondamentali: libertà di usare il sistema per qualsiasi scopo, libertà di studiare e comprendere il funzionamento del modello, libertà di modificarlo e libertà di condividerlo”OSI, Open Source AI Definition Draft】. Tuttavia, OSI sottolinea che queste libertà devono applicarsi non solo al codice, ma anche ai dati di training e ai pesi del modello, elementi spesso esclusi dalle licenze open tradizionali.

L’importanza dell’AI Open Source non risiede solo nella democratizzazione della tecnologia, ma anche nel ruolo fondamentale che può avere nel favorire una maggiore fiducia negli strumenti di intelligenza artificiale. La possibilità di analizzare, modificare e migliorare il codice permette infatti di evitare situazioni in cui pochi attori controllano interamente il panorama dell’AI, con impatti significativi sulla sicurezza e sulla competitività del settore.

Piattaforme runtime e modelli open source

Partiamo dalle piattaforme open source e i modelli di linguaggio di grandi dimensioni (LLM), che stanno diventando veri e propri pilastri nell'ambito dell'Intelligenza Artificiale Generativa. Similmente a soluzioni come OpenAI e DeepSeek, queste piattaforme richiedono diversi componenti che lavorano insieme per funzionare efficacemente. In questo contesto, la scelta del motore di inferenza è fondamentale, poiché deve essere compatibile con l'hardware utilizzato, come CPU o GPU, per evitare rallentamenti.

Una volta scelto il motore, è importante sapere come interagire con esso utilizzando strumenti di programmazione. Tuttavia, spesso questi strumenti possono essere complessi per gli sviluppatori meno esperti. Ecco che le potenzialità dell’AI per developers entrano in gioco, attraverso piattaforme più facili da usare, capaci di gestire la complessità tecnica per l'utente.

Tra le soluzioni open source più interessanti troviamo Ollama, LocalAI, GPT4ALLe e Jan, che offrono funzionalità simili ma si adattano a esigenze diverse; dall'esperto, all'utente finale in cerca di un'alternativa alle piattaforme commerciali.

Database vettoriali

Anche i database vettoriali stanno emergendo come elementi protagonisti nell'ecosistema delle applicazioni di Intelligenza Artificiale Generativa, in particolare per implementare tecniche avanzate come la Retrieval-Augmented Generation (RAG).  

La RAG è diventata fondamentale per superare i limiti degli LLM, addestrati su dataset pubblici statici. La RAG consente di collegare gli LLM a fonti di dati esterne, migliorando significativamente l'accuratezza e l'attualità delle risposte generate.  

Il processo RAG si articola in tre fasi principali: preparazione dei dati, recupero e generazione. La fase di preparazione dei dati è particolarmente critica e coinvolge la raccolta di informazioni da diverse fonti, la conversione in testo semplice, la suddivisione in chunk significativi e il salvataggio in un database insieme alla loro rappresentazione vettoriale.  

Questa rappresentazione vettoriale, ottenuta attraverso il processo di embedding utilizzando modelli AI specializzati, permette di eseguire operazioni matematiche per cercare documenti simili basandosi sulla distanza tra punti vettoriali. I database vettoriali sono progettati specificamente per gestire queste operazioni, dalla fase di embedding alla ricerca di similarità, rendendo possibile l'implementazione efficiente di applicazioni RAG.  

Roberto Peruzzo, nel suo talk “AI e Typesense: come integrare la ricerca semantica in Drupal”, fornisce un esempio pratico dell'uso dei database vettoriali nello sviluppo. Nel suo talk, illustra Typesense, un motore di ricerca open-source che migliora l'esperienza di ricerca su un sito, dimostrando come l'AI e la ricerca semantica possono rivoluzionare il modo in cui gli utenti trovano contenuti su siti Drupal.

Altri progetti di database vettoriali da segnalare sono: Chroma, Weaviate, pgvector, Milvus e Qdrant.

Framework di sviluppo

I framework di sviluppo stanno fungendo da veri e propri acceleratori per l'innovazione in questo campo. Questo perché lo sviluppo di applicazioni GenAI richiede inevitabilmente l'integrazione di molteplici componenti, dalla gestione dei dati all'interazione con diversi tipi di modelli AI, ciascuno con le proprie API, pesi e configurazioni.  

È proprio questa complessità che ha portato alla creazione di framework specializzati che semplificano e accelerano il processo di sviluppo. Proprio come l'invenzione di Docker e Kubernetes ha rivoluzionato il panorama dello sviluppo software negli ultimi dieci anni, i framework GenAI stanno ridefinendo rapidamente l'industria tecnologica.  

In questo frangente, possiamo citare framework completi come Langchain e Llama Index. Altri progetti notevoli includono Microsoft Semantic Kernel e Autogen, che si concentrano su aspetti specifici dello sviluppo AI. Framework come Haystack e Vercel AI offrono invece soluzioni più mirate per casi d'uso specifici.

IDE e assistenti di sviluppo

Vediamo ora come gli Integrated Development Environments (IDE) e gli assistenti di sviluppo basati sull'Intelligenza Artificiale Generativa (GenAI) stanno ridefinendo il panorama della programmazione, promettendo di rivoluzionare il modo in cui gli sviluppatori scrivono, comprendono e mantengono il codice.  

Il concetto di assistente di codifica automatizzato risale agli anni '70, ma l'avvento dei modelli di linguaggio di grandi dimensioni ha portato questa tecnologia a un livello completamente nuovo. Strumenti come GitHub Copilot hanno aperto la strada a una nuova generazione di assistenti AI, stimolando lo sviluppo di modelli open source specificamente addestrati per l'assistenza alla codifica. Oltre a migliorare la qualità del codice, uno dei benefici più significativi di questi tool è l'aumento della sicurezza del codice, grazie a suggerimenti di codice che riducono gli errori comuni.

A differenza dei tradizionali sistemi IntelliSense, che offrono suggerimenti deterministici basati su analisi statica, questi nuovi assistenti AI sfruttano la capacità dei modelli GenAI di produrre testo basato sul contesto, generando interi blocchi di codice pertinente. Anche se, questa capacità porta con sé il rischio di "allucinazioni".  

Un esempio emblematico di IDE è certamente Claude e il suo nuovissimo strumento, Claude Code, che permette ai programmatori di delegare compiti complessi direttamente dal terminale, migliorando l'efficienza e la precisione nella programmazione.

Altri progetti open source che spiccano sono Cody di Sourcegraph e Continue. Questi strumenti offrono funzionalità avanzate come il completamento del codice basato sul contesto, la spiegazione del codice esistente e la generazione automatica di test e documentazione.

AI per sviluppatori: casi d’uso di successo

La rivoluzione dell'AI per sviluppatori non è solo teoria; in SparkFabrik abbiamo implementato due casi d'uso concreti che stanno trasformando i nostri processi di sviluppo, migliorando l'efficienza e la qualità del nostro lavoro.

SparkBot: l'intelligenza contestuale al servizio dei team

SparkBot rappresenta la nostra implementazione di una piattaforma RAG (Retrieval-Augmented Generation) integrata direttamente nel nostro ecosistema Gitlab. Sviluppato dal Platform Team nel contesto R&D, questo assistente AI ha due obiettivi principali: acquisire confidenza con la tecnologia RAG e diffonderne la conoscenza all'interno dell'azienda.

Il bot si distingue per la sua capacità di accedere e contestualizzare informazioni specifiche dell'organizzazione, rispondendo a domande sui progetti, sulle configurazioni dei servizi e sull'organizzazione dei team. Ad esempio, uno sviluppatore può chiedere: "Quali progetti gestisce il team Alpha?" o "Chi sono gli owner interni ed esterni del progetto X?", ricevendo risposte precise basate su dati aggiornati.

L'architettura di SparkBot è basata su Python, Langchain e ChromaDB, con integrazione diretta con Slack per facilitare l'interazione. Il sistema attinge a diverse fonti dati interne, tra cui:

  • Il portale di documentazione aziendale
  • Il catalogo dei componenti CI/CD
  • Libri di riferimento come "Cloud Native Transformation" e "Team Topologies"

Questa implementazione, pur essendo ancora in fase sperimentale, dimostra come la tecnologia RAG possa essere utilizzata per creare una "intelligenza aziendale" accessibile e contestuale, che valorizza il patrimonio di conoscenze dell'organizzazione. 

PR Agent: code review automatizzata per migliorare la qualità del codice

Il secondo caso d'uso implementato in SparkFabrik è l'adozione del Codium PR Agent, un assistente AI che interviene direttamente nelle pipeline di Gitlab per migliorare il processo di revisione del codice. Questo strumento monitora automaticamente le nuove merge request e fornisce feedback istantaneo, trasformando radicalmente l'approccio alla code review. 

Quando viene aperta una MR, il PR Agent genera automaticamente una descrizione basata sul titolo e sul contenuto, analizza il codice e suggerisce miglioramenti specifici. Gli sviluppatori possono anche interagire con il bot attraverso comandi specifici come /review per richiedere una revisione completa, /improve per ottenere suggerimenti di miglioramento, o semplicemente /ask per porre domande sul codice. 

L'implementazione del PR Agent è basata su un'architettura containerizzata con un'immagine Docker estesa con un entrypoint personalizzato e un container Nginx come reverse proxy. Il sistema supporta modelli AI di OpenAI e Anthropic, con la possibilità di selezionare il modello preferito tramite variabili di ambiente. 

Questo strumento si è rivelato particolarmente prezioso per: 

  • Identificare potenziali bug e vulnerabilità prima che raggiungano l'ambiente di produzione
  • Assicurare l'aderenza agli standard di codice aziendali 
  • Accelerare il processo di revisione, permettendo ai revisori umani di concentrarsi su aspetti più strategici
  • Fornire un'opportunità di apprendimento continuo per gli sviluppatori attraverso suggerimenti contestuali

Impatto e risultati

L'implementazione di questi strumenti AI ha portato a benefici tangibili in SparkFabrik: 

  1. Riduzione del tempo di onboarding: i nuovi sviluppatori possono rapidamente familiarizzare con progetti e standard aziendali grazie a SparkBot.
  2. Aumento della qualità del codice: il PR Agent ha contribuito a standardizzare le best practice e ridurre potenziali bug in produzione.
  3. Crescita delle competenze: entrambi gli strumenti fungono da mentori virtuali, esponendo gli sviluppatori a pattern e tecniche ottimali.
  4. Efficienza operativa: la velocizzazione delle code review e la riduzione del tempo speso nella ricerca di informazioni hanno ottimizzato il flusso di lavoro complessivo. 

Questi casi d'uso dimostrano come l'AI per sviluppatori non sia solo uno strumento per completare attività di base, ma un vero e proprio moltiplicatore di produttività e qualità, capace di trasformare i processi di sviluppo e valorizzare il capitale umano e di conoscenza dell'azienda.

Sfide e best practices per l'uso etico dell'AI nello sviluppo 

In conclusione, l'adozione dell'Intelligenza Artificiale Generativa (GenAI) nello sviluppo software sta rapidamente trasformando il settore, offrendo molti vantaggi e introducendo altrettante nuove sfide. Una su tutte è la formazione di modelli di linguaggio di grandi dimensioni, che richiede un hardware costoso. Ad esempio, Meta ha dichiarato che l'allenamento di Llama 3.1 ha richiesto oltre 16.000 GPU Nvidia H100, con costi che possono raggiungere i 640 milioni di dollari. Costo che limita di gran lunga la competizione e suggerisce la necessità di sviluppare tecniche di addestramento decisamente più accessibili.  

Inoltre, questioni etiche e legali, come il nuovo European AI Act, richiedono un'attenzione continua, poiché la definizione di open source nell'AI è ancora in evoluzione grazie al lavoro della OSI Foundation. 

Nonostante queste sfide, il panorama è promettente. I casi d'uso di successo, come quelli implementati in SparkFabrik, dimostrano come l'AI per sviluppatori possa trasformare i processi di sviluppo e valorizzare il capitale umano e di conoscenza dell'azienda. 

Gli strumenti AI open source non solo assistono nel completamento del codice, ma aiutano anche a semplificare i flussi di lavoro complessi, rendendo l'intero processo di sviluppo più fluido e gestibile. L'81% degli sviluppatori riconosce un aumento della produttività grazie agli strumenti AI, anche se solo il 43% si fida dei risultati, con un 31% che rimane scettico.  

La strada da percorrere è ancora lunga e non mancherà di sorprenderci. Rimane una certezza (oggi per lo meno): siamo fortunati a vivere in un'epoca in cui l'open source è il modello di sviluppo predominante, offrendo a tutti l'opportunità di partecipare a questa rivoluzione.