Pour rendre votre application plus attrayante et plus fun pour vos utilisateurs, le recours aux données en langage naturel peut être un véritable plus.
Cette fonctionnalité apportera un vrai plus à votre application.
Pour cela, nous allons voir ensemble comment implémenter cette fonctionnalité dans votre application.
Prérequis :
- Un compte développeur OpenAI
- Minimal API avec ASP.NET Core
- Nugget « Standard.AI.OpenA »
- Une base de données SQL Server. Pour cela, nous allons utiliser le sample de Microsoft « AdventureWorks2012 ».
L’API OpenAI.
Comme vous le savez peut-être déjà, l’API OpenAI est un service payant et vous devrez créer un compte et fournir une carte de crédit pour commencer à l’utiliser. Le coût des tests est en réalité très faible.
La base de données
La base de données que nous allons interroger « AdventureWorks2012 » est assez complète. Par soucis de simplicité de notre exemple, nous allons nous concentré uniquement sur la table « Person ».
Récupérer votre clé OpenAI

Attention votre clé de sécurité est personnelle, et ne doit pas être divulguée publiquement.
Installation de la minimal api
Configuration de la base de données
Configuration du swagger
Swagger nous sera nécessaire pour tester nos requêtes en langage naturel
Définition du EndPoint
Conception de l’Interface et de la Classe de Client de Données
L’interface IADataClient exposera la méthode RunAiQueryAsync qui prendra en paramètre votre requête en langage naturel. En retourne une liste d’objets Person.
La classe AiDataClient implémente cette interface est conçue pour interagir avec la base de données SQL Server et le service OpenAI.
Configuration et Initialisation
Dans le constructeur de AiDataClient, les configurations sont extraites du fichier de configuration « appsettings.json« , notamment les clés API et les URLs pour OpenAI et SQL Server.
Ces configurations sont essentielles pour établir une connexion sécurisée et authentifiée avec nos services externes.
Traitement de Requêtes en Langage Naturel
La méthode RunAiQueryAsync est le cœur du code. Elle reçoit la requête en langage naturel, utilise le client OpenAI pour la convertir en une requête SQL, puis exécute cette requête sur la base de données SQL Server.
Récupération dynamique du schéma de notre base de données.
Il est impératif que notre prompt contienne le modèle de données, sans ce modèle l’IA sera incapable de construire une requête qui corresponde à votre base de données.
Nous nous concentrons uniquement sur la table Person, alors notre requête se limitera à cette table.
Prompt
Le prompt est divisé en deux parties distinctes, représentant deux « rôles » : le système et l’utilisateur.
Rôle du Système : La première partie du prompt définit le rôle du système. Elle donne au système l’instruction de générer des requêtes SQL à partir des demandes des utilisateurs. Pour aider le système, on fournit notre description détaillée de la table SQL « Person« .
Rôle de l’Utilisateur : La seconde partie représente le rôle de l’utilisateur, où une requête spécifique est formulée en langage naturel.

OpenAi nous renverra alors la requête SQL que nous exécuterons avec EntityFramework
Exécution de notre requête par EntityFramework
Nous pouvons maintenant tester notre api avec Swagger
Conclusion
L’utilisation de prompts d’IA comme celui-ci pour traduire des requêtes en langage naturel en requêtes SQL est un domaine passionnant et en pleine expansion. Il illustre comment l’IA peut servir de pont entre la complexité technique des bases de données et la simplicité d’utilisation souhaitée par les utilisateurs finaux.
Pour en savoir plus et expérimenter cette fonctionnalité, n’hésitez pas à télécharger l’exemple en suivant le lien suivant : https://github.com/xraboteu/AdventureWorks2022




