Article paru dans le n°265 du magazine Programmez!
Simplicité Software est l’éditeur de la solution logicielle éponyme Simplicité. Cette plateforme est conçue pour aider les ingénieur.e.s à construire efficacement des applications web complexes et facilement maintenables en plaçant le modèle de données et la logique métier au cœur du processus de conception.(CF. Numéro HS7 printemps 2022).
Suite à l'émergence fulgurante des modèles d'IA générative tels que Mistral et ChatGPT, l'intégration de l'intelligence artificielle (IA) dans divers secteurs est désormais monnaie courante. Dans le domaine du Low-Code, cette intégration se fait via la simplification et l'automatisation, l'IA générative a trouvé sa place.
Cette émergence peut, à certains égards, questionner la pertinence des plateformes Low-Code. Mais malgré la performance impressionnante des IA concernant la génération de code, il est essentiel de prendre en compte les risques tels que les erreurs, les failles de sécurité, l'imprécision et les malentendus des besoins… À ne pas négliger lorsque l’on a la charge de développer des applications qui sont souvent le cœur-système des entreprises.
Mais plutôt que de considérer l'IA comme une menace, il serait plus opportun de la percevoir comme une nouvelle opportunité de développement. Ainsi, en intégrant les fonctionnalités des IA aux outils existants, les plateformes peuvent étendre leurs possibilités, accélérer les processus de développement et fournir un soutien plus efficace aux développeurs dans leurs codes spécifiques !
Dans les environnements plus restreints et sécurisés des plateformes Low-Code, les risques associés à la génération de code sont atténués grâce à des paramètres mieux définis et contrôlés. Cela étant dit, l'IA générative représente un défi, mais également une forte opportunité de renforcer les capacités et l'efficacité des plateformes Low-Code.
Chez Simplicité, deux axes principaux ont guidé nos choix d’intégrations : l’accompagnement des designers/développeurs et l’élargissement des possibilités pour les métiers qui utilisent la plateforme.
D’un point de vue du designer/développeur, elle vise à optimiser le processus de développement en offrant à ces derniers des outils supplémentaires pour accélérer leurs tâches et améliorer leur efficacité. L’objectif ici sera de les soutenir et accompagner plutôt que de les remplacer. Elle permet ainsi aux designers de consacrer plus de temps à la définition des besoins ainsi qu’aux aspects stratégiques de leurs projets, tout en conservant leur rôle central dans la prise de décisions.
Il est essentiel de souligner que l'IA intégrée à Simplicité n'opère pas de manière autonome, mais plutôt en tant qu'outil d'assistance pour les designers. Notre objectif n’est pas de devenir une application pilotée par l’IA, mais de faciliter ces développements de manière collaborative. Cette approche garantit que l'expertise humaine reste au cœur du processus de développement, avec l'IA qui agit comme un partenaire technologique, contribuant à accélérer et à améliorer la qualité des résultats.
Concernant les métiers/utilisateurs, l’IA permet une personnalisation fine des outils déjà présents. On peut penser à une analyse des données correspondant exactement aux besoins exprimés ou à l’ajout d’assistance contextualisée. Cela se traduit par une meilleure adaptation aux besoins spécifiques et in fine une efficacité accrue.
Dans un contexte où les modèles et les besoins du marché évoluent rapidement, et où de potentiels nouveaux modèles performants émergent à la vitesse de l’IA, il est judicieux d'opter pour une approche d'intégration agnostique aux grands modèles de langage. Notre objectif est donc une intégration qui puisse s’adapter autant aux choix qu'aux besoins des clients et à l’évolution du marché. L’agnosticisme étant partie intégrante de l’ADN de Simplicité.
Actuellement, Simplicité se concentre sur deux axes d’intégration de l’IA générative pour les makers (développeurs) au sein de sa plateforme.
Simplicité Software permet aux développeurs de créer rapidement des applications métiers grâce à des modèles visuels et une logique métier déclarative. Figure 1.
L'intégration de l'IA dans le processus de définition d'applications métiers vise à assister le concepteur dans l'expression de ses besoins en langage naturel lors d'une interaction avec un chatbot spécialisé dans la modélisation d'applications métiers orientées objet.
Figure 1. Exemple de modèle métier d’une application de gestion de commande.
Une fois les besoins définis, Simplicité, assistée par l'IA, procède à la génération du modèle de l'application correspondant.
Prompt :
user: Je veux une gestion de commandes de produits. Elle aide à organiser les fournisseurs, les produits, les clients et les commandes des clients.
Fournisseurs
Il y a différents fournisseurs. Chaque fournisseur a un nom, un numéro de téléphone, un logo, et un site web.
Produits
L'application propose une variété de produits. Chaque produit a le nom, le prix, la quantité en stock, une description et une image. Les produits ont des fournisseurs
Clients
Les clients sont les personnes qui achètent les produits. On doit connaître les informations de chaque client, comme leur prénom, leur nom de famille, leur adresse email, leur numéro de téléphone, et leur adresse. Afin de rester en contact avec ses clients et de gérer leurs commandes.
Commandes
Quand un client passe une commande, le système enregistre tous les détails de cette commande : combien d'unités, quand la commande a été passée, et quel client a passé la commande. Le système suit également l'état de la commande, par exemple, si elle est en cours de traitement, expédiée ou livrée.
Une commande ne contient qu'un seul produit
En résumé, cette application doit aider l'entreprise à gérer ses relations avec les fournisseurs, à suivre ses stocks de produits, à maintenir une base de données de ses clients, et à organiser et suivre les commandes des clients. Cela rend les opérations de l'entreprise plus efficaces et permet de fournir un meilleur service aux clients.
Figure 2. Modèle généré et résultat de l’application Métier réel généré grâce au prompt ci-dessus.
L’application générée, bien que fonctionnelle, reste minimale et à des paramètres par défaut, mais elle offre une base qui peut, par la suite, être complétée et personnalisée. Cette base auto générée permet un gain de temps important par rapport à une modélisation classique au sein de Simplicité. Figure 3.
Figure 3. Comparatif du temps nécessaire pour créer la même application simple avec l’IA et par un développeur Simplicité confirmé.
Cet outil de génération de modèle peut également être utilisé afin de compléter un modèle existant, le processus est similaire, mais le chatbot de définition des besoins propose une description de l’application existante et la prend en compte dans le dialogue.
Dans un contexte de développement et de recette, la création d'un jeu de données conséquent pour des tests approfondis et réalistes peut souvent s'avérer fastidieuse. L'IA offre une solution de gain de temps en proposant une approche clés en main pour la génération de données fictives adaptées à un modèle donné.
Bien que la génération automatique de données soit déjà possible sans recourir à l'intelligence artificielle, elle nécessite généralement un développement spécifique pour être adaptée aux différents modèles métier. L'intégration d'un traitement par l'IA apporte une plus-value significative en remplaçant l'étape de développement par la compréhension automatique du modèle par l'IA. Cela permet ainsi de simplifier le processus de génération de données en le rendant plus agile et moins tributaire d'une expertise technique approfondie.
L'intégration de l'IA chez Simplicité pour les designers ouvre de nombreuses autres possibilités que nous étudions :
L'IA peut expliquer du code et aider à l’optimiser et/ou le corriger, améliorant ainsi la qualité et l'efficacité des développements.
S’il est d’ores et déjà possible d’utiliser les outils déjà existants via différents IDE, Simplicité inclut un éditeur de code qui pourrait être augmenté grâce à l’intégration de l’IA, notamment pour expliquer le code existant à une personne qui reprendrait le développement d’un module existant.
Pour certains besoins spécifiques, il est parfois nécessaire de développer des fronts spécifiques ou des templates pour réaliser des publications. L’IA pourrait accompagner un développeur en lui proposant un template ou le code spécifique correspondant à ses besoins en fonction du modèle d’API et de templating de Simplicité. Cela réduirait le temps de développement de code spécifique tout en offrant une plus grande liberté de personnalisation.
Pour simplifier l’anonymisation des données nécessaires pour certaines données, l’IA pourrait combler les difficultés liées au modèle spécifique, il est cependant nécessaire de tenir compte de la souveraineté des données qui serait alors partagée avec l’IA puisqu’un besoin d’anonymisation implique des données sensibles.
Simplicité offre déjà une documentation technique automatiquement générée, elle pourrait être complétée grâce à l’IA et notamment dans un but de la rendre plus accessible à un néophyte.
Un modèle spécialisé pour améliorer les réponses de l’IA et augmenter ses possibilités :
1. Un modèle de langage spécialisé (LLM) pourrait analyser les applications développées sur Simplicité, offrant des recommandations de meilleures pratiques et identifiant des optimisations possibles.
2. Un chabot designer, alimenté par un LLM spécialisé, pourrait assister les utilisateurs de Simplicité en répondant à leurs questions, en fournissant des conseils sur la conception et en aidant à résoudre les problèmes techniques.
Concernant le métier, les possibilités d'intégration de l'intelligence artificielle sont multiples et très fortement liées aux spécifications des besoins métier.
À titre d'exemple, Simplicité développe un outil de génération de graphiques grâce à l'IA. Cette solution permet aux utilisateurs de créer des représentations visuelles personnalisées et contextuelles de leurs données.
Grâce à l'IA, la plateforme comprend les besoins spécifiques de l'utilisateur et utilise le modèle d'API de Simplicité pour générer le code JavaScript nécessaire à la création du graphique souhaité. En plus des graphiques prédéfinis disponibles dans les vues. Cet outil offre la flexibilité de répondre de manière précise à des besoins uniques.
En pratique, sur une application de commande avec des produits et des fournisseurs, Figure 4., l’outil de diagramme par IA permet d’obtenir par une simple phrase un graphique représentant la répartition des commandes en fonction de leurs statuts et du fournisseur du produit.
Figure 4. Diagramme de l’application de commande « Demo ».
Figure 5. Exemple de graphique spécifique suivant la demande « Graphique des commandes par statut et nom du fournisseur ». Le graphique prédéfini reste pertinent puisqu’il offre de manière instantanée une solution stable et sûre. Le but ici est de conserver les graphiques prédéfinis pour les besoins fréquents tout en offrant une flexibilité supplémentaire au métier qui peuvent rencontrer des besoins plus inhabituels dans un contexte précis.
L'intégration de l'IA chez Simplicité pour les métiers ouvre de nombreuses autres possibilités que nous étudions :
Les IA génératives représentent une avancée technologique majeure. Cependant, leur fiabilité reste incertaine en raison du phénomène d'hallucinations pouvant générer des informations erronées.
De plus, leur fonctionnement énergivore soulève des enjeux environnementaux importants, nécessitant le développement d'une IA frugale.
Par ailleurs, la question de la sécurité des données, souvent hébergées sur des serveurs américains, pose un risque juridique qu'il convient d'encadrer, comme le prévoit l'AI Act Européen (adopté en avril 2024).
Enfin, si certains emplois répétitifs pourraient être automatisés, ces IA ne remplaceront pas l'intelligence humaine et devraient plutôt conduire à une évolution du métier de développeur. Leur libérant ainsi du temps pour des tâches à plus forte valeur ajoutée, c’est d’ailleurs la raison d’être de Simplicité.
Pour en savoir plus, vous pouvez également regarder notre webinaire dédié :