Vai al contenuto principale

Creare un'app di IA multimodale con Gemini 2.0 Pro

Crea un'app di chat che capisce testo, immagini, audio e documenti, ed esegue anche codice Python. Una vera applicazione multimodale, più vicina all'AGI.
Aggiornato 29 set 2026  · 11 min leggi

Scopri con l'IA

ChatGPTClaudePerplexity

Google è tornata nel gioco dell'IA con il lancio di Gemini 2.0 Pro, il suo modello più all'avanguardia finora. Attualmente è in fase sperimentale, il che significa che è disponibile solo tramite API per gli sviluppatori. 

Gemini 2.0 Pro eccelle nelle prestazioni di coding ed è in grado di gestire prompt complessi con ragionamento avanzato e conoscenza del mondo. Questo modello offre un'enorme finestra di contesto di 2 milioni di token, che gli consente di elaborare e analizzare grandi quantità di informazioni. Inoltre può utilizzare strumenti come Google Search ed eseguire codice, aumentando la sua versatilità.

In questo tutorial impareremo ad accedere a varie funzionalità di Gemini 2.0 Pro tramite il nuovo pacchetto GenAI per Python di Google. Poi costruiremo un'applicazione Gradio così che chiunque possa accedere e provare queste funzionalità con un clic. Infine, eseguiremo il deploy dell'applicazione su Space per renderla disponibile al pubblico.

Puoi consultare la nostra guida a Gemini 2.0 Flash Thinking Experimental per vedere come il modello si confronta con la serie o di OpenAI e la serie R di DeepSeek. E per saperne di più sulla creazione di app multimodali con Gemini 2.0, ti consiglio questo tutorial di Adel Nehme:

App multimodali con Gemini 2.0 | Crea uno strumento locale per creator su YouTube

Configurare Gemini 2.0 Pro

Al momento, Gemini 2.0 Pro è accessibile solo tramite Google AI Studio, che richiede l'accesso con un account Google. Per iniziare, segui questi passaggi:

1. Accedi a Google AI Studio

Visita il sito di Google AI Studio e accedi usando le credenziali del tuo account Google. Una volta effettuato l'accesso, verrai reindirizzato alla dashboard di Google AI Studio.

2. Genera una chiave API

  • Nella dashboard, individua e clicca il pulsante “Get API Key” nell'angolo in alto a sinistra.
  • Poi, clicca sul pulsante “Create API Key” per generare la tua prima chiave API.

Google Studio Generate API key

Fonte: Google AI Studio 

3. Imposta la variabile d'ambiente

Crea una variabile d'ambiente chiamata GEMINI_API_KEY e assegnale il valore della chiave API appena generata.

4. Installa i pacchetti Python richiesti

Installa i pacchetti Python necessari eseguendo il seguente comando nel terminale:

pip install google-genai 
pip install gradio

Testare le funzionalità di Gemini 2.0 Pro

Ora useremo il client Python di Gemini per accedere a varie funzionalità del modello Gemini 2.0 Pro. Queste includono comprensione del testo, elaborazione di immagini, analisi audio e comprensione di documenti. 

Inoltre testeremo la funzionalità di esecuzione del codice, che consente di generare codice ed eseguirlo direttamente all'interno del kernel Python nel cloud.

1. Generazione di testo

Caricheremo la chiave API dalla variabile d'ambiente e inizializzeremo il client utilizzandola. Questo client fungerà da interfaccia per accedere a vari modelli e funzionalità.

Successivamente forniremo al modello una domanda e genereremo una risposta in streaming. Significa che, non appena i token vengono generati, verranno mostrati progressivamente nel terminale, offrendo un feedback in tempo reale.

import os
from google import genai

API_KEY = os.environ.get("GEMINI_API_KEY")

client = genai.Client(api_key=API_KEY)

response = client.models.generate_content_stream(
    model="gemini-2.0-pro-exp-02-05",
    contents=["Explain how Stock Market works"])
for chunk in response:
    print(chunk.text, end="")

Il modello ha generato una risposta dettagliata e accurata. 

The stock market is a complex system, but here's a breakdown of how it works in a simplified way, covering the key concepts:

**1. What are Stocks (Shares)?**

*   **Ownership:** Stocks, also called shares or equities, represent ownership in a company.  When you buy a stock, you're buying a tiny piece of that company.
*   **Claim on Assets and Earnings:** As a shareholder, you have a claim on the company's assets and earnings.  You're entitled to a portion of the company's profits (often distributed as dividends, though not always) and, in theory, a share of the company's value if it were to be liquidated.
*   **Voting Rights (Sometimes):**  Many stocks (but not all) come with voting rights, allowing you to have a say in certain company decisions (like electing the board of directors).

**2. Why Companies Issue Stock (Go Public)?**

2. Comprensione delle immagini

Per la comprensione delle immagini, caricheremo l'immagine usando la libreria Pillow in Python e la aggiungeremo all'argomento contents. I contents includeranno domande sull'immagine insieme all'oggetto immagine.

from google import genai
from google.genai import types

import PIL.Image

image = PIL.Image.open('image.png')

response = client.models.generate_content_stream(
    model="gemini-2.0-pro-exp-02-05",
    contents=["Explain the image", image])

for chunk in response:
    print(chunk.text, end="")

Il modello ha compreso l'immagine con precisione fornendoci anche dettagli minimi. 

The image is a stylized, abstract graphic. It looks like a simplified diagram or node network, with a black background.

Here's a breakdown:

*   **Nodes:**  There are four circular nodes.  Each node is a different color:
    *   Light Blue (Top Left)
    *   Light Green (Bottom Left)
    *   White (Top Right)
    *    Red (Bottom Right)
*    **Node outline:** There is a thick outline around each of the circles.
*  **Shadow:** Each circle appears to be casting a white shadow.

3. Comprensione dell'audio

Gemini 2.0 Pro può comprendere l'audio direttamente senza convertirlo in testo. Basta caricare l'audio e fornirlo all'argomento content insieme alla domanda pertinente.

with open('audio.wav', 'rb') as f:
    audio_bytes = f.read()

response = client.models.generate_content_stream(
  model='gemini-2.0-pro-exp-02-05',
  contents=[
    'Describe this audio',
    types.Part.from_bytes(
      data=audio_bytes,
      mime_type='audio/wav',
    )
  ]
)

for chunk in response:
    print(chunk.text, end="")

Anche in questo caso, fornisce una descrizione dell'audio molto accurata. 

The audio appears to be a collection of short, spoken phrases or sentences. There is only one speaker, a male, and he seems to be reading or reciting these phrases, possibly as part of a list or exercise. The content focuses on food and related concepts like smell and temperature.

4. Comprensione dei documenti

Invece di usare Langchain o altri framework RAG, possiamo fornire a Gemini 2.0 Pro dei documenti: li analizzerà e indicizzerà, permettendoci di iniziare a fare domande su di essi. 

Abbiamo caricato un file PDF e posto domande basate sul suo contenuto. È tutto qui.

from google import genai
from google.genai import types
import pathlib

prompt = "What the document is about"
presponse = client.models.generate_content_stream(
  model="gemini-2.0-pro-exp-02-05",
  contents=[
      types.Part.from_bytes(
        data=pathlib.Path('cv.pdf').read_bytes(),
        mime_type='application/pdf',
      ),
      prompt])

for chunk in response:
    print(chunk.text, end="")

Di conseguenza, ha descritto perfettamente di cosa tratta il documento.

Based on the OCR output, the document is **Abid Ali Awan's Curriculum Vitae (CV) or resume**. It details his:

*   **Contact Information:** Name, address, email, and phone number.
*   **Work Experience:** A chronological list of his professional roles, including job titles, companies, locations, dates of employment, and brief descriptions of his responsibilities. This includes experience in data science, freelancing, research, media, and network engineering.
*   **Education:** His academic background, listing degrees earned, institutions attended, graduation dates, GPAs, and areas of specialization.
*    **Gap Year:** Explaining the time that have taken for medical/personal issues.
*   **Professional Skills:** A list of his technical and soft skills, categorized and rated

5. Generazione ed esecuzione di codice

L'aspetto più notevole dell'API di Gemini è che puoi generare codice ed eseguirlo usando la stessa API. Significa che il tuo codice verrà generato e testato; se c'è un bug, il modello lo correggerà e rieseguirà il codice finché non verrà generata la risposta corretta.

Abbiamo posto a Gemini 2.0 Pro una domanda di programmazione e richiesto di eseguire il codice al termine. Se guardi l'argomento config, vedrai che abbiamo incluso lo strumento di esecuzione del codice per l'esecuzione nel cloud.

from google import genai
from google.genai import types
from IPython.display import Markdown, HTML, Image, display

response = client.models.generate_content(
  model='gemini-2.0-pro-exp-02-05',
  contents="""
  Write a Python program to calculate the sum of the first 50 prime numbers. The program should:
   - Use a function to check if a number is prime.
   - Use another function to find and sum the first n prime numbers, where n is 50 in this case.
   - Ensure the code is efficient and readable.
   - Print the result clearly.
After writing the code, execute it to verify that the sum of the first 50 prime numbers is correct.
  """,
  config=types.GenerateContentConfig(
    tools=[types.Tool(
      code_execution=types.ToolCodeExecution
    )]
  )
)

def display_code_execution_result(response):
  for part in response.candidates[0].content.parts:
    if part.text is not None:
      display(Markdown(part.text))
    if part.executable_code is not None:
      code_html = f'<pre style="background-color: green;">{part.executable_code.code}</pre>' # Change code color
      display(HTML(code_html))
    if part.code_execution_result is not None:
      display(Markdown(part.code_execution_result.output))
    if part.inline_data is not None:
      display(Image(data=part.inline_data.data, format="png"))
    display(Markdown("---"))

display_code_execution_result(response)

Il modello ha generato il codice ma non è riuscito a eseguirlo. Poi ha corretto i problemi, ha rieseguito il codice e ha mostrato correttamente i risultati. 

Gemini 2.0 code generation

Creare un'applicazione con Gemini 2.0 Pro

Ora costruiremo una web app Gradio che integri tutte le funzionalità testate in precedenza. Questo permetterà a chiunque di provarla caricando file e facendo domande su immagini, audio, documenti e perfino eseguendo codice. 

Il codice di app.py è disponibile nel repository GitHub Gemini-2-Pro-Chat. Puoi esaminarlo per capire come è stata implementata ogni funzionalità.

In breve, l'app contiene:

  • Gestione input multimodale: il chatbot può elaborare testo, immagini, audio e documenti.
  • Generazione dinamica delle risposte: effettua lo streaming delle risposte utilizzando il metodo generate_content_stream di Google GenAI.
  • Esecuzione di codice: gli utenti possono generare il codice e chiedere al chatbot di eseguirlo e restituire i risultati.
  • Elaborazione di immagini e audio: le immagini vengono ridimensionate e convertite in base64 per l'incorporamento in HTML, mentre i file audio vengono codificati e mostrati con un player audio.
  • Upload di documenti: i file PDF vengono elaborati e aggiunti alla cronologia della conversazione.

Gemini-2-Pro-Chat code

Dopo aver copiato il codice dal repository remoto nel tuo progetto locale, puoi eseguirlo in locale.

python app.py

Running locally

Testare l'applicazione Gemini 2.0 Pro

Ora testeremo la web application per assicurarci che tutto funzioni correttamente. Passeremo in rassegna tutte le funzionalità una per una usando l'interfaccia utente dell'app.

1. Digita la tua domanda e premi il tasto [Invio]. La risposta inizierà a essere generata e in pochi secondi avrai la tua risposta.

Testing the Gemini 2.0 Pro multi-modal chatbot

2. Per caricare un'immagine, clicca sul pulsante “Upload Images” e seleziona il file dalla directory. Poi poni una domanda sull'immagine e Gemini 2.0 Pro inizierà a generare una risposta accurata e molto dettagliata.

3. Carica un audio cliccando sul pulsante “Upload Audio” e selezionando il file audio. Dopodiché, poni una domanda sull'audio. Il modello produrrà risposte molto accurate. 

Uploading audio to Gemini 2.0

4. Puoi anche caricare documenti. Carica un file PDF cliccando sul pulsante “Upload Documents” e selezionando il file. Poi poni una domanda sul documento.

Uploading documents to Gemini 2.0 pro

5. L'esecuzione del codice è un po' diversa. Non ha una cronologia per evitare conflitti, quindi devi chiedere di generare ed eseguire il codice nello stesso prompt. 

Per esempio, gli abbiamo chiesto di generare ed eseguire del codice Python di esempio per creare un'immagine casuale in formato PNG, e poi abbiamo premuto il pulsante “Run Code Execution”.

Gemini 2.0 Pro code execution

In pochi secondi ha generato il codice, lo ha eseguito e ha mostrato le immagini nella chat.

Gemini 2.0 Pro code output

La funzionalità di esecuzione del codice fornisce anche una conclusione finale.

Gemini 2.0 Pro code conclusion

Distribuire l'app Gemini 2.0 Pro

Distribuiamo l'app nel cloud usando Hugging Face Spaces. Vai su Hugging Face Spaces e clicca sul pulsante “+ New Space”. Inserisci nome, descrizione e licenza dello Space e seleziona come SDK Gradio.

Deploying Gemini 2.0 Pro app

Fonte: Hugging Face

Dopo aver creato lo Space, riceverai le istruzioni per clonare il repository:

git clone https://huggingface.co/spaces/kingabzpro/Gemini-2-Pro-Chat
cd Gemini-2-Pro-Chat

All'interno del repository locale, crea un file requirements.txt e aggiungi la seguente dipendenza Python:

google-genai==1.0.0

Poi modifica il file README.md per includere il seguente contenuto:

---
title: Gemini 2 Pro Chat
emoji: ♊💬
colorFrom: green
colorTo: pink
sdk: gradio
sdk_version: 5.15.0
app_file: app.py
pinned: false
license: mit
short_description: 'Image, Audio, and Document understanding + Code Execution. '
---

Quindi aggiungi il file app.py al repository. Metti in stage le modifiche, effettua il commit e fai push degli aggiornamenti sul repository remoto:

git add .
git commit -m "deploying the app"   
git push 

Una volta eseguito il push dei commit, vedrai che il tuo Space sta costruendo l'immagine Docker e installando le dipendenze.

Docker image and installing the dependencies

Fonte: Gemini 2 Pro Chat

Dopo che tutto è stato finalizzato, potresti visualizzare un messaggio di errore. Non preoccuparti: è relativo a variabili d'ambiente mancanti che andremo ad aggiungere negli Spaces.

Error message

Fonte: Gemini 2 Pro Chat

Vai nelle impostazioni del tuo Space e scorri fino alla sezione "Variables and Secrets". Crea un nuovo secret cliccando sul pulsante “New Secret”. Assegnagli un nome e inserisci la tua chiave API di Gemini.

Create a new secret in Hugging Face Spaces

Fonte: Gemini 2 Pro Chat

Dopo aver aggiunto il secret, lo Space si riavvierà automaticamente e la tua app girerà senza problemi, proprio come in locale.

Gemini 2.0 Pro app running

Fonte: Gemini 2 Pro Chat

Conclusione

Creare un'applicazione di IA ad alte prestazioni è diventato molto più semplice grazie alla nuova API di Gemini 2.0 Pro e alle sue funzionalità avanzate. Invece di installare molteplici pacchetti Python per elaborare immagini, audio o documenti, puoi semplicemente fornire questi input all'endpoint dell'API. Il modello genererà i risultati in pochi secondi, rendendo il processo fluido ed efficiente.

Attualmente, l'accesso a Gemini 2.0 Pro è gratuito ma limitato a 50 richieste al giorno. Tuttavia, è importante notare che l'API non deve essere utilizzata per scopi commerciali per evitare il rischio di sospensione dell'account.

In questo tutorial abbiamo esplorato il modello all'avanguardia Gemini 2.0 Pro e le sue funzionalità. Abbiamo testato queste capacità in Jupyter Notebook e le abbiamo integrate in un'applicazione Gradio. Infine, abbiamo distribuito l'app nel cloud, rendendola accessibile al pubblico.

Se vuoi saperne di più sulla creazione di applicazioni basate sull'IA, dai un'occhiata al nostro skill track Developing AI Applications per conoscere alcuni degli ultimi strumenti per sviluppatori di IA.


Abid Ali Awan's photo
Author
Abid Ali Awan
LinkedIn
Twitter

In quanto data scientist certificato, sono appassionato di sfruttare tecnologie all’avanguardia per creare applicazioni di machine learning innovative. Con una solida esperienza in riconoscimento vocale, analisi e reportistica dei dati, MLOps, AI conversazionale e NLP, ho affinato le mie competenze nello sviluppo di sistemi intelligenti in grado di avere un impatto concreto. Oltre alla mia expertise tecnica, sono anche un comunicatore efficace, con il talento di rendere chiari e sintetici concetti complessi. Di conseguenza, sono diventato un blogger molto seguito in ambito data science, condividendo idee ed esperienze con una community in crescita di professionisti dei dati. Attualmente mi concentro sulla creazione e sull’editing di contenuti, lavorando con large language model per sviluppare contenuti potenti e coinvolgenti che possano aiutare aziende e singoli a valorizzare al meglio i propri dati.

Argomenti
Intelligenza artificiale
Large Language Models

I migliori corsi DataCamp

{count, plural, one {Programma} other {Programmi}}

Sviluppare modelli linguistici di grandi dimensioni

{hours} ore
Impara a sviluppare modelli linguistici di grandi dimensioni (LLM) con PyTorch e Hugging Face, utilizzando le più recenti tecniche di deep learning e NLP.
Vedi i dettagliRight Arrow
Inizia Il Corso
Mostra altroRight Arrow
Correlato

{count, plural, one {blog} other {blogs}}

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

{count, plural, one {blog} other {blogs}}

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

{count, plural, one {blog} other {blogs}}

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