Développer avec l’IA : et si c’était aussi simple qu’ajouter une librairie ?

A presentation at Snowcamp in January 2025 in Grenoble, France by Thierry Chantier

Slide 1

Slide 1

Développer avec l’IA : et si c’était aussi simple qu’ajouter une librairie ? Thierry Chantier / Stéphane Philippart @titimoby - @wildagsx

Slide 2

Slide 2

Un Grand MERCI à nos sponsors 2025 ⭐ ❄ @titimoby - @wildagsx

Slide 3

Slide 3

MERCI !!! @titimoby - @wildagsx

Slide 4

Slide 4

🛜 ESPACE-CONGRES 🛜 👥 visiteur 🔐 ULfrguBM @titimoby - @wildagsx

Slide 5

Slide 5

📊 Faisons connaissance 📊 🔗 slido.com 🔑 #snowcamp-2025 @titimoby - @wildagsx

Slide 6

Slide 6

Thierry Chantier Developer Advocate @OVHcloud TitiMoby@mamot.fr TitiMoby 🔗 https://noti.st/titimoby @titimoby - @wildagsx

Slide 7

Slide 7

Stéphane Philippart 🏷 🥑 DeveloperAdvocate@OVHCloud 🦄 🏷 Co-créateur de TADx (meetup à Tours) 🧠 Padawan Intelligence Artificielle 🏕 🐦 @wildagsx 🔗 https://philippart-s.github.io/blog 🐙 https://github.com/philippart-s/ 💬 https://www.linkedin.com/in/philippartstephane/ @titimoby - @wildagsx

Slide 8

Slide 8

Que va-t-on voir aujourd’hui ? 󰞵 🤖 Développer un chatbot en Java / LangChain4J / Quarkus 📚 Développer une analyse de texte (sentiments, émotions, …) en JavaScript 🎙 Développer une application de text to speech et de speech to text en Python @titimoby - @wildagsx

Slide 9

Slide 9

🧐 IA / ML / LLM 🤖 @titimoby - @wildagsx

Slide 10

Slide 10

🧠 Les différentes catégories de l’IA 👉 Actuellement IA ~ Machine Learning 👉 Artificial Narrow Intelligence (ANI) / Weak AI 👉 Artificial General Intelligence (AGI) / Strong AI 👉 Artificial Super Intelligence (ASI) @titimoby - @wildagsx

Slide 11

Slide 11

Apprendre … 👉 IA : Techniques pour simuler les capacités “intelligentes” d’un être humain 👉 ML : Techniques pour qu’une machine apprenne sans algorithme supplémentaire par l’ingestion de données d’exemples 👉 DL : ML utilisant poussée des réseaux de neurones pour améliorer les performances dans les déductions @titimoby - @wildagsx

Slide 12

Slide 12

🔎 Le Machine Learning dans le détail 👉 Supervised learning : apprentissage proche de ce que l’on fait avec l’Homme 👉 Unsupervised learning : apprentissage par patterns et regroupements 👉 Reinforcement learning: apprentissage par renforcement avec système de “récompenses” @titimoby - @wildagsx

Slide 13

Slide 13

🗃 Sans donnée … pas d’intelligence ! 🧹 La plupart du temps les données sont brutes : il faudra les nettoyer, les pré-traiter, les transformer, … 📀 Il va falloir les transformer en Dataset (en gros une base de données pour IA) et les labelliser 🧪 Un dataset contient les données d’apprentissage, de validations et de tests 🧮 Enfin, ce sont des vecteurs et autres matrices qui seront manipulés par le modèle @titimoby - @wildagsx

Slide 14

Slide 14

🧠 Deep learning & Réseau de neurones 💪 L’étape d’après … Plus puissante, plus complexe 🧠 Analogie avec les neurones humain plutôt fausse ↔ Essentiellement due au mécanisme d’inter-connexions ⚖ w* sont les poids et permettent d’ajuster le comportement du réseau 🐛 b* sont les biais pour rendre le modèle “plus réaliste” et influer sur la fonction d’activation 🔀 F* sont les fonctions d’activation @titimoby - @wildagsx

Slide 15

Slide 15

Slide 16

Slide 16

AI Endpoints / Modèles 🧠 @titimoby - @wildagsx

Slide 17

Slide 17

AI Endpoints en quelques mots 🤝 LLM as a Service 💰 Beta ~ avril 2025 (gratuit) 🧩 Dispo des LLM via des API 🧠 Catégories des modèles ● ● ● ● ● ● Assistants : CodeLlama 13b, Llama 3 70b, Mixtral 8x22b, … Embedding : BGE base, Multilingual E5, … NLP: Bart, Bert, … Translation : T5 large, … Audio : Nvidia RIVA ASR Vision : Yolo V8, … 🔗 https://endpoints.ai.cloud.ovh.net @titimoby - @wildagsx

Slide 18

Slide 18

🚀 Démo ! 🚀 @titimoby - @wildagsx

Slide 19

Slide 19

Cloud Development Environment @titimoby - @wildagsx

Slide 20

Slide 20

Cloud Development Environment Le code du projet Un éditeur de code Un environnement d’exécution @titimoby - @wildagsx

Slide 21

Slide 21

A la demande Pour tester une idée Expérimenter différentes solutions Partager une session de travail entre collègues … sky is the limit (et le coût de votre offre de CDE 😇 ) @titimoby - @wildagsx

Slide 22

Slide 22

Reproductible - Environnement décrit précisément - Configuration versionnée avec le code - Cohérence entre l’environnement et le code lui même @titimoby - @wildagsx

Slide 23

Slide 23

Le CDE pour cet atelier : Coder

Hébergé chez OVHcloud pour les besoins de cet atelier Accessible par : https://workshop.labdevrel.ovh/ Deux fichiers 📝 de configuration : Dockerfile main.tf 3 modes d’accès : ○ code-server ○ VS Code Desktop ○ Terminal @titimoby - @wildagsx

Slide 24

Slide 24

Workshop time ! @titimoby - @wildagsx

Slide 25

Slide 25

Démarrage de Coder 🧰 🔗 : https://workshop.labdevrel.ovh/ 👥 : emailX@email.com 🔐: PasswordX @titimoby - @wildagsx

Slide 26

Slide 26

🔀 Fork du repository GitHub 🐙 Projet à forker : https://github.com/devrel-workshop/ai-as-lib-workshop https://ovh.to/DGo3c1a @titimoby - @wildagsx

Slide 27

Slide 27

🔐 Récupération du token 🖖 Facultatif https://ovh.to/8stq8bE 🚧 Permet d’augmenter les rates limits 🔓 1 requêtes / ip /seconde ou 12 par minutes pour les utilisateurs anonymes (ou pour les tokens expirés) 🔐 250 requêtes / seconde et 1000 requêtes / minute pour les utilisateurs authentifiés 🗓 Token valide x jours https://endpoints.ai.cloud.ovh.net/ ☁ Nécessite un projet Public Cloud @titimoby - @wildagsx

Slide 28

Slide 28

📊 Et si on vous laissait choisir ? 📊 @titimoby - @wildagsx

Slide 29

Slide 29

🤖 Chatbot ☕ @titimoby - @wildagsx

Slide 30

Slide 30

Java : 101 pour cet atelier the java logo, stable diffusion on AI Endpoints @titimoby - @wildagsx

Slide 31

Slide 31

☕ Java 👴 Langage objet … datant de 1996 🧰 Basé sur une machine virtuelle (JVM) et un development kit (JDK) 💰 Largement représenté en entreprise 📦 Depuis quelques années : une release tous les 6 mois (une LTS tous les 3 ans) @titimoby - @wildagsx

Slide 32

Slide 32

🦜 LangChain4J & Quarkus ☕ 🦜 LanChain4j 🔀 Dérivé du projet originel LangChain 🧠 Accès à des providers pré-définis : OpenAI, Mistral, Ollama, … 🧰 RAG / Templating de prompt / Streaming / … ⚡ Quarkus pour la facilité les développements Java ☁ Cloud native 🧩 Utilisation du l’extension quarkus-lanchain4j @titimoby - @wildagsx

Slide 33

Slide 33

💡 Les concepts utilisés aujourd’hui 📦 Maven pour la gestion des dépendances 🧩 Une classe avec un main ⚡ Quarkus ● ● Notion d’interface Notion de services HTTP @titimoby - @wildagsx

Slide 34

Slide 34

✅ Pré-requis ☕ Java 21 LTS 📦 Maven 3.9.x 🖥 Quarkus CLI @titimoby - @wildagsx

Slide 35

Slide 35

🧠 Modèles utilisés 💨 Mistral 7B Instruct @titimoby - @wildagsx

Slide 36

Slide 36

1, 2, 3 … Développez ! 󰞵 @titimoby - @wildagsx

Slide 37

Slide 37

📚 Analyse de texte 🕸 @titimoby - @wildagsx

Slide 38

Slide 38

JavaScript : 101 pour cet atelier the JavaScript logo, stable diffusion on AI Endpoints @titimoby - @wildagsx

Slide 39

Slide 39

🕸 JavaScript 😡 Non ce n’est pas basé sur Java 👴 Présent depuis très longtemps sur nos machines et nos navigateurs 🚀 S’émancipe du navigateur pour devenir “full stack” 💰 Largement représenté en entreprise ☺ Simple pour faire une approche script (ce qui sera le cas ici) @titimoby - @wildagsx

Slide 40

Slide 40

💡 Les concepts utilisés aujourd’hui 📦 NPM pour la gestion des dépendances 🧩 Un script par exercice @titimoby - @wildagsx

Slide 41

Slide 41

✅ Pré-requis ☕ NodeJS 20 LTS @titimoby - @wildagsx

Slide 42

Slide 42

🧠 Modèles utilisés ❤ SamLowe/roberta-base-go_emotions ⭐ nlptown/bert-base-multilingual-uncased-sentiment 🗃 dslim/bert-base-NER @titimoby - @wildagsx

Slide 43

Slide 43

1, 2, 3 … Développez ! 󰞵 @titimoby - @wildagsx

Slide 44

Slide 44

🎙 Audio 🐍 @titimoby - @wildagsx

Slide 45

Slide 45

Python : 101 pour cet atelier @titimoby - @wildagsx

Slide 46

Slide 46

Python : pourquoi ce choix ? ● 🛠 Langage simple d’approche mais qui reste complet ● 🔋 “All batteries included” ● 🔬 Choix des communautés data science et data analysis @titimoby - @wildagsx

Slide 47

Slide 47

Python : concepts pour aujourd’hui ● 📁 Les fichiers requirements.txt ● 📝 L’instruction import ● 🫙 Venv : isolation de votre Python @titimoby - @wildagsx

Slide 48

Slide 48

🧠 Modèles utilisés 💬 📝 NVIDIA Riva the NVIDIA logo, stable diffusion on AI Endpoints @titimoby - @wildagsx

Slide 49

Slide 49

1, 2, 3 … Développez ! 󰞵 @titimoby - @wildagsx

Slide 50

Slide 50

Merci !!!! Slides https://ovh.to/z84N7LF Feedbacks https://ovh.to/fRZWy5y Code source https://ovh.to/DGo3c1a @titimoby - @wildagsx

Slide 51

Slide 51

@titimoby - @wildagsx

Slide 52

Slide 52

Liens 🔗 Documentations OVHcloud univers IA 🔗 Enhance your applications with AI Endpoints 🔗 How to use AI Endpoints and LangChain4j 🔗 LLMs streaming with AI Endpoints and LangChain4j 🔗 AI Endpoints 🔗 Repository GitHub du workshop @titimoby - @wildagsx