Slide 1

Slide 1 text

L'intégration de l'IA dans Symfony 3 octobre 2024

Slide 2

Slide 2 text

19h00 Introduction et présentation des intervenants Optimisez l'intégration de l'IA dans les projets Symfony de votre entreprise par Nicolas Grekas Questions/réponses Agenda Le retour d’expérience de Codéin et OPPBTP : Comment l'IA a transformé leur projet Symfony Questions/Réponses Apéritif & échanges 19h35 20h00 20h15 19h05 19h25

Slide 3

Slide 3 text

Organisme Professionnel de Prévention du Bâtiment et des Travaux Publics Usine Digitale Exploitation & SI DATA PÔLE DIGITAL 25 personnes Damien Piquet Responsable de la Digital Factory

Slide 4

Slide 4 text

Agence web Open-Source certifiée Symfony Notre ADN : l’expertise technique Conseil en SI Hosting Développement DATA 4 DOMAINES D’INTERVENTION Romain Bonnal Responsable du pôle DATA, Expert technique Symfony & associé Codéin Nicolas Fernandez Lead développeur Symfony,

Slide 5

Slide 5 text

Créateur de Symfony Nicolas Grekas Principal core team member de Symfony

Slide 6

Slide 6 text

What’s new in Symfony - 7.2-dev

Slide 7

Slide 7 text

Developer Xperience ● [HttpKernel] SYMFONY_DISABLE_RESOURCE_TRACKING ● [Framework] Enable `json_decode_detailed_errors` in debug mode ● [Framework] Support for configuring multiple serializer instances ● [Framework] lint:translations

Slide 8

Slide 8 text

No-Ops Hosting ● [HttpKernel] SYMFONY_TRUSTED_PROXIES, SYMFONY_TRUSTED_HEADERS, SYMFONY_TRUST_X_SENDFILE_TYPE_HEADER, SYMFONY_TRUSTED_HOSTS ● [Framework] Use build-dir instead of cache-dir when appropriate

Slide 9

Slide 9 text

Pending Community Reviews ● [Security] Implement double-submit CSRF protection ● [AccessToken] Managing remote services access tokens ● [FeatureFlag] Dealing with feature flags ● [ObjectMapper] Object to Object mapper component ● [JsonEncoder] Optimized generation of JSON

Slide 10

Slide 10 text

Miscellaneous ● [Notifier] Sweego, Mailomat, Maitrap, Sipgate, JoliNotif, Primotexto ● [HttpClient] Fix parsing Server-Sent Events ● [Translation] Better affinity with IAgen-provided translations

Slide 11

Slide 11 text

Intervention Nicolas Grekas

Slide 12

Slide 12 text

Générateur de formules magiques > ffmpeg -i $speaker.in.mkv -i $speaker.mp3 -c:v copy -map 0:v:0 - map 1:a:0 -c:a libopus $speaker.out.mkv > ffmpeg -i $speaker.in.mkv -vf "subtitles=$speaker.srt:force_style='BackColour=&H80000000,BorderSty le=4,OutlineColour=&H80000000,Outline=1,Shadow=0,Fontsize=16'" $speaker.out.mkv

Slide 13

Slide 13 text

Productivité des développeurs https://t.co/k8eCbNQzFL - Uplevel

Slide 14

Slide 14 text

Satisfaction des développeurs https://t.co/k8eCbNQzFL - GitHub

Slide 15

Slide 15 text

Augmentation du taux de màj du code https://t.co/k8eCbNQzFL - GitClear

Slide 16

Slide 16 text

IA générative et Centralisation ● Entraînement des Modèles ● Hébergement ● Interopérabilité

Slide 17

Slide 17 text

IA générative et Captation de Valeur ● Prompts ● Format de sortie ● Fine-Tuning

Slide 18

Slide 18 text

IA générative et Société ● Propriété ● Fiabilité ● Biais ● Confidentialité

Slide 19

Slide 19 text

Des questions ?

Slide 20

Slide 20 text

L’intégration de l’IA dans Symfony CAS D’USAGE : Inventaire des produits chimiques

Slide 21

Slide 21 text

Objectifs / Besoins ● Faciliter, mutualiser et automatiser l’enregistrement des produits pour limiter les efforts des utilisateurs ● Valoriser les données saisies pour proposer un plan d’action permettant à l’entreprise de réduire le risque chimique Contexte ● Plateforme vieillissante développée en 2014 ● Baisse de l’utilisation depuis 2020 (-25%) ● Ergonomie et saisie des produits fastidieuses, entraînant l'abandon par les entreprises de moins de 50 salariés Problématique ● Simplifier l’inventaire des produits chimiques ● Accompagner les entreprises dans l’utilisation de l’outil ● Assurer la continuité des données saisies par les utilisateurs Contexte du projet

Slide 22

Slide 22 text

No content

Slide 23

Slide 23 text

Design sprint ● Accélérer la conception de la plateforme et aligner les attentes de chacun Concept initial ● Créer un "Yuka des produits chimiques" + base communaitaire. ● Après retours utilisateurs, la priorité est de faciliter la saisie des produits et de construire une base partagée. 2 challenges ● Métier - Constituer une base de données de référence ● Technique - Automatiser la saisie des nouveaux produits Identification des challenges techniques

Slide 24

Slide 24 text

Extraction intelligente des données des Fiches de sécurité (FDS) Définition du socle technique Moteur de la plateforme (api platform) Interface utilisateur fluide

Slide 25

Slide 25 text

Cas d’usage initial : Extraire les données d’un PDF avec un format non-fixe Analyse des solutions possibles pour effectuer l’extraction Focus sur le processus d’extraction par IA Extraction par expressions régulières ● Complexité : 3/5 ● Coûts : $ ● Qualité résultat : 40% Extraction conversion en CSV ● Complexité : 3/5 ● Coûts : $ ● Qualité résultat : 20% Extraction par zone visuelle ● Complexité : 4/5 ● Coûts : $$ ● Qualité résultat : 10% Extraction via IA ● Complexité : 2/5 ● Coûts : $ ● Qualité résultat : 90% Fonctionnalité avec une forte plus-value Ce n’est pas un Chatbot ! l’IA peut avoir des applications plus variées !

Slide 26

Slide 26 text

● Récupération du PDF ● Exécution du script Python (Process) ● Extraction ● Limiter le nombre de token ● Mise en place la chaîne d’extraction : ○ Envoi du texte à ChatGPT en tant que contexte ○ Envoi du format de retour souhaité (Schéma) ○ Envoi du prompt contenant les instructions d’extraction à ChatGPT (Instruction template) ● Récupération d’un JSON ● Hydratation d’un DTO (Normalization) ● Contrôle des données extraites (Validator) ● Renvoi du DTO au front (Api- Platform) Focus sur le processus d’extraction par IA

Slide 27

Slide 27 text

● Autres cas d’usage ○ Reprise des données (a remplacé 6 mois de saisie manuelle) ○ Aide à la modération / Mise à jour des fiches produits ● Grande force de Symfony ○ Abstraction de la fonctionnalité “core” ○ Isolation des cas d’usage ● D’autres cas d’usage sont déjà envisagés ○ Mise à jour automatique des fiches produits Focus sur le processus d’extraction par IA ● Cas d’usage initial : mise à disposition des utilisateurs pour créer de nouveaux produits

Slide 28

Slide 28 text

Les limites Temps de réponses : Anticiper la latence de chatGPT ● Jusqu’à 30s pour une réponse ● Plusieurs jours d’exécution pour ~ 30k fiches produits Focus sur le processus d’extraction par IA Une fonctionnalité liée à un service externe = Grosse dépendance ! ● Incertitude lors du départ du PDG d’OpenAI ● Risque levé dès le départ avec OPPBTP Données manquantes et hallucinations : 5 à 10% des extractions sont incomplètes ou erronées ● ChatGPT est un assistant - Nécessite une vérification pour les éléments critiques

Slide 29

Slide 29 text

Gain pour l’équipe projet ● Assistance de l’IA : un gain de temps de 6 mois sur le projet ● Ouvre la voie à de nouvelles perspectives pour des évolutions ou futurs projets Gains pour les utilisateurs ● Interface intuitive ● Base de données consolidée, enrichie et plus fiable ● Les utilisateurs peuvent se concentrer sur des tâches à plus forte valeur ajoutée, notamment la prévention Adoption et engagement accrus ● Augmentation du nombre de connexions/mois (+112%) ● Augmentation du nombre de produits/mois (+145%). Bénéfices clients et projets

Slide 30

Slide 30 text

Conclusion L’IA, une boîte noire Elle consomme des données, qui sont ensuite traitées dans un processus opaque. L’IA est plutôt lente Les temps de réponse sont longs relativement à d’autre API. Intégration fluide de l’IA Grâce à l'API, son intégration a été simple et efficace. L’IA est un assistant, pas un remplaçant Elle nécessite toujours une supervision humaine. l’IA, un véritable atout Elle a prouvé son utilité concrète dans l’optimisation de notre projet.

Slide 31

Slide 31 text

Des questions ?

Slide 32

Slide 32 text

MERCI !