Introduction :
L’entreprise OpenAI, spécialisée dans l’intelligence artificielle, vient d’annoncer récemment l’intégration de son service dans l’écosystème azure. Ce service fournit un accès via des API REST aux différents modèles de langages puissants d’OpenAI , utilisés par exemple dans toutes les tâches impliquant le traitement du langage.
Les modèles disponibles
Le service Azure OpenAI permet d’accéder à différents modèles regroupés par famille et en fonction de leur capacité. Ils peuvent être facilement adaptés à des tâches spécifiques. On peut distinguer deux familles de modèles :
- GPT-3 (Generative Pre-training Transformer 3): Des modèles qui peuvent comprendre et générer un langage naturel, chacun avec son niveau de puissance et de vitesse (Davinci, Ada, Curie, etc.).
- Codex : Des modèles descendants du GPT-3 de base qui sont capables de comprendre et de générer du code. Tableau des tarifications du service Azure OpenAI :

Figure 1 : Les prix des différents modèles du service OpenAI dans la région Europe Ouest.
Exemples d’applications
Plusieurs cas d’utilisation sont disponibles sur la version commerciale d’Azure OpenAI. Ils sont d’ailleurs adaptés à des tâches spécifiques (traduction du texte à d’autres langues, faire des résumés, traduction du code, traduire une requête du langage naturel au langage SQL, classification des tweets, classification des items, etc.). Les utilisateurs peuvent y accéder en utilisant des API REQUEST avec le langage Python. Dans cet article, nous verrons ensemble plusieurs exemples d’utilisation de ce service en utilisant la bibliothèque python openai. Nous commencerons par essayer de traduire une requête écrite en langage naturel au langage SQL, puis de traduire un texte écrit en anglais vers d’autres langues comme le français. Finalement, nous utiliserons l’assistant révolutionnaire ChatGPT en lui demandant d’écrire un article de présentation sur le métier du DATA ENGINEER. Pour découvrir les différents exemples d’applications avec l’API OpenAI, il faut tout d’abord créer une clé secrète d’API qui permet d’identifier nos demandes à l’API. Pour cela il faut créer un compte sur la plateforme openAI et générer par la suite cette fameuse clé. Celle-ci sera utilisée par nos soins durant nos demandes en la mettant en place comme variable d’environnement nommée OPENAI_API_KEY.

Figure 2 : Création de la clé secrète d’API sur la plateforme openAI.
1) Traduction SQL :
Unity Catalog (intégré à Databricks) fournit l’accès à un certain exemple de DATASET accessible aux différents utilisateurs directement à l’aide du modèle : <catalog_name>.<database_name>.<table_name>.
Le catalogue samples contient par exemple une base de données appelée TPCH qui comporte des données de benchmark TPC-H. Nous utiliserons cette base de données pour tester la traduction d’une requête écrite en langage naturel au langage SQL.
Dans un premier temps, nous devons préparer la requête avec un format bien précis et spécifique à l’API OpenAI pour prétendre à un résultat. Ci-dessous le format de la requête basée sur le schéma de notre base de données TPCH :

Figure 3 : Préparation du format qui sera envoyer à l’API OpenAI.
Comme le montre la figure 3, les premières lignes contiennent des informations sur le schéma de notre base de données TPCH constituées des différentes tables, sont également décrites les colonnes de chaque table entre parenthèses.
L’avant-dernière ligne contient la requête en langage naturel fourni par l’utilisateur.
La dernière ligne permet de préciser à l’API que la traduction en SQL de la question posée commencera par un SELECT.

Figure 4 : API REQUEST en Python en utilisant le modèle DAVINCI.
Nous allons désormais tester la requête SQL générée dans notre espace de travail Databricks SQL.

Figure 5 : Requête SQL générée par le modèle openAI testée sur DBSQL.
Le résultat est remarquable. Le modèle OpenAI a correctement identifié les bonnes tables et les différentes jointures à faire. Nous obtenons donc une réponse qui correspond à nos attentes, et ce suite à une question formulée en langage naturel.
2)Traduction des textes :
Le service Azure OpenAI fourni aussi la possibilité de traduire des textes écrits en Anglais vers d’autres langues comme le Français, l’Espagnol, etc.

Figure 6 : Traduction du texte écrit en Anglais vers d’autres langues.
3)ChatGPT :
Le ChatGPT vient d’être récemment intégré au package d’Azure OpenAI.
Nous avons demandé au ChatGPT de rédiger une présentation sur le métier de DATA ENGINEER en utilisant l’API REQUEST Python. Ci-dessous le résultat :

Figure 7 : La question posée au ChatGPT en utilisant l’API OpenAI.

Figure 8 : Le contenu de la réponse du ChatGPT.
Le résultat rédigé par ChatGPT montre qu’il est capable de structurer une réponse et de restituer des connaissances grâce à l’utilisation d’un algorithme GPT3 entrainé sur de nombreux documents (articles web, Wikipédia, etc.). Sa connaissance du monde est cependant limitée aux données qu’on lui a fourni lors de la phase d’entrainement.
Conclusion :
Les débuts d’intégration des services OpenAI à Azure sont prometteurs. Depuis janvier 2023, Azure OpenAI est en disponibilité générale en attendant d’autres nouvelles fonctionnalités qui pourront nous aider à améliorer nos performances sur des cas d’utilisation spécifiq