Upgrade to Pro — share decks privately, control downloads, hide ads and more …

L'intégration de l'IA dans Symfony​

Nicolas Grekas
October 03, 2024
10

L'intégration de l'IA dans Symfony​

Slides présentés au meetup avec Codéin

https://www.youtube.com/watch?v=b-shilFNkI8

Nicolas Grekas

October 03, 2024
Tweet

Transcript

  1. 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
  2. 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
  3. 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,
  4. 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
  5. 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
  6. Miscellaneous • [Notifier] Sweego, Mailomat, Maitrap, Sipgate, JoliNotif, Primotexto •

    [HttpClient] Fix parsing Server-Sent Events • [Translation] Better affinity with IAgen-provided translations
  7. 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
  8. 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
  9. 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
  10. 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
  11. 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 !
  12. • 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
  13. • 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
  14. 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
  15. 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
  16. 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.