Vai al contenuto principale

Tabnine: una guida con progetto demo

Scopri come creare un editor di immagini AI con Tabnine e il modello Nano Banana di Google.
Aggiornato 29 set 2026  · 12 min leggi

Scopri con l'IA

ChatGPTClaudePerplexity

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.

Screenshot dell’applicazione che abbiamo costruito nel tutorial usando Tabnine.

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.

Scheda dell’estensione Tabnine nel marketplace di VS Code che mostra i risultati di ricerca e l’opzione di installazione.

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).

Barra laterale di Visual Studio Code con esplora file, ricerca, controllo versione, debugger, estensioni e icone di Tabnine.

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:

Interfaccia di Tabnine in Visual Studio Code che mostra opzioni per assistenza legata al codice, estensioni e snippet, con Gemini 2.5 Pro selezionato nel menu.

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

Interfaccia di selezione del modello AI in Tabnine, con opzioni come Claude 3.5 Sonnet, Claude 3.7 Sonnet, Claude 4 Sonnet, Gemini 2.0 Flash, Gemini 2.5 Pro, GPT-4o e Tabnine Protected, con evidenza su ottimizzazioni prestazionali e funzionalità di privacy.

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

Interfaccia di chat AI di Tabnine in VS Code con opzioni per comandi, snippet di codice, file corrente e impostazioni dell’ambito della workspace.

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:

Interfaccia delle impostazioni di Tabnine con opzioni per integrazioni, lunghezza delle risposte, comportamenti personalizzati, comandi personalizzati, completamenti in chat e miglioramenti del prodotto.

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.

Impostazioni del comportamento personalizzato della chat di Tabnine in VS Code, con una casella di testo per definire istruzioni per personalizzare le risposte dell’AI, inclusa un’istruzione di esempio per guida passo-passo in tedesco.

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.

Interfaccia di Tabnine per definire nuovi comandi personalizzati, con campi per inserire nome, descrizione e template del prompt, con opzioni per salvare o annullare.

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:

Prompt di progettazione dell’interfaccia grafica in Tabnine, che suggerisce di creare un’interfaccia per selezionare immagini da un computer.

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:

Interfaccia di modifica immagini AI con un campo di testo che mostra un percorso file a un’immagine e un pulsante "Select Images" in basso.

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:

Prompt UI nell’interfaccia di coding che suggerisce di mostrare miniature invece dei percorsi delle immagini con una soluzione in codice che usa la libreria Pillow per l’elaborazione delle immagini.

Questo è il risultato:

Interfaccia di un editor di immagini AI con tema scuro che mostra miniature di immagini e un pulsante "Select Images" in basso, progettata per l’interazione dell’utente con la selezione dei file.

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

Prompt UI nell’interfaccia di Tabnine con un comando per abilitare la rimozione di immagini dalla selezione.

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:

Testo del prompt in un’interfaccia di coding AI per creare un menu popup al clic destro con un’opzione di eliminazione.

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.

Interfaccia di chat che mostra un utente che segnala un problema con la funzionalità di clic destro non funzionante, seguita da una risposta che indica si tratti di un problema cross-platform comune con tkinter.

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.

Prompt UI di un assistente di coding AI che suggerisce di aggiungere un input di testo multilinea etichettato "Prompt" sotto le anteprime delle immagini.

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.

Prompt per creare uno script Python per generare immagini usando il modello Nano Banana di Google, con gestione della chiave API via file .env.

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.

Interfaccia di Tabnine in Visual Studio Code che mostra gli ambiti selezionati: file corrente, workspace e Terminale, con opzioni per aggiungere o reimpostare l’ambito.

Messaggio di errore visualizzato nell’UI di Tabnine durante l’esecuzione dello script.

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:

Snippet di codice che mostra la funzionalità di autocompletamento di Tabnine.

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.

Interfaccia di Tabnine in VS Code che mostra la creazione di un nuovo piano di test con opzioni per rivedere un file di test esistente o crearne uno nuovo, insieme a funzionalità di editing del codice Python.

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:

Interfaccia del piano di test che mostra i percorsi selezionati per modulo e file di test, con casi di test suggeriti per un generatore di immagini AI.

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.

Screenshot che mostra l’output del terminale con l’esecuzione di un unittest Python. Visualizza un messaggio di errore: "Si è verificato un errore durante la chiamata all’API Gemini: il prompt non può essere vuoto." Il test ha eseguito un test in 0,001 secondi, risultando "OK" nonostante l’errore del prompt.

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.


François Aubry's photo
Author
François Aubry
LinkedIn
Ingegnere full‑stack e fondatore di CheapGPT. Insegnare è sempre stata la mia passione. Fin dai primi anni da studente, cercavo con entusiasmo occasioni per fare da tutor e aiutare altri studenti. Questa passione mi ha portato a intraprendere un dottorato, durante il quale ho anche svolto il ruolo di assistente alla didattica a supporto del mio percorso accademico. In quegli anni ho trovato enorme soddisfazione nell'ambiente tradizionale dell'aula, creando connessioni e facilitando l'apprendimento. Con l'avvento delle piattaforme di apprendimento online, però, ho riconosciuto il potenziale trasformativo dell'educazione digitale. Di fatto, ho partecipato attivamente allo sviluppo di una di queste piattaforme nella nostra università. Sono profondamente impegnato a integrare i principi dell'insegnamento tradizionale con metodologie digitali innovative. La mia passione è creare corsi non solo coinvolgenti e informativi, ma anche accessibili a chi apprende in questa era digitale.
Argomenti
Intelligenza artificiale
Large Language Models

Impara l’AI con questi corsi!

Corso

Sviluppo software con Windsurf

1 ore 30 min
3.1K
Migliora il tuo codice con Windsurf, l'IDE basato sull'intelligenza artificiale che ti aiuta a creare, eseguire il debug e distribuire più velocemente.
Vedi i dettagliRight Arrow
Inizia Il Corso
Mostra altroRight Arrow
Correlato

blog

Tokenizzazione nel NLP: come funziona, sfide e casi d'uso

Guida al preprocessing NLP nel machine learning. Copriamo spaCy, i transformer di Hugging Face e come funziona la tokenizzazione in casi d'uso reali.
Abid Ali Awan's photo

Abid Ali Awan

10 min

blog

I 15 migliori server MCP remoti che ogni AI builder dovrebbe conoscere nel 2026

Scopri i 15 migliori server MCP remoti che stanno trasformando lo sviluppo AI nel 2026. Scopri come migliorano automazione, ragionamento, sicurezza e velocità dei workflow.
Abid Ali Awan's photo

Abid Ali Awan

15 min

blog

Che cos'è Snowflake? Guida per principianti alla piattaforma dati cloud

Esplora le basi di Snowflake, la piattaforma dati cloud. Scopri la sua architettura, le sue funzionalità e come integrarla nelle tue pipeline di dati.
Tim Lu's photo

Tim Lu

12 min

Mostra AltroMostra Altro