Testons Gemini, l’IA de Google dans une application Android !

(Si vous préférez le format vidéo, nous avons présenté ce même sujet lors d'Android Makers. Vous pouvez visionner notre talk ici 🔗)

Tous les regards sont tournés vers l'IA, et le mobile n’y échappe pas ! Google se distingue une fois de plus avec son dernier modèle d'IA, Gemini ✨.

Mais Gemini qu’est-ce que c’est exactement ?

Et bien si vous connaissiez Bard vous pouvez lui dire adieu, car il devient Gemini (pour Generalized Multimodal Intelligence Network), une intelligence artificielle générative et multimodale de type transformer. Ce nouveau modèle de LLM a été annoncé lors de la conférence I/O en juin 2023 et présenté au public le 7 décembre 2023.

Notre intérêt s'est naturellement porté sur cette nouvelle IA, comme nous sommes impatients d'explorer et de comprendre son potentiel, nous sommes particulièrement curieux de voir quels impacts peut avoir l’intégration d’une IA telle que Gemini dans le futur de nos applications.

Nous avons donc voulu mettre à l'épreuve l'idée d’embarquer Gemini, grâce au Google AI client SDK, directement dans une application Android pour découvrir tout ce qu’il est possible de faire en utilisant ce modèle. Vous pourrez, à travers cet article, voir en action les fonctionnalités disponibles dans le modèle Gemini 1.0 PRO ainsi que leurs méthodes associées.

⚠️
Petit disclaimer
L’API de Gemini n’est pas encore disponible en Europe, nous avons donc dû filouter pour vous proposer en avant-première un test de son intégration.

Informations générales sur Gemini 1.0

Langues :

Ce modèle prend en charge 38 langues.

SDK disponible :

Python, Android (Kotlin), Node.js, Swift et JavaScript sont supportés.

Données d’entraînements :

Les données fournies pour l'entraînement de Gemini s'arrêtent au début de l'année 2023. Les connaissances sur les événements postérieurs à cette date sont limitées.

Données personnalisées :

Le SDK client de Gemini ne permet pas l'entraînement du modèle avec des données personnalisées. Cependant, pour ajuster Gemini avec les données de votre propre entreprise, envisagez d'utiliser Vertex AI qui permet de personnaliser Gemini avec un contrôle total des données.

Android Min SDK :

Votre application Android doit viser l'API 21 ou supérieure.

Autre input :

Pour le moment, Gemini 1.0 PRO ne gère que le format texte et les images. Les modalités des inputs seront élargies pour Gemini 1.5 PRO afin d'inclure l'audio et la vidéo.

Pricing :

Parce que oui, il faut bien finir par parler du sujet qui fâche, donc voilà un récapitulatif des limitations imposées sur les requêtes en fonction du mode de paiement.

Création et intégration de Gemini dans un projet Android

On vous a convaincu et vous voulez, vous aussi intégrer Gemini dans vos applications, ça tombe bien, on vous explique tout ici :

  1. La première étape si vous voulez tester Gemini sera de vous fournir un VPN. Vous pouvez choisir celui de votre choix tant que vous pouvez vous localiser dans un pays autre qu’en Europe. Nous sommes partis sur ProtonVPN pour son option gratuite (bien sûr, il existe d’autres fournisseurs).

  2. La deuxième étape consiste à télécharger la version Preview d’Android Studio : https://developer.android.com/studio/preview

  3. Lancer ce nouvel Android Studio et créer un nouveau projet, puis sélectionner Gemini API Starter.

image3.png

  1. Rendez-vous sur : https://ai.google.dev/ pour récupérer une clé d’API nécessaire pour avoir accès à l’API de Gemini dans votre application en cliquant sur “Get Gemini API key in Google AI Studio”.

image1.png

  1. Puis cliquer sur “Get API key”.

image6.png

  1. Enfin, cliquer sur “Create API key”.

image9.png

  1. Plus qu’à copier cette clé générée.

image4.png

  1. Et à l’insérer dans Android Studio et à cliquer sur "Finish".

image8.png

⚠️
Attention, il y a certains prérequis : 
- Avoir la dernière version d’Android Studio.
- L’application doit viser l’API 21 ou plus (+).

Fonctionnalités du modèle Gemini à connaître

On a beaucoup abordé Gemini comme étant un modèle d’IA, mais c’est en réalité une famille de modèles d’IA générative. Dans Gemini 1.0 PRO on y retrouve donc 2 modèles, Gemini PRO et Gemini PRO Vision, qui comme on peut s’en douter ont des différences assez significatives, et notamment dans le type de contenu qu’ils peuvent prendre en entrée (input). En effet, Gemini PRO Vision peut générer du contenu textuel à partir d’une image donnée et du texte, contrairement à Gemini PRO qui ne gère que les prompts textuels.

Récemment, Google a sorti Gemini 1.5 Pro et Gemini 1.5 Flash. Il faut savoir que Gemini 1.5 Flash peut prendre du texte et des multimodales en entrée (input) pour générer du contenu textuel. Mais n'ayez pas peur, les méthodes restent les mêmes.

⚠️
La version Gemini 1.0 Pro Vision sera deprecated à partir du 12 Juin 2024, il faudra passer sur la version Gemini 1.5 Flash.
⚠️
Attention, cependant aux exigences et aux limitations sur l’utilisation des images.

Pour bien comprendre, ce qu’offre le SDK de Google, nous allons passer en revue les différentes méthodes mis à notre disposition:

generateContent(inputContent)

Prend en paramètre un input et retourne le contenu généré par Gemini.

Gemini PRO : Ne gère que le texte en input.

0:00
/0:18

Gemini PRO Vision : Gère le texte et l’image en input.

0:00
/0:13

generateContentStream( )

Elle a le même comportement que generateContent(), sauf que l’on va recevoir une diffusion continue de réponses partielles.

0:00
/0:26

startChat( )

Permet d’initialiser une conversation à plusieurs tours (un chat autrement dit).

sendMessage( )

Permet d'envoyer et d’ajouter à la conversation (au chat) un message entré par l’utilisateur.

0:00
/1:10

sendMessageStream( )

Elle a le même comportement que sendMessage(), sauf que l’on va utiliser une diffusion continue pour un chat.

countTokens( )

Permet de compter le nombre de tokens d’un prompt, ce qui permet de générer des réponses plus précises et concises, mais également de gérer le budget de tokens.

0:00
/0:12

On peut aussi contrôler la génération de contenu et les niveaux de sécurité des réponses en changeant les paramètres de configuration du modèle. Pour en savoir plus, on vous redirige sur la documentation des Model parameters et des Safety settings.

Vous pouvez retrouver plus d’informations sur les fonctionnalités du modèle Gemini directement dans la documentation.

Le projet de démonstration présent dans cette partie est disponible ici 🔗.

Notre retour d’expérience

Dans le cadre de notre découverte et de la rédaction de cet article, nous avons réalisé un projet visant à tester les modèles Gemini en développant une application chatbot complète. Si cela vous intéresse, vous pouvez retrouver ce projet sur ce GitHub.

👍 Ce qu’on a aimé :

  • Super facile à comprendre, à configurer et à intégrer, il y a peu d’étapes et de démarches pour créer un nouveau projet avec Gemini ou pour l’ajouter dans un projet déjà existant.
  • Pas besoin d’être un.e expert.e en IA pour manipuler le SDK et ses modèles.
  • Permet de gagner du temps si on a comme projet d’intégrer une IA générative dans nos applications, comme avec un chatbot par exemple.

👎 Ce qu’on n'a pas trop aimé :

  • Lorsque l’on utilise le modèle Gemini Pro Vision, on est obligé d’avoir au moins une image dans notre prompt, sinon on va recevoir une erreur. Il faut donc faire attention au modèle que l’on utilise en fonction de l’input.
  • Le SDK Gemini n’est pas encore disponible en Europe, ce qui fait que l’on a dû passer par un VPN pour y avoir accès et pouvoir faire ces tests, ce qui le rend difficilement accessible pour le moment.
  • C’est un modèle et une technologie en constante évolution, il faut donc rester à jour si l’on veut se servir de Gemini dans nos applications afin de pouvoir s’adapter aux changements.

Conclusion

Voilà, maintenant Gemini n'a plus de secret pour vous ! Vous pouvez, vous aussi, embarquer une IA générative directement dans votre application sans avoir une équipe d'experts data à vos côtés, si ça, c'est pas génial 🤖.

Petit rappel au passage, lorsqu'on fait appel à une IA générative, il est important d'accorder une attention particulière au Prompt design, c'est-à-dire le processus de créer un prompt qui explicite la réponse attendue. En effet, rédiger des Prompts bien structurés est un élément essentiel si on veut s’assurer de la qualité des réponses du modèle et si l'on souhaite obtenir des résultats qui soient aux plus proches de nos attentes. Si vous êtes en manque d’inspiration, pas d’inquiétude, retrouvez des idées de prompt directement dans la documentation de Gemini: https://ai.google.dev/gemini-api/prompts.