Cours
Google Bard a fait face à une concurrence croissante de ChatGPT, mais avec la sortie de ses derniers modèles d’IA Gemini, Google espère reprendre l’avantage sur le marché. Pour améliorer l’expérience utilisateur, Google a récemment repensé l’assistant Bard avec les modèles Gemini Pro, le rendant plus accessible aux utilisateurs qui souhaitent fournir à la fois du texte et des images pour obtenir des réponses naturelles et précises.
Dans ce tutoriel, nous allons explorer l’API Google Gemini, qui vous permet de créer des applications avancées basées sur l’IA. En tirant parti de ses puissantes capacités, vous pouvez facilement combiner des entrées texte et image pour générer des sorties précises et pertinentes dans leur contexte. L’API Python de Gemini simplifie l’intégration à vos projets existants, pour une mise en œuvre fluide de fonctionnalités d’intelligence artificielle de pointe.
Qu’est-ce que Gemini AI ?
Gemini AI est un modèle d’intelligence artificielle (IA) de dernière génération, créé grâce à une collaboration entre plusieurs équipes de Google, notamment Google Research et Google DeepMind. Conçu pour être multimodal, Gemini AI comprend et traite de nombreux types de données, dont le texte, le code, l’audio, les images et les vidéos.
L’ambition de Google DeepMind autour de l’intelligence artificielle a toujours été de mettre ses capacités au service du bien commun. Dans cet esprit, Gemini AI marque une avancée majeure vers une nouvelle génération de modèles IA inspirés par la façon dont les humains perçoivent et interagissent avec le monde.
Plus sophistiqué et plus volumineux que tous les modèles IA précédemment développés par Google, Gemini AI a été pensé pour être très flexible et gérer des informations variées. Sa polyvalence lui permet de fonctionner efficacement sur une large gamme de systèmes, des serveurs de centres de données aux appareils mobiles.
Voici trois versions des modèles Gemini, entraînées pour des cas d’usage spécifiques :
- Gemini Ultra : la version la plus avancée, capable de gérer des tâches complexes.
- Gemini Pro : un choix équilibré offrant de bonnes performances et une mise à l’échelle aisée.
- Gemini Nano : optimisé pour les appareils mobiles, avec une efficacité maximale.

Crédit image
Parmi ces variantes, Gemini Ultra s’est distingué par des performances exceptionnelles, surpassant GPT-4 sur de multiples critères. C’est le premier modèle à faire mieux que des experts humains sur le benchmark Massive Multitask Language Understanding, qui évalue les connaissances générales et les capacités de résolution de problèmes sur 57 disciplines. Cette réussite illustre la compréhension et la capacité de raisonnement supérieures de Gemini Ultra.
Si vous débutez en intelligence artificielle, découvrez le parcours de compétences AI Fundamentals. Il couvre les sujets phares de l’IA, comme ChatGPT, les grands modèles de langage et l’IA générative.
Mise en place de l’environnement
Avant d’utiliser l’API, nous devons récupérer la clé API depuis Google AI for Developers.
1. Cliquez sur le bouton « Get an API key ».

2. Créez ensuite le projet et générez la clé API.

3. Copiez la clé API et ajoutez une variable d’environnement nommée "Gemini_API_KEY" sur votre système. Pour créer une variable d’environnement sécurisée sur Kaggle, ouvrez « Add-ons » puis sélectionnez « Secrets ». Cliquez ensuite sur « Add a new secret », renseignez un libellé et sa valeur correspondante, puis enregistrez.

4. Installez le paquet Python de l’API Gemini avec pip.
%pip install google-generativeai
5. Configurez l’API Gemini en ajoutant la clé API. Pour accéder au secret, créez l’objet UserSecretsClient puis fournissez-lui le libellé.
import google.generativeai as genai
from kaggle_secrets import UserSecretsClient
user_secrets = UserSecretsClient()
gemini_key = user_secrets.get_secret("GEMINI_API_KEY")
genai.configure(api_key = gemini_key)
Générer une réponse
Dans cette section, nous allons apprendre à générer des réponses avec le modèle Gemini Pro. Si vous rencontrez des difficultés pour exécuter le code, suivez le notebook Kaggle de l’API Gemini.
Commençons par vérifier les modèles accessibles avec l’API gratuite. Pour cela, exécutez le code ci-dessous : il affiche les modèles compatibles avec la génération via la fonction list_models.
for m in genai.list_models():
if 'generateContent' in m.supported_generation_methods:
print(m.name)
Il semble que nous ayons accès uniquement à deux modèles, "gemini-pro" et "gemini-pro-vision".
models/gemini-pro
models/gemini-pro-vision
Accédons au modèle "Gemini Pro" et générons une réponse à partir d’un simple prompt.
model = genai.GenerativeModel('gemini-pro')
response = model.generate_content("Please provide a list of the most influential people in the world.")
print(response.text)
En quelques lignes de code, nous avons obtenu une réponse très pertinente.

Gemini AI peut produire plusieurs réponses, appelées « candidats », pour un même prompt, afin que vous puissiez choisir la plus adaptée. Cependant, la version gratuite de l’API ne fournit qu’un seul candidat.
response.candidates

Notre sortie est en Markdown. Corrigeons cela avec l’outil Markdown d’IPython. Demandons maintenant à Gemini de générer du code Python.
from IPython.display import Markdown
response = model.generate_content("Build a simple Python web application.")
Markdown(response.text)
Le modèle s’en sort très bien : il génère un guide pas à pas expliquant comment créer et exécuter une application web simple avec Flask.

Streaming
Le streaming est important pour améliorer la perception de vitesse de votre application. En activant l’argument « stream », la réponse est générée et affichée dès qu’elle est disponible. La sortie étant produite par morceaux, il faut itérer sur l’objet response.
from IPython.display import display
model = genai.GenerativeModel("gemini-pro")
response = model.generate_content(
"How can I make authentic Italian pasta?", stream=True
)
for chunk in response:
display(Markdown(chunk.text))
display(Markdown("_" * 80))
Chaque segment est séparé par une ligne de tirets. Comme on le voit ci-dessous, le contenu est bien généré par morceaux. Le streaming dans l’API Gemini est similaire à celui des API OpenAI et Anthropic.

Ajuster la réponse
Nous pouvons adapter la réponse générée à nos besoins.
Dans l’exemple suivant, nous générons un candidat avec un maximum de 1000 tokens et une température de 0,7. Nous définissons également une séquence d’arrêt : lorsque le mot "time" apparaît dans le texte généré, le processus s’arrête automatiquement.
response = model.generate_content(
'How to be productive during a burnout stage.',
generation_config=genai.types.GenerationConfig(
candidate_count=1,
stop_sequences=['time'],
max_output_tokens=1000,
temperature=0.7)
)
Markdown(response.text)

Essayer Gemini Pro Vision
Dans cette section, nous allons utiliser Gemini Pro Vision pour exploiter la multimodalité de Gemini AI.
Nous allons télécharger la photo de Mayumi Maciel depuis pexels.com à l’aide de l’outil curl.
!curl -o landscape.jpg "https://images.pexels.com/photos/18776367/pexels-photo-18776367/free-photo-of-colorful-houses-line-the-canal-in-burano-italy.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=2"

Pour charger et afficher l’image dans le notebook Kaggle, nous utiliserons le paquet Python Pillow.
import PIL.Image
img = PIL.Image.open('landscape.jpg')
display(img)

Pour analyser le contenu de cette image, nous devons d’abord charger le modèle "gemini-pro-vision" et lui fournir un objet image.
model = genai.GenerativeModel('gemini-pro-vision')
response = model.generate_content(img)
Markdown(response.text)
Le modèle a identifié avec précision le lieu et fourni une description.
A beautiful day in Burano, Italy. The colorful houses and the calm water make this a perfect place to relax and enjoy the scenery.
Fournissons maintenant à la fonction de génération à la fois le texte du prompt et l’objet image pour poser une question sur l’image.
response = model.generate_content(
["Can you provide the exact location with coordinates?", img]
)
Markdown(response.text)
45.4408° N, 12.3150° E
Les coordonnées ont été fournies avec exactitude, et nous les avons vérifiées en les ajoutant dans Google Maps.

Conversations
Vous pouvez tenir une conversation avec le modèle IA tout en conservant le contexte, en utilisant l’historique des échanges. Le modèle mémorise ainsi le fil de la discussion et fournit des réponses adaptées en fonction des interactions précédentes.
Il suffit de créer un objet de chat avec model.start_chat et de lui fournir un premier message.
model = genai.GenerativeModel('gemini-pro')
chat = model.start_chat(history=[])
chat.send_message("Who created the Mona Lisa?")
for message in chat.history:
display(Markdown(f'**{message.role}**: {message.parts[0].text}'))

Posons une autre question et affichons la réponse au format conversation.
chat.send_message("What else he created?")
for message in chat.history:
display(Markdown(f'**{message.role}**: {message.parts[0].text}'))
Le modèle a bien retenu le contexte et a fourni une réponse appropriée.

Embeddings
L’API donne accès à des modèles d’embedding, très utilisés pour des applications sensibles au contexte. Avec une simple fonction Python, vous pouvez convertir un prompt ou un contenu en embedding et représenter des mots, phrases ou documents entiers sous forme de vecteurs denses qui encodent le sens sémantique.
Nous allons appeler la fonction embed_content avec le nom du modèle, le contenu, le type de tâche et le titre.
result = genai.embed_content(
model="models/embedding-001",
content="Who created the Mona Lisa?",
task_type="retrieval_document",
title="Mona Lisa Research")
print(result['embedding'][:10])
[0.086675204, -0.027617611, -0.015689207, -0.00445945, 0.07286186, 0.00017529335, 0.07243656, -0.018299067, 0.018799499, 0.028495966]
Pour convertir plusieurs contenus en embeddings, fournissez une liste de chaînes de caractères à l’argument « content ».
result = genai.embed_content(
model="models/embedding-001",
content=[
"Who created the Mona Lisa?",
"What else he created?",
"When did he died?"
],
task_type="retrieval_document",
title="Mona Lisa Research 2")
for emb in result['embedding']:
print(emb[:10],"\n")
[0.07942627, -0.032543894, -0.010346633, -0.0039942865, 0.071596086, -0.0016670177, 0.07821064, -0.011955016, 0.019478166, 0.03784406]
[0.027897138, -0.030693276, -0.0012639443, 0.0018902065, 0.07171923, -0.011544562, 0.04235154, -0.024570161, 0.013215181, 0.03026724]
[0.04341321, 0.013262799, -0.0152797215, -0.009688456, 0.07342798, 0.0033503908, 0.05274988, -0.010907041, 0.05933596, 0.019402765]
Inscrivez-vous au cours Introduction to Embeddings with the OpenAI API pour découvrir les modèles d’embedding appliqués à des cas d’usage avancés comme la recherche sémantique et les moteurs de recommandation.
Cas d’usage avancés
Pour exploiter tout le potentiel de l’API Gemini, les développeurs peuvent approfondir des fonctionnalités avancées comme les paramètres de sécurité et l’API bas niveau.
- Paramètres de sécurité : permettent de configurer les contenus autorisés ou bloqués dans les prompts et réponses, afin de respecter les règles de la communauté.
- API bas niveau : offre une flexibilité accrue pour la personnalisation.
- Conversations multi-tours : peuvent être étendues via la classe
GenaiChatSessionpour enrichir l’expérience conversationnelle.
Grâce à ces fonctionnalités avancées, les développeurs conçoivent des applications plus efficaces et ouvrent de nouvelles possibilités d’interaction.
Conclusion
L’API Gemini ouvre des perspectives enthousiasmantes pour créer des applications IA avancées à partir d’entrées texte et visuelles. Ses modèles de pointe, comme Gemini Ultra, repoussent les limites de ce que les systèmes d’IA peuvent comprendre et générer.
Google a facilité l’intégration de l’IA dans les applications grâce à une API Python simple d’accès. L’API Gemini propose des fonctionnalités variées comme la génération de contenu, les embeddings et les conversations multi-tours, rendant l’IA plus accessible. Gemini AI constitue une avancée majeure dans la compréhension multimodale.
Pour aller plus loin, commencez à développer des applications pilotées par l’IA avec l’API OpenAI en vous inscrivant au cours court Working with the OpenAI API. Découvrez les mécanismes derrière des applications IA populaires, comme ChatGPT et DataLab, le notebook de données de DataCamp dopé à l’IA.
Si vous êtes un professionnel et n’avez pas besoin d’un cours pratique, consultez notre antisèche OpenAI API in Python.
En tant que data scientist certifié, je suis passionné par l'utilisation des technologies de pointe pour créer des applications innovantes d'apprentissage automatique. Avec une solide expérience en reconnaissance vocale, en analyse de données et en reporting, en MLOps, en IA conversationnelle et en NLP, j'ai affiné mes compétences dans le développement de systèmes intelligents qui peuvent avoir un impact réel. En plus de mon expertise technique, je suis également un communicateur compétent, doué pour distiller des concepts complexes dans un langage clair et concis. En conséquence, je suis devenu un blogueur recherché dans le domaine de la science des données, partageant mes idées et mes expériences avec une communauté grandissante de professionnels des données. Actuellement, je me concentre sur la création et l'édition de contenu, en travaillant avec de grands modèles linguistiques pour développer un contenu puissant et attrayant qui peut aider les entreprises et les particuliers à tirer le meilleur parti de leurs données.
