Accéder au contenu principal

Créer une application d’IA multimodale avec Gemini 2.0 Pro

Créez une app de chat qui comprend le texte, les images, l’audio et les documents, et qui peut aussi exécuter du code Python. Une vraie application multimodale, plus proche de l’AGI.
Actualisé 19 sept. 2026  · 11 min lire

Explorer avec l’IA

ChatGPTClaudePerplexity

Google revient sur le devant de la scène IA avec le lancement de Gemini 2.0 Pro, son modèle le plus avancé à ce jour. Il est pour l’instant en phase expérimentale, et n’est accessible qu’aux développeurs via l’API. 

Gemini 2.0 Pro excelle en programmation et gère des invites complexes grâce à des capacités de raisonnement avancées et une vaste base de connaissances. Le modèle propose une fenêtre de contexte gigantesque de 2 millions de tokens, ce qui lui permet de traiter et d’analyser des volumes d’information considérables. Il peut aussi utiliser des outils comme Google Search et exécuter du code, ce qui renforce sa polyvalence.

Dans ce tutoriel, nous verrons comment accéder aux différentes fonctionnalités de Gemini 2.0 Pro via le nouveau package GenAI Python de Google. Ensuite, nous construirons une application Gradio afin que chacun puisse découvrir ces fonctionnalités en quelques clics. Enfin, nous déploierons l’application sur Space pour la rendre accessible au public.

Vous pouvez consulter notre guide sur Gemini 2.0 Flash Thinking Experimental pour voir comment le modèle se compare à la série o d’OpenAI et à la série R de DeepSeek. Pour en savoir plus sur la création d’apps multimodales avec Gemini 2.0, je vous recommande ce tutoriel d’Adel Nehme :

Applications multimodales avec Gemini 2.0 | Créez un outil local pour créateurs YouTube

Configuration de Gemini 2.0 Pro

À ce jour, l’accès à Gemini 2.0 Pro se fait uniquement via Google AI Studio, avec une connexion à un compte Google. Pour commencer, suivez ces étapes :

1. Connectez-vous à Google AI Studio

Rendez-vous sur le site Google AI Studio et connectez-vous avec vos identifiants Google. Une fois connecté, vous serez redirigé vers le tableau de bord de Google AI Studio.

2. Générez une clé d’API

  • Sur le tableau de bord, cliquez sur le bouton « Get API Key » en haut à gauche.
  • Cliquez ensuite sur « Create API Key » pour générer votre première clé d’API.

Google Studio Generate API key

Source : Google AI Studio 

3. Définissez la variable d’environnement

Créez une variable d’environnement nommée GEMINI_API_KEY et assignez-lui la valeur de la clé d’API que vous venez de générer.

4. Installez les packages Python requis

Installez les packages Python nécessaires en exécutant la commande suivante dans votre terminal :

pip install google-genai 
pip install gradio

Tester les fonctionnalités de Gemini 2.0 Pro

Nous allons maintenant utiliser le client Python de Gemini pour accéder aux différentes fonctionnalités du modèle Gemini 2.0 Pro. Celles-ci incluent la compréhension de texte, le traitement d’images, l’analyse audio et la lecture de documents. 

Nous testerons également l’exécution de code, qui permet de générer du code et de l’exécuter directement dans un noyau Python dans le cloud.

1. Génération de texte

Nous allons charger la clé d’API depuis la variable d’environnement et initialiser le client. Ce client servira d’interface pour accéder aux différents modèles et fonctionnalités.

Ensuite, nous poserons une question au modèle et générerons une réponse en streaming. Concrètement, les tokens s’affichent progressivement dans le terminal dès qu’ils sont générés, pour un retour en temps réel.

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="")

Le modèle a fourni une réponse détaillée et précise. 

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. Compréhension d’images

Pour l’analyse d’images, nous chargerons l’image avec la bibliothèque Pillow en Python et l’ajouterons à l’argument contents. Le contents inclura des questions sur l’image ainsi que l’objet image.

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="")

Le modèle a correctement interprété l’image et restitué jusque dans les moindres détails. 

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. Compréhension audio

Gemini 2.0 Pro comprend l’audio directement, sans conversion préalable en texte. Il suffit de charger le fichier audio et de le fournir à l’argument content avec la question appropriée.

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="")

Là encore, la description de l’audio est très fidèle. 

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. Compréhension de documents

Plutôt que d’utiliser Langchain ou un framework RAG, nous pouvons fournir directement des documents à Gemini 2.0 Pro, qu’il va parser et indexer, ce qui permet ensuite de poser des questions à leur sujet. 

Nous avons chargé un fichier PDF et posé des questions basées sur son contenu. C’est aussi simple que cela.

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="")

Résultat : le modèle a parfaitement décrit le contenu du document.

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. Génération et exécution de code

Le plus remarquable avec l’API Gemini, c’est que vous pouvez générer du code et l’exécuter via la même API. Votre code est généré puis testé : en cas de bug, le modèle le corrige et relance l’exécution jusqu’à obtenir le bon résultat.

Nous avons posé une question de programmation à Gemini 2.0 Pro en lui demandant d’exécuter le code à la fin. Comme vous pouvez le voir dans l’argument config, nous avons inclus l’outil d’exécution de code pour l’exécuter dans le 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)

Le modèle a d’abord généré le code sans réussir à l’exécuter. Il a ensuite corrigé les problèmes, relancé l’exécution et affiché les résultats avec succès. 

Gemini 2.0 code generation

Créer une application Gemini 2.0 Pro

Nous allons maintenant développer une application web Gradio qui intègre toutes les fonctionnalités testées précédemment. Ainsi, chacun pourra l’essayer en téléversant des fichiers et en posant des questions sur des images, de l’audio, des documents, voire en exécutant du code. 

Le code de app.py est disponible dans le dépôt GitHub Gemini-2-Pro-Chat. Vous pouvez l’examiner pour comprendre l’implémentation de chaque fonctionnalité.

En résumé, l’app propose :

  • Gestion d’entrées multimodales : le chatbot traite du texte, des images, de l’audio et des documents.
  • Génération de réponses en flux : diffusion des réponses avec la méthode generate_content_stream de Google GenAI.
  • Exécution de code : les utilisateurs peuvent générer du code, demander au chatbot de l’exécuter et d’en renvoyer les résultats.
  • Traitement d’images et d’audio : les images sont redimensionnées et converties en base64 pour intégration HTML, les fichiers audio sont encodés et affichés avec un lecteur audio.
  • Téléversement de documents : les PDF sont traités et ajoutés à l’historique de conversation.

Gemini-2-Pro-Chat code

Après avoir copié le code du dépôt distant dans votre projet local, vous pouvez l’exécuter en local.

python app.py

Running locally

Tester l’application Gemini 2.0 Pro

Nous allons maintenant tester l’application web pour vérifier que tout fonctionne correctement. Passons en revue les fonctionnalités une à une via l’interface.

1. Saisissez votre question et appuyez sur [Entrée]. La réponse se génère en direct, et vous l’obtenez en quelques secondes.

Testing the Gemini 2.0 Pro multi-modal chatbot

2. Pour téléverser une image, cliquez sur « Upload Images » et sélectionnez votre fichier. Posez ensuite une question sur l’image : Gemini 2.0 Pro générera une réponse précise et très détaillée.

3. Téléversez de l’audio en cliquant sur « Upload Audio » puis en sélectionnant votre fichier. Posez une question sur l’audio : le modèle fournira des réponses très fiables. 

Uploading audio to Gemini 2.0

4. Vous pouvez également téléverser des documents. Chargez un fichier PDF via « Upload Documents » puis posez votre question sur le document.

Uploading documents to Gemini 2.0 pro

5. L’exécution de code fonctionne un peu différemment. Il n’y a pas d’historique pour éviter les conflits : vous devez demander la génération et l’exécution du code dans le même prompt. 

Par exemple, nous avons demandé de générer et d’exécuter un code Python d’exemple pour créer une image aléatoire au format PNG, puis cliqué sur « Run Code Execution ».

Gemini 2.0 Pro code execution

En quelques secondes, le code est généré, exécuté, et les images s’affichent dans la fenêtre de chat.

Gemini 2.0 Pro code output

La fonctionnalité d’exécution de code fournit aussi une conclusion en fin de processus.

Gemini 2.0 Pro code conclusion

Déployer l’app Gemini 2.0 Pro

Déployons l’application dans le cloud avec Hugging Face Spaces. Rendez-vous sur Hugging Face Spaces et cliquez sur « + New Space ». Indiquez le nom, la description et la licence, puis sélectionnez Gradio comme SDK.

Deploying Gemini 2.0 Pro app

Source : Hugging Face

Après création de l’espace, vous recevrez les instructions pour cloner le dépôt :

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

Dans le dépôt local, créez un fichier requirements.txt et ajoutez la dépendance Python suivante :

google-genai==1.0.0

Modifiez ensuite le fichier README.md pour y inclure le contenu suivant :

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

Ajoutez ensuite le fichier app.py au dépôt. Indexez les changements, validez le commit puis poussez les mises à jour vers le dépôt distant :

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

Après le push, vous verrez que votre Space construit l’image Docker et installe les dépendances.

Docker image and installing the dependencies

Source : Gemini 2 Pro Chat

Une fois le processus terminé, vous pouvez rencontrer un message d’erreur. Pas d’inquiétude : il s’agit de variables d’environnement manquantes que nous allons ajouter dans Spaces.

Error message

Source : Gemini 2 Pro Chat

Allez dans les paramètres de votre Space et faites défiler jusqu’à la section « Variables and Secrets ». Créez un nouveau secret via le bouton « New Secret ». Donnez-lui un nom et renseignez votre clé d’API Gemini.

Create a new secret in Hugging Face Spaces

Source : Gemini 2 Pro Chat

Après ajout du secret, l’espace redémarre automatiquement et votre app tourne sans accroc, comme en local.

Gemini 2.0 Pro app running

Source : Gemini 2 Pro Chat

Conclusion

Créer une application d’IA performante devient nettement plus simple avec la nouvelle API Gemini 2.0 Pro et ses fonctionnalités avancées. Plutôt que d’installer une multitude de packages Python pour traiter images, audio ou documents, vous pouvez envoyer ces entrées directement à l’endpoint de l’API. Le modèle génère des résultats en quelques secondes, pour une expérience fluide et efficace.

Actuellement, l’accès à Gemini 2.0 Pro est gratuit mais limité à 50 requêtes par jour. Notez cependant que l’API ne doit pas être utilisée à des fins commerciales, sous peine de suspension de compte.

Dans ce tutoriel, nous avons exploré le modèle de pointe Gemini 2.0 Pro et ses fonctionnalités. Nous les avons testées dans des Jupyter Notebooks et intégrées dans une application Gradio. Enfin, nous avons déployé l’app dans le cloud pour la rendre accessible au public.

Pour aller plus loin dans la création d’applications dopées à l’IA, découvrez notre parcours de compétences Developing AI Applications et découvrez les derniers outils des développeurs IA.


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

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.

Sujets
Intelligence artificielle
Grands modèles linguistiques

Meilleures formations DataCamp

Cursus

Développer des LLM

16 h
Développez des LLM avec PyTorch et Hugging Face, en appliquant les techniques récentes de deep learning et NLP.
Afficher les détailsRight Arrow
Commencer Le Cours
Voir plusRight Arrow