Corso
Scrivere codice può diventare noioso quando resti bloccato su boilerplate o su piccoli dettagli di sintassi. Quell’attrito aumenta quando sperimenti con nuovi modelli di AI e vuoi solo concentrarti sullo sviluppo. Tabnine aiuta a superare quel rallentamento con completamenti di codice basati su AI direttamente nel tuo editor.
In questo articolo, ti spiegherò passo dopo passo come usare Tabnine in Visual Studio Code (VS Code) per creare un editor di immagini AI utilizzando l’ultimo modello di generazione di immagini di Google, Nano Banana. Alla fine avremo un’applicazione Python funzionante che permette agli utenti di generare e modificare immagini tramite prompt.
Se vuoi restare aggiornato con i più recenti modelli di generazione di immagini di Google, ti consiglio di leggere la nostra guida su Nano Banana 2.


Cos’è Tabnine?
Tabnine è un assistente alla programmazione basato su AI simile a GitHub Copilot e Cursor. Funziona nei principali editor come VS Code, PyCharm, Jupyter e altri.
Alcune delle funzionalità chiave di Tabnine includono:
- Integrazione con Jira: Tabnine può connettersi a Jira, una piattaforma molto usata per la gestione di progetti di ingegneria del software. Questo semplifica la gestione del lavoro e permette a Tabnine di tracciare le attività in pipeline.
- Comandi personalizzati: Tabnine include vari comandi, come "Explain code" o "Fix code". Consente anche di definire comandi personalizzati basati su prompt.
- Comportamento personalizzato: Tabnine ti permette di configurare un prompt che guida il modo in cui i modelli di AI rispondono. Per esempio, se hai linee guida di coding ben definite, puoi fornirle per assicurarti che generi codice coerente con quelle regole.
- Autocompletamento intelligente: suggerisce intere righe o blocchi di codice, non solo nomi di variabili.
- Consapevolezza del contesto: Tabnine si adatta alla struttura del tuo progetto e al tuo stile di programmazione.
- Supporto per più modelli di AI: Tabnine supporta i modelli di AI più popolari, rendendo semplice scegliere quale usare.
- Apprendimento di team: nei piani enterprise, può apprendere dalla codebase privata del tuo team per suggerimenti su misura dei pattern della tua azienda.
Configurazione di Tabnine
Per iniziare, dobbiamo creare un account Tabnine e abbonarci a uno dei loro piani. Offrono una prova di 14 giorni, così puoi provarlo gratis. Dopo il periodo di prova, Tabnine costa 9 $ al mese.
Dopo aver creato l’account Tabnine, apri VS Code. Se non hai VS Code, installalo da qui. Apri la scheda delle estensioni e digita "tabnine" per trovare l’estensione ufficiale.

Una volta installata l’estensione, ci viene chiesto di accedere. Poi possiamo aprire Tabnine dalla barra menu a sinistra (l’ultima opzione in questo screenshot).

Esplorare l’UI di Tabnine
Prima di costruire il nostro editor di immagini AI, rivediamo velocemente gli elementi principali di Tabnine.
Quando apriamo Tabnine, ci viene presentata un’interfaccia di chat con AI:

In alto, c’è un selettore del modello. Qui possiamo scegliere quale modello usare. In questo tutorial userò il default, Gemini 2.5 Pro.

In basso possiamo definire il contesto. Questo determina cosa vogliamo che il modello di AI veda quando risponde.

Per impostazione predefinita, il contesto include il file corrente e la workspace (il progetto). Possiamo aggiungere altre cose, come il Terminale, molto utile per far sapere al modello degli errori quando li incontriamo. Possiamo anche fornire uno specifico snippet di codice usando il carattere "@" e poi digitando il nome della funzione che vogliamo aggiungere al contesto.
Dal menu hamburger, possiamo configurare Tabnine:

Due impostazioni degne di nota sono comportamento personalizzato e comandi personalizzati. Nella sezione del comportamento personalizzato, possiamo impostare un prompt che guidi il modello nella generazione del codice. È utile quando vogliamo che il codice segua linee guida specifiche.

La sezione dei comandi permette di definire comandi personalizzati eseguibili con un /<command-name> nell’interfaccia di chat. Un comando è essenzialmente un prompt per svolgere azioni specifiche. È un buon modo per risparmiare tempo ed evitare di ripetere lo stesso prompt all’infinito.

Vibe-coding di un editor di immagini AI con Tabnine
In questa sezione ti mostrerò come costruire un’applicazione Python che usa Nano Banana, l’ultimo modello di generazione immagini di Google, per modificare immagini. L’utente può usare un prompt per generare un’immagine oppure combinare e modificare immagini esistenti con il prompt.
Il mio obiettivo era vedere se fosse possibile vibe-codare questa applicazione, cioè costruirla interamente da prompt partendo da zero.
Tutto il codice generato in questo tutorial si trova in questo repository GitHub.
Creazione della UI di base
Per iniziare, volevo creare la UI di base in cui gli utenti possono selezionare immagini dal computer e digitare un prompt. Ho creato una nuova cartella e aperto VS Code in quella cartella. Non ho creato alcun file. Questo è stato il mio primo prompt:

Mi sono reso conto dopo che avevo dimenticato di dire che stavo costruendo un’app Python. In qualche modo mi è andata bene e il modello di AI ha dato per scontato che volessi quello. Ha risposto al mio prompt spiegando i comandi che avrebbe eseguito e il codice che avrebbe scritto.
Per applicare le modifiche, dobbiamo applicarle una per una oppure cliccare sul pulsante "Apply All" in fondo allo schermo. Nota che alcune modifiche comportano l’esecuzione di comandi. In questi casi, i comandi installano i pacchetti Python necessari e creano i file e le cartelle per ospitare il codice.
Ecco come appariva l’interfaccia quando ho eseguito lo script creato:

In alto c’è un elenco di tutte le immagini selezionate e un pulsante per aprire un selettore di file. L’utente può selezionare uno o più file e i file selezionati vengono elencati. Tuttavia, quando si selezionano nuovi file, il vecchio elenco viene sovrascritto, quindi ho chiesto di aggiungere i nuovi file all’elenco invece di rimuovere i precedenti.

Successivamente, volevo migliorare la UI per mostrare le miniature delle immagini invece dei loro percorsi:

Questo è il risultato:

Un’altra funzionalità importante è la possibilità di rimuovere facilmente le immagini:

Con questo prompt, ha modificato il codice in modo che, quando facevamo clic con il tasto destro su una miniatura, comparisse un menu pop-up che consentiva di eliminare l’immagine. Volevo che funzionasse così, quindi ho richiesto quella modifica:

Quando ho provato l’app dopo questa modifica, l’eliminazione delle immagini non funzionava più. Sospettavo fosse perché uso un Mac, ma non l’ho detto. Volevo vedere se riuscisse a capirlo da solo.

Ha funzionato molto bene, e sono stato in grado di fare clic destro su un’immagine per eliminarla:

L’ultimo passaggio nella UI di base è stato aggiungere una casella di testo per il prompt.

Con questo, la UI di base era pronta. Possiamo selezionare immagini e digitare un prompt. Tuttavia, non possiamo ancora generare un’immagine. Lo implementeremo nella prossima sezione.

Integrazione di Nano Banana
Per mantenere il codice organizzato, ho chiesto di creare un nuovo script Python con una funzione che usa l’API generativa di Google con il loro ultimo modello di immagini per generare immagini.

Ha creato il nuovo script e il file .env. Questo file serve a memorizzare la chiave API necessaria per connettersi all’API di Google. Se stai seguendo, dovrai creare una chiave API qui e inserirla nel file .env.
Poi ho chiesto di aggiungere un nuovo pulsante all’interfaccia per chiamare la funzione di generazione dell’immagine. Ha aggiunto il pulsante, ma quando l’ho cliccato ho ottenuto un errore. Quindi mi sono assicurato di aggiungere il terminale al contesto prima di chiedergli di correggere l’errore.


Ha apportato alcuni aggiornamenti ai file, ma l’errore persisteva. Ho provato a farlo correggere, ma non ha funzionato. Ha iniziato a dire che il modello di AI non esisteva e voleva cambiare il codice in una direzione che sapevo non essere corretta.
Per superare l’ostacolo, ho dovuto correggere il codice manualmente. Sono andato sul sito ufficiale di Gemini e ho copiato e adattato da lì il codice di esempio.
Questo è uno dei motivi per cui penso sia importante avere delle basi di programmazione, anche quando si vibe-coda. Capita spesso di imbattersi in qualcosa che il modello di AI non riesce a sistemare, e saper programmare è importante per capire quando ciò che il modello dice non è corretto e per poterlo correggere. Questi strumenti dovrebbero sempre essere usati per accelerare il processo, non per sostituirlo del tutto.
Tuttavia, anche dovendo scrivere questo codice manualmente, Tabnine è stato d’aiuto grazie alle sue capacità di autocompletamento. Per esempio, quando volevo convertire i percorsi delle immagini selezionate in immagini da fornire al modello, mi è bastato iniziare a digitare ciò che volevo e ho ottenuto il codice corretto:

Vediamo anche sopra il nome della funzione che Tabnine offre strumenti per modificare, testare, correggere, spiegare e documentare la funzione. Per esempio, ho usato la funzione di documentazione per documentare il codice, e mi ha mostrato un diff con le modifiche che prevedeva di fare, che potevo poi accettare o rifiutare:

Risultato finale
L’applicazione era ora funzionante e pronta all’uso. Proviamo a creare un’action figure per una certa persona con accessori presi da altre immagini:

Ecco il risultato:

Testing con Tabnine
È molto importante scrivere test automatizzati quando si lavora a un progetto. Una delle funzionalità di Tabnine è aiutarci a scrivere questi test.
Questa funzione è disponibile nella scheda "Test" o cliccando l’opzione "Test" sopra la definizione di una funzione. In questo modo, Tabnine creerà un piano di test per quella funzione.

Un piano di test consiste in scenari con il comportamento atteso della funzione. Ecco alcuni degli scenari che Tabnine ha individuato per la nostra funzione:

Per generare un test per uno scenario specifico, basta cliccarci sopra. Genererà la funzione di test per quello scenario, che poi possiamo integrare nella nostra suite di test.

Quando ho applicato queste modifiche, il file di test conteneva la funzione di test e nient’altro. Mancavano gli import e la classe di test circostante. Ho dovuto tornare alla scheda "Chat" per chiedergli di completare l’implementazione del test. Dopo di che, ho avuto un errore perché il nome del file creato era sbagliato. Come prima, gli ho detto che si era verificato un errore e lo ha corretto. Ora il test viene eseguito correttamente.
Quando ho aggiunto altri test dopo questo, tutto ha funzionato bene.

Conclusione
Tabnine mostra il suo potenziale come potente strumento per lo sviluppo rapido integrandosi facilmente con i più diffusi editor di codice. Le sue capacità di coding assistito dall’AI accelerano il processo, permettendo agli sviluppatori di concentrarsi sull’innovazione invece che sui compiti ripetitivi.
Tuttavia, il mio tentativo di costruire un’applicazione esclusivamente tramite vibe-coding ha evidenziato l’importanza di una solida comprensione dei principi di programmazione. Affidarsi ciecamente al codice generato dall’AI senza verificarne l’adeguatezza può portare a complicazioni, lasciando gli sviluppatori vulnerabili a errori che potrebbero non comprendere appieno.
Tabnine ha funzionato bene per la maggior parte del tempo, ma spesso sembrava che il vero motore fosse il modello di AI sottostante, paragonabile ad altri strumenti come GitHub Copilot. Pur essendo uno strumento davvero utile, questa esperienza sottolinea il valore insostituibile delle conoscenze tradizionali di programmazione per garantire lo sviluppo efficace e sostenibile di applicazioni software complesse.


