Gemini 2.0 (sperimentale)

Gemini 2.0 Flash è ora disponibile come release di anteprima sperimentale tramite l'API Gemini per sviluppatori e Google AI Studio. Il modello introduce nuove funzionalità e funzionalità di base avanzate:

  • API Multimodal Live:questa nuova API ti consente di creare applicazioni di streaming audio e video in tempo reale con l'utilizzo di strumenti.
  • Velocità e prestazioni: Gemini 2.0 ha un tempo di risposta al primo token (TTFT) notevolmente migliorato rispetto a 1.5 Flash.
  • Qualità: prestazioni migliori rispetto a Gemini 1.5 Pro nella maggior parte dei benchmark.
  • Funzionalità di agenti migliorate: Gemini 2.0 offre miglioramenti alla comprensione multimodale, alla programmazione, al rispetto di istruzioni complesse e alla chiamata di funzioni.
  • Nuove modalità: Gemini 2.0 introduce la generazione di immagini native e funzionalità di sintesi vocale controllabili.

Per offrire un'esperienza migliore agli sviluppatori, stiamo anche rilasciando un nuovo SDK. Per i dettagli tecnici di Gemini 2.0, consulta Modelli Gemini.

SDK Google Gen AI (sperimentale)

Il nuovo SDK di IA generativa di Google fornisce un'interfaccia unificata a Gemini 2.0 tramite sia l'API Gemini per sviluppatori sia l'API Gemini su Vertex AI. A parte alcune eccezioni, il codice che viene eseguito su una piattaforma verrà eseguito su entrambe. Ciò significa che puoi creare un prototipo di un'applicazione utilizzando l'API per sviluppatori e poi eseguirne la migrazione a Vertex AI senza riscriverne il codice.

L'SDK Gen AI supporta anche i modelli Gemini 1.5.

Il nuovo SDK è disponibile in Python e Go, mentre Java e JavaScript saranno disponibili a breve.

Puoi iniziare a utilizzare l'SDK come mostrato di seguito.

  1. Installa il nuovo SDK: pip install google-genai
  2. Poi importa la libreria, inizializza un client e genera contenuti:
from google import genai

client = genai.Client(
    api_key="YOUR_API_KEY"
)
response = client.models.generate_content(
    model='gemini-2.0-flash-exp', contents='How does AI work?'
)
print(response.text)

(Facoltativo) Imposta le variabili di ambiente

In alternativa, puoi inizializzare il client utilizzando le variabili di ambiente. Innanzitutto, imposta i valori appropriati ed esporta le variabili:

# Replace `YOUR_API_KEY` with your API key.
export GOOGLE_API_KEY=YOUR_API_KEY

Dopodiché puoi inizializzare il client senza argomenti:

client = genai.Client()

Gli sviluppatori Python possono anche provare il notebook Introduzione nel Cookbook.

API Multimodal Live

L'API Multimodal Live consente interazioni vocali e video bidirezionali con latenza ridotta con Gemini. Con l'API Multimodal Live, puoi offrire agli utenti finali l'esperienza di conversazioni vocali naturali e simili a quelle umane, nonché la possibilità di interrompere le risposte del modello utilizzando i comandi vocali. Il modello può elaborare input di testo, audio e video e fornire output di testo e audio.

L'API Multimodal Live è disponibile nell'API Gemini come metodo BidiGenerateContent ed è basata su WebSockets.

from google import genai

client = genai.Client(http_options={'api_version': 'v1alpha'})
model_id = "gemini-2.0-flash-exp"
config = {"response_modalities": ["TEXT"]}

async with client.aio.live.connect(model=model_id, config=config) as session:
    message = "Hello? Gemini, are you there?"
    print("> ", message, "\n")
    await session.send(message, end_of_turn=True)

    async for response in session.receive():
        print(response.text)

Funzionalità principali:

  • Multimodalità:il modello può vedere, sentire e parlare.
  • Interazione in tempo reale a bassa latenza:fornisce risposte rapide.
  • Memoria di sessione:il modello conserva la memoria di tutte le interazioni all'interno di una singola sessione, richiamando le informazioni ascoltate o viste in precedenza.
  • Supporto per chiamate di funzioni, esecuzione di codice e Ricerca come strumento: consente l'integrazione con servizi e origini dati esterni.
  • Rilevamento automatico dell'attività vocale (VAD): il modello è in grado di riconoscere con precisione quando l'utente inizia e interrompe a parlare. Ciò consente interazioni conversazionali naturali e consente agli utenti di interrompere il modello in qualsiasi momento.

Language:

  • Solo in inglese

Limitazioni:

  • Sia gli input audio che le uscite audio influiscono negativamente sulla capacità del modello di utilizzare le chiamate di funzione.

Per scoprire di più sulle funzionalità e sulle limitazioni dell'API, consulta la guida di riferimento dell'API Multimodal Live.

Puoi provare l'API Multimodal Live in Google AI Studio. Per iniziare a sviluppare, puoi provare la console web (scritta in React). Gli sviluppatori Python possono provare il codice di avvio (notebook e file.py). Potresti trovare più semplice iniziare con il notebook, ma l'API live funziona meglio se eseguita dal terminale.

La ricerca come strumento

Utilizzando la funzionalità di grounding con la Ricerca Google, puoi migliorare l'accuratezza e l'aggiornamento delle risposte del modello. A partire da Gemini 2.0, la Ricerca Google è disponibile come strumento. Ciò significa che il modello può decidere quando utilizzare la Ricerca Google. L'esempio seguente mostra come configurare la Ricerca come strumento.

from google import genai
from google.genai.types import Tool, GenerateContentConfig, GoogleSearch

client = genai.Client()
model_id = "gemini-2.0-flash-exp"

google_search_tool = Tool(
    google_search = GoogleSearch()
)

response = client.models.generate_content(
    model=model_id,
    contents="When is the next total solar eclipse in the United States?",
    config=GenerateContentConfig(
        tools=[google_search_tool],
        response_modalities=["TEXT"],
    )
)

for each in response.candidates[0].content.parts:
    print(each.text)
# Example response:
# The next total solar eclipse visible in the contiguous United States will be on ...

# To get grounding metadata as web content.
print(response.candidates[0].grounding_metadata.search_entry_point.rendered_content)

La funzionalità Ricerca come strumento consente anche ricerche con più turni e query con più strumenti (ad esempio, la combinazione di grounding con la Ricerca Google e l'esecuzione di codice).

La ricerca come strumento consente prompt e flussi di lavoro complessi che richiedono pianificazione, ragionamento e pensiero:

  • Basamento per migliorare la veridicità e l'attualità e fornire risposte più accurate
  • Recupero di elementi dal web per eseguire ulteriori analisi
  • Trovare immagini, video o altri contenuti multimediali pertinenti per supportare le attività di ragionamento o generazione multimodale
  • Codifica, risoluzione di problemi tecnici e altre attività specializzate
  • Trovare informazioni specifiche per regione o aiutare a tradurre i contenuti con precisione
  • Trovare siti web pertinenti per ulteriori ricerche

Per iniziare, puoi provare il notebook dello strumento di ricerca.

Strumenti migliorati

Gemini 2.0 introduce miglioramenti alle chiamate di funzioni e agli strumenti che forniscono un supporto migliore per le esperienze con agenti.

Chiamate di funzioni compositive

Gemini 2.0 supporta una nuova funzionalità di chiamata di funzioni: chiamate di funzioni compositive. La chiamata di funzioni compositive consente all'API Gemini di invocare automaticamente più funzioni definite dall'utente durante il processo di generazione di una risposta. Ad esempio, per rispondere al prompt"Get the temperature in my current location", l'API Gemini potrebbe invocare sia una funzione get_current_location() sia una funzione get_weather() che prende la posizione come parametro.

La chiamata di funzioni compositive con esecuzione di codice richiede streaming bidirezionale ed è supportata solo dalla nuova API Multimodal Live. Di seguito è riportato un esempio che mostra come utilizzare insieme le chiamate di funzioni compositive, l'esecuzione del codice e l'API Multimodal Live:

turn_on_the_lights_schema = {'name': 'turn_on_the_lights'}
turn_off_the_lights_schema = {'name': 'turn_off_the_lights'}

prompt = """
  Hey, can you write run some python code to turn on the lights, wait 10s and then turn off the lights?
  """

tools = [
    {'code_execution': {}},
    {'function_declarations': [turn_on_the_lights_schema, turn_off_the_lights_schema]}
]

await run(prompt, tools=tools, modality="AUDIO")

Gli sviluppatori Python possono provare questa funzionalità nel notebook sull'utilizzo dello strumento API Live.

Utilizzo di più strumenti

Con Gemini 2.0 puoi attivare più strumenti contemporaneamente e sarà il modello a decidere quando richiamarli. Ecco un esempio che attiva due strumenti, l'aggiornamento con la Ricerca Google e l'esecuzione di codice, in una richiesta che utilizza l' API Live multimodale.

prompt = """
  Hey, I need you to do three things for me.

  1. Turn on the lights.
  2. Then compute the largest prime palindrome under 100000.
  3. Then use Google Search to look up information about the largest earthquake in California the week of Dec 5 2024.

  Thanks!
  """

tools = [
    {'google_search': {}},
    {'code_execution': {}},
    {'function_declarations': [turn_on_the_lights_schema, turn_off_the_lights_schema]}
]

await run(prompt, tools=tools, modality="AUDIO")

Gli sviluppatori Python possono provare questa funzionalità nel notebook sull'utilizzo dello strumento API Live.

Rilevamento del riquadro delimitatore

In questo lancio sperimentale, offriamo agli sviluppatori un potente strumento per il rilevamento e la localizzazione di oggetti all'interno di immagini e video. Identificando e delineando con precisione gli oggetti con le caselle delimitanti, gli sviluppatori possono accedere a una vasta gamma di applicazioni e migliorare l'intelligenza dei loro progetti.

Vantaggi principali:

  • Semplice: integra facilmente le funzionalità di rilevamento degli oggetti nelle tue applicazioni, indipendentemente dalle tue competenze in materia di visione artificiale.
  • Personalizzabile:genera riquadri di selezione in base a istruzioni personalizzate (ad es. "Voglio vedere i riquadri di selezione di tutti gli oggetti verdi in questa immagine"), senza dover addestrare un modello personalizzato.

Dettagli tecnici:

  • Input: il prompt e le immagini o gli frame video associati.
  • Output: riquadri di delimitazione nel formato [y_min, x_min, y_max, x_max]. L'angolo superior sinistro è l'origine. Gli assi x e y vanno rispettivamente in orizzontale e in verticale. I valori delle coordinate sono normalizzati in modo da avere come intervallo 0-1000 per ogni immagine.
  • Visualizzazione: gli utenti di AI Studio vedranno le caselle delimitanti tracciate all'interno dell'UI. Gli utenti di Vertex AI devono visualizzare i propri bounding box tramite codice di visualizzazione personalizzato.

Gli sviluppatori Python possono provare il notebook di comprensione spaziale 2D o il notebook sperimentale di puntamento 3D.

Sintesi vocale (accesso in anteprima/lista consentita)

Gemini 2.0 supporta una nuova funzionalità di generazione multimodale: la sintesi vocale. Utilizzando la funzionalità di sintesi vocale, puoi chiedere al modello di generare un output audio di alta qualità che suoni come una voce umana (say "hi everyone") e puoi perfezionare ulteriormente l'output modificando la voce.

Generazione di immagini (accesso in anteprima/lista consentita)

Gemini 2.0 supporta la possibilità di generare testo con immagini in linea. In questo modo, puoi utilizzare Gemini per modificare le immagini in modo conversazionale o generare output multimodali (ad esempio, un post del blog con testo e immagini in un unico turno). In precedenza, questo avrebbe richiesto l'unione di più modelli.

La generazione di immagini è disponibile come versione sperimentale privata. Supporta le seguenti modalità e funzionalità:

  • Da testo a immagine
    • Prompt di esempio: "Genera un'immagine della Torre Eiffel con fuochi d'artificio sullo sfondo".
  • Testo in immagini e testo (interlacciati)
    • Prompt di esempio: "Genera una ricetta illustrata per una paella".
  • Immagini e testo in immagini e testo (interlacciati)
    • Prompt di esempio: (con un'immagine di una stanza arredata) "Quali altri divani di colore andrebbero bene nel mio spazio? Puoi aggiornare l'immagine?"
  • Modifica delle immagini (da testo a immagine e da immagine a immagine)
    • Prompt di esempio: "Modifica questa immagine in modo che assomigli a un cartone animato"
    • Esempio di prompt: [immagine di un gatto] + [immagine di un cuscino] + "Crea un punto croce del mio gatto su questo cuscino".
  • Modifica di immagini in più turni (chat)
    • Prompt di esempio: [carica un'immagine di un'auto blu.] "Trasforma questa auto in un'auto cabrio." "Ora cambia il colore in giallo."
  • Filigrana (synthID)

Limitazioni:

  • La generazione di persone e la modifica delle immagini di persone caricate non sono consentite.
  • Per un rendimento ottimale, utilizza le seguenti lingue: EN, es-MX, ja-JP, zh-CN, hi-IN.
  • La generazione di immagini non supporta input audio o video.
  • La generazione di immagini potrebbe non essere sempre attivata:
    • Il modello potrebbe restituire solo testo. Prova a chiedere esplicitamente le uscite di immagini (ad es. "genera un'immagine", "fornisci le immagini man mano", "aggiorna l'immagine").
    • Il modello potrebbe interrompere la generazione a metà. Riprova o prova con un altro prompt.