Gemini 2.0 Flash est désormais disponible en version preview expérimentale via l'API Gemini Developer et Google AI Studio. Le modèle introduit de nouvelles fonctionnalités et des fonctionnalités de base améliorées:
- API Multimodal Live:cette nouvelle API vous aide à créer des applications de streaming audio et vidéo en temps réel avec l'utilisation d'outils.
- Vitesse et performances:Gemini 2.0 améliore considérablement le temps avant le premier jeton (TTFT) par rapport à 1.5 Flash.
- Qualité:meilleures performances sur la plupart des benchmarks que Gemini 1.5 Pro.
- Amélioration des fonctionnalités d'agentivité:Gemini 2.0 améliore la compréhension multimodale, le codage, le suivi d'instructions complexes et l'appel de fonction.
- Nouvelles modalités:Gemini 2.0 introduit la génération d'images natives et des fonctionnalités de synthèse vocale contrôlées.
Pour offrir une meilleure expérience aux développeurs, nous lançons également un nouveau SDK. Pour en savoir plus sur les détails techniques de Gemini 2.0, consultez la section Modèles Gemini.
SDK Google Gen AI (version expérimentale)
Le nouveau SDK Google Gen AI fournit une interface unifiée à Gemini 2.0 via l'API Gemini Developer et l'API Gemini sur Vertex AI. À quelques exceptions près, le code qui s'exécute sur une plate-forme s'exécute sur les deux. Cela signifie que vous pouvez créer un prototype d'application à l'aide de l'API pour les développeurs, puis migrer l'application vers Vertex AI sans réécrire votre code.
Le SDK Gen AI est également compatible avec les modèles Gemini 1.5.
Le nouveau SDK est disponible en Python et en Go, et sera bientôt disponible en Java et en JavaScript.
Vous pouvez commencer à utiliser le SDK comme indiqué ci-dessous.
- Installez le nouveau SDK:
pip install google-genai
- Importez ensuite la bibliothèque, initialisez un client et générez du contenu:
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)
(Facultatif) Définir des variables d'environnement
Vous pouvez également initialiser le client à l'aide de variables d'environnement. Commencez par définir les valeurs appropriées et exportez les variables:
# Replace `YOUR_API_KEY` with your API key.
export GOOGLE_API_KEY=YOUR_API_KEY
Vous pouvez ensuite initialiser le client sans arguments:
client = genai.Client()
Les développeurs Python peuvent également essayer le notebook de démarrage dans le Cookbook.
API Multimodal Live
L'API Multimodal Live permet des interactions vocales et vidéo bidirectionnelles à faible latence avec Gemini. L'API Multimodal Live vous permet de proposer aux utilisateurs finaux des conversations vocales naturelles, semblables à celles d'un être humain, et de leur permettre d'interrompre les réponses du modèle à l'aide de commandes vocales. Le modèle peut traiter des entrées textuelles, audio et vidéo, et peut fournir des sorties textuelles et audio.
L'API Multimodal Live est disponible dans l'API Gemini en tant que méthode BidiGenerateContent
et est basée sur 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)
Fonctionnalités clés :
- Multimodalité:le modèle peut voir, entendre et parler.
- Interaction en temps réel à faible latence:permet d'obtenir des réponses rapides.
- Mémoire de session:le modèle conserve la mémoire de toutes les interactions au cours d'une même session, en rappelant les informations entendues ou vues précédemment.
- Compatibilité avec l'appel de fonction, l'exécution de code et la recherche en tant qu'outil:permet l'intégration à des services et sources de données externes.
- Détection automatique de l'activité vocale (VAD) : le modèle peut reconnaître avec précision le moment où l'utilisateur commence et arrête de parler. Cela permet des interactions naturelles et conversationnelles, et permet aux utilisateurs d'interrompre le modèle à tout moment.
Language:
- Anglais uniquement
Limites :
- Les entrées et les sorties audio ont un impact négatif sur la capacité du modèle à utiliser l'appel de fonction.
Pour en savoir plus sur les fonctionnalités et les limites de l'API, consultez le guide de référence de l'API Multimodal Live.
Vous pouvez essayer l'API Multimodal Live dans Google AI Studio. Pour commencer à développer, vous pouvez essayer la console Web (écrite en React). Pour les développeurs Python, essayez le code de démarrage (notebook et fichier.py). Vous trouverez peut-être le notebook plus facile à utiliser pour commencer, mais l'API en direct fonctionne mieux lorsqu'elle est exécutée à partir de votre terminal.
La recherche comme outil
En utilisant l'ancrage avec la recherche Google, vous pouvez améliorer la précision et la récence des réponses du modèle. À partir de Gemini 2.0, la recherche Google est disponible en tant qu'outil. Cela signifie que le modèle peut décider quand utiliser la recherche Google. L'exemple suivant montre comment configurer la recherche en tant qu'outil.
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 fonctionnalité de recherche en tant qu'outil permet également d'effectuer des recherches multi-tours et des requêtes multi-outils (par exemple, en combinant la mise à la terre avec la recherche Google et l'exécution de code).
La recherche en tant qu'outil permet d'utiliser des requêtes et des workflows complexes qui nécessitent de la planification, du raisonnement et de la réflexion:
- Ancrage pour améliorer la facticité et la récence, et fournir des réponses plus précises
- Récupérer des artefacts sur le Web pour les analyser
- Trouver des images, des vidéos ou d'autres contenus multimédias pertinents pour faciliter les tâches de raisonnement ou de génération multimodales
- Codage, dépannage technique et autres tâches spécialisées
- Rechercher des informations spécifiques à une région ou aider à traduire des contenus de manière précise
- Trouver des sites Web pertinents pour poursuivre la navigation
Pour vous lancer, vous pouvez essayer le notebook de l'outil de recherche.
Outils améliorés
Gemini 2.0 apporte des améliorations aux appels de fonction et aux outils qui offrent une meilleure prise en charge des expériences d'agent.
Appel de fonction compositionnel
Gemini 2.0 prend en charge une nouvelle fonctionnalité d'appel de fonction : l'appel de fonction compositionnel. L'appel de fonction compositionnel permet à l'API Gemini d'appeler automatiquement plusieurs fonctions définies par l'utilisateur lors de la génération d'une réponse. Par exemple, pour répondre à l'invite "Get the temperature in my current location"
, l'API Gemini peut appeler à la fois une fonction get_current_location()
et une fonction get_weather()
qui utilise la localisation comme paramètre.
L'appel de fonction compositionnel avec exécution de code nécessite un streaming bidirectionnel et n'est compatible qu'avec la nouvelle API Multimodal Live. Voici un exemple montrant comment utiliser l'appel de fonction compositionnel, l'exécution de code et l'API Multimodal Live ensemble:
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")
Les développeurs Python peuvent essayer cela dans le notebook d'utilisation de l'outil d'API en direct.
Utilisation d'un outil multifonction
Avec Gemini 2.0, vous pouvez activer plusieurs outils en même temps, et le modèle décidera quand les appeler. Voici un exemple qui active deux outils, l'ancrage avec la recherche Google et l'exécution de code, dans une requête à l'aide de l'API Multimodal Live.
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")
Les développeurs Python peuvent essayer cela dans le notebook d'utilisation de l'outil d'API en direct.
Détection de cadre de délimitation
Avec ce lancement expérimental, nous mettons à la disposition des développeurs un outil puissant pour la détection et la localisation d'objets dans les images et les vidéos. En identifiant et en délimitant précisément les objets à l'aide de cadres de délimitation, les développeurs peuvent exploiter un large éventail d'applications et améliorer l'intelligence de leurs projets.
Principaux avantages :
- Simplicité:intégrez facilement des fonctionnalités de détection d'objets dans vos applications, quel que soit votre niveau d'expertise en vision par ordinateur.
- Personnalisable:produit des cadres de délimitation en fonction d'instructions personnalisées (par exemple, "Je souhaite voir les cadres de délimitation de tous les objets verts de cette image"), sans avoir à entraîner un modèle personnalisé.
Détails techniques:
- Entrée:votre requête et les images ou les images vidéo associées.
- Résultat:cadres de délimitation au format
[y_min, x_min, y_max, x_max]
. Le coin supérieur gauche correspond à l'origine. Les axesx
ety
vont horizontalement et verticalement, respectivement. Les valeurs des coordonnées sont normalisées sur la plage 0-1000 pour chaque image. - Visualisation:les utilisateurs d'AI Studio verront des rectangles de délimitation tracés dans l'interface utilisateur. Les utilisateurs de Vertex AI doivent visualiser leurs rectangles de délimitation à l'aide d'un code de visualisation personnalisé.
Pour les développeurs Python, essayez le notebook sur la compréhension spatiale en 2D ou le notebook expérimental sur le pointage en 3D.
Génération de synthèse vocale (accès anticipé/liste d'autorisation)
Gemini 2.0 prend en charge une nouvelle fonctionnalité de génération multimodale: la synthèse vocale.
Grâce à la fonctionnalité de synthèse vocale, vous pouvez demander au modèle de générer une sortie audio de haute qualité qui ressemble à une voix humaine (say "hi everyone"
). Vous pouvez également affiner davantage la sortie en orientant la voix.
Génération d'images (accès anticipé/liste d'autorisation)
Gemini 2.0 permet de générer du texte avec des images intégrées. Vous pouvez ainsi utiliser Gemini pour modifier des images de manière conversationnelle ou générer des sorties multimodales (par exemple, un article de blog avec du texte et des images en une seule phrase). Auparavant, cela aurait nécessité de relier plusieurs modèles.
La génération d'images est disponible en version expérimentale privée. Il est compatible avec les modalités et fonctionnalités suivantes:
- Texte vers image
- Exemple de requête : "Génère une image de la tour Eiffel avec des feux d'artifice en arrière-plan."
- Texte vers une ou plusieurs images et texte (entrelacé)
- Exemple de requête : "Générez une recette illustrée pour une paella."
- Image(s) et texte vers image(s) et texte (entrelacé)
- Exemple de requête : (avec une image d'une pièce meublée) "Quelle autre couleur de canapé irait bien dans mon espace ? Pouvez-vous mettre à jour l'image ?"
- Modification d'images (texte et image vers image)
- Exemple de requête : "Modifiez cette image pour qu'elle ressemble à un dessin animé"
- Exemple de requête : [image d'un chat] + [image d'un oreiller] + "Crée un point de croix de mon chat sur cet oreiller."
- Modification d'images multitours (chat)
- Exemples de requêtes : [importez une image d'une voiture bleue.] "Transformez cette voiture en cabriolet." "Maintenant, changez la couleur en jaune."
- Filigrane (synthID)
Limites :
- La génération de personnes et l'édition d'images importées de personnes ne sont pas autorisées.
- Pour des performances optimales, utilisez les langues suivantes: EN, es-MX, ja-JP, zh-CN et hi-IN.
- La génération d'images n'est pas compatible avec les entrées audio ni vidéo.
- La génération d'images ne se déclenche pas toujours :
- Le modèle ne peut générer que du texte. Essayez de demander explicitement des sorties d'image (par exemple, "générer une image", "fournir des images au fur et à mesure", "mettre à jour l'image").
- Le modèle peut s'arrêter de générer des données en cours de route. Réessayez ou utilisez une autre requête.