L’intelligenza artificiale (AI) sta trasformando radicalmente il panorama dello sviluppo del codice di programmazione, offrendo nuove possibilità per ottimizzare e velocizzare il lavoro degli sviluppatori. L’automazione del completamento del codice, l’identificazione degli errori e la generazione di soluzioni ottimali sono solo alcune delle applicazioni che l’AI ha introdotto nel processo di sviluppo. Gli stessi chatbot sono diventati partner di primo piano nello sviluppo software.
In un mondo sempre più competitivo, l’adozione dell’intelligenza artificiale generativa nel software development rappresenta un vantaggio cruciale, consentendo ai team di concentrarsi su aspetti più strategici e creativi del loro lavoro, lasciando alle macchine il compito di gestire le operazioni più ripetitive e complesse.
Tabby è l’assistente per lo sviluppo software open source che funziona in locale
Di solito, tuttavia, per avvalersi di uno strumento AI capace di coadiuvare le attività di scrittura del codice è necessario affidarsi a strumenti che funzionano sul cloud e che quindi raccolgono tutte le informazioni trasmesse da ogni singolo utente.
Tabby rappresenta una soluzione all’avanguardia nel campo degli assistenti di codifica AI: si tratta di una soluzione open source concepita per essere auto-ospitata.
L’idea alla base di Tabby è fornire ai team di sviluppo la possibilità di creare e gestire un server per il completamento del codice alimentato da LLM (Large Language Models) in modo diretto, senza la necessità di soluzioni esterne o strumenti preconfigurati.
Completamente gratuito e aperto, Tabby può essere liberamente adattato alle proprie necessità. Inoltre, essendo compatibile con i principali modelli LLM per la codifica, come CodeLlama, StarCoder e CodeGen, offre agli sviluppatori la flessibilità di scegliere i modelli più adatti al proprio ambiente di sviluppo.
La capacità di combinare vari modelli senza dover implementare soluzioni complesse, lo rende una risorsa potente per i team di sviluppo di ogni dimensione.
Ottimizzazione del flusso di lavoro
A differenza di molte altre soluzioni di completamento del codice, che trattano il completamento come un semplice livello posto al di sopra degli LLM, Tabby adotta un approccio end-to-end.
L’ottimizzazione non si limita alla gestione dei modelli LLM, ma si estende agli IDE (Integrated Development Environment), cosa fondamentale per ottenere prestazioni ottimali. Con un meccanismo di caching adattivo, Tabby garantisce completamenti rapidi, spesso in meno di un secondo.
La stessa interfaccia utente di Tabby è progettata per essere intuitiva e accessibile, favorendo un’esperienza di sviluppo senza interruzioni. Inoltre, il progetto punta a coinvolgere una comunità di sviluppatori, permettendo loro di contribuire facilmente al miglioramento delle prestazioni del sistema.
Come usare Tabby per lo sviluppo software con l’AI
Nella documentazione ufficiale, si trovano tutte le indicazioni per installare e usare Tabby. Il software è infatti compatibile con Windows, Linux e macOS.
Il modo più semplice per iniziare a usare Tabby è creare un server usando il container Docker fornito dagli sviluppatori. Per procedere, indipendentemente dalla piattaforma in uso, è necessario verificare di aver installato Docker e disporre di una GPU adeguata per eseguire il modello:
docker run -it \
--gpus all -p 8080:8080 -v $HOME/.tabby:/data \
tabbyml/tabby \
serve --model StarCoder-1B --device cuda --chat-model Qwen2-1.5B-Instruct
Il comando espone la porta 8080 per accedere al server di Tabby, mappa una directory locale per memorizzare i dati e infine utilizza l’opzione serve --model StarCoder-1B --device cuda --chat-model Qwen2-1.5B-Instruct
che permette di specificare il modello da usare, la GPU e il modello.
L’interfaccia di Tabby
Una volta avviato, Tabby fornisce un’interfaccia API OpenAPI che può essere facilmente integrata con le infrastrutture esistenti, come IDE o editor di codice basati su cloud.
Per iniziare a interagire con Tabby, è possibile utilizzare la demo disponibile sul sito ufficiale e utilizzare l’API per avanzare richieste di codifica. È possibile interagire con il modello di chat e con le altre funzionalità di Tabby usando chiamate API dirette.
Maggiori informazioni sono reperibili anche nel repository GitHub ufficiale.
Credit immagine in apertura: iStock.com – MTStock Studio