Développez votre première application d'Intelligence Artificielle en Python, le guide pas à pas

Création de votre première application d'IA

Aujourd'hui, vous allez créer votre toute première application d'Intelligence Artificielle.

Vous apprendrez à :

  • écrire du code Python
  • utiliser l'API OpenAI
  • créer une CLI (interface en ligne de commande)

A la fin de ce cours, vous serez capable de poser des questions à un chatbot IA via une CLI et d'obtenir des réponses - et vous serez capable de faire tout cela en ~20min.

Commençons !

Pourquoi Replit

Replit est le meilleur endroit sur Internet pour commencer à créer des logiciels.

L'un des aspects les plus ennuyeux de l'apprentissage du code est la mise en place d'un environnement de développement. Nous appelons ces environnements de développement intégrés (IDE).

Faire cela sur votre ordinateur implique d'installer et de configurer toutes sortes de logiciels, et ces étapes sont généralement un peu délicates. C'est difficile pour les nouveaux venus.

Heureusement, Replit résout ce problème pour nous !

Ils apportent un IDE puissant directement dans le navigateur où tout ce que nous avons à faire est de créer un nouveau Repl (un projet) et de commencer à écrire notre code.

Il est facile de :

  • écrire du code
  • l'exécuter
  • le partager

Replit s'occupe de toutes les parties ennuyeuses et délicates de la mise en place d'un IDE pour nous afin que nous puissions nous concentrer sur la construction de choses cool sans aucun mal de tête.

Si vous voulez en savoir plus sur ce qu'est Replit et comment l'utiliser, consultez leur documentation.

Home | Replit Docs
The Replit Docs homepage

Qu'est-ce que Python ?

Dans ce cours, nous utiliserons Python.

Il s'agit d'un langage de programmation populaire connu pour sa lisibilité et sa syntaxe claire. Il y a une abondance de bonnes ressources sur Internet pour apprendre, et la communauté est incroyablement grande.

C'est donc un excellent premier langage à apprendre !

Python est particulièrement populaire dans le domaine de l'IA, et apprendre Python signifie que vous serez en mesure d'utiliser tous les outils et bibliothèques les plus populaires pour vous aider à construire des applications d'IA étonnantes.

Utilisez ChatGPT !

Si vous êtes bloqué, demandez à ChatGPT de vous aider ! C'est une façon d'apprendre qui change la donne. Profitez-en. Posez-lui des questions, collez-lui des bugs, demandez-lui des explications, etc. ChatGPT deviendra votre meilleur ami au fur et à mesure que vous apprendrez à coder.

Mise en place

Faites-vous un compte sur Replit.

Replit: the collaborative browser based IDE
Run code live in your browser. Write and run code in 50+ languages online with Replit, a powerful IDE, compiler, & interpreter.

Cliquez ensuite sur Create Repl.

Create Repl

Nous allons choisir Python comme template. Donnez le nom que vous souhaitez à votre application.

Créer un Repl

Pour ce cours, vous aurez besoin d'une clé API OpenAI.

Une clé API est un identifiant unique qui permet à un utilisateur ou à une application d'accéder à une API (Application Programming Interface). C'est comme un mot de passe qui est nécessaire pour faire une demande au serveur API ou pour utiliser ses fonctionnalités.

Obtenez une clé API OpenAI ici.

Une fois que vous avez votre clé, vous allez devoir la sauvegarder en tant que variable d'environnement.

Pour ce faire, vous pouvez utiliser l'outil Secrets de Replit. En bas à gauche de votre interface, vous verrez une section Tools. Vous allez vouloir cliquer sur l'outil Secrets. C'est celui qui porte l'icône d'un cadenas.

Une fois dans l'outil Secrets, faites ce qui suit :

  • entrez OPENAI_API_KEY dans l'entrée key (clé)
  • entrez votre clé API OpenAI dans l'entrée value (valeur).
  • cliquez sur le bouton Add new secret.

Ceci sauvegardera votre clé de manière sécurisée et vous permettra d'y accéder dans votre code.

Ajout d'un secret

Vous êtes maintenant prêt à construire !

Étape 1 : Importer les modules

La première chose à faire est d'importer les bibliothèques que vous allez utiliser.

Dans le fichier main.py, entrez ce qui suit :

import os
import openai

Le premier import vous donne accès au module os intégré à Python. Vous l'utiliserez pour importer votre clé API OpenAI.

Le deuxième import vous donne accès à la bibliothèque openai. Celle-ci contient des méthodes pratiques pour effectuer des requêtes à OpenAI.

Importer les modules

Étape 2 : Définir votre clé api

Vous devez maintenant définir votre clé d'api. Dans l'onglet Secrets vous trouverez deux boutons Insert. Le premier sert à écrire import os dans votre code, mais nous l'avons déjà fait donc nous n'allons pas l'utiliser. Le deuxième va écrire :

openai.api_key = os.getenv("OPENAI_API_KEY")

Ceci utilise le module os pour récupérer la variable d'environnement appelée OPENAI_API_KEY et l'assigner à la propriété api_key dans la bibliothèque openai.

Vous êtes maintenant prêt à envoyer des requêtes à OpenAI !

Étape 3 : Saisir une question

Nous avons besoin d'un moyen de poser notre question.

Pour ce faire, nous allons créer une variable nommée question.

Nous allons utiliser la fonction input intégrée afin de pouvoir saisir un texte d'entrée et l'affecter à la variable question que nous avons créée. Nous avons ajouté un \n (un caractère de retour à la ligne) à la fin de la question afin que notre saisie commence sur une nouvelle ligne.

Nous ajouterons également une instruction print qui affichera notre question sur la console.

import os
import openai

openai.api_key = os.getenv("OPENAI_API_KEY")

question = input("Quelle est votre question ?\n")

print(question)

Allez-y, appuyez sur le gros bouton vert Run et essayez-le. Vous pouvez maintenant entrer une question dans la Console et voir l'effet de print qui va l'écrire de nouveau !

Pour donner un peu de style à la saisie, nous allons rendre le texte bleu.

question = input("\033[34mQuelle est votre question ?\n\033[0m")

Le \033[34m au début met le texte en bleu, et le \033[0m à la fin le remet en blanc. \033[ est le code d'échappement, et 34m la couleur.

💡
Pour rendre certains textes plus lisibles, vous pouvez utiliser les codes d'échappement ANSI pour changer la couleur du texte dans votre programme python. Un bon exemple d'utilisation est la mise en évidence des erreurs.

Étape 4 : Faire une demande à OpenAI

Nous devons maintenant faire une demande à l'API OpenAI.

Pour ce faire, nous allons prendre un extrait de code de la documentation OpenAI.

Nous allons faire une demande de ChatCompletion. Les complétions de Chat sont le type de complétions que vous voyez dans ChatGPT. C'est le type de requête le plus courant avec OpenAI. Son but est de prédire la suite la plus probable des mots dans votre texte.

Dans la documentation à droite, vous verrez un exemple de code. Veillez à sélectionner l'option Python dans le menu déroulant.

Nous allons ajouter un code similaire à notre programme entre la variable question et l'instruction print :

import os
import openai

openai.api_key = os.getenv("OPENAI_API_KEY")

question = input("\033[34mQuelle est votre question ?\n\033[0m")

completion = openai.ChatCompletion.create(
    model="gpt-3.5-turbo",
    messages=[
      {"role": "system", "content": "Vous êtes un assistant utile. Répondez à la question donnée."},
      {"role": "user", "content": question}
    ]
  )

print(question)

Voyons ce que cela donne.

Tout d'abord, nous créons une variable completion.

Ensuite, nous faisons une requête au point de terminaison ChatCompletion d'OpenAI via la bibliothèque openai que nous avons importée.

Cette requête prend deux paramètres :

  1. Le modèle à utiliser. Dans ce cas, nous utilisons gpt-3.5-turbo (le modèle ChatGPT par défaut). Une liste de modèles est disponible sur le site d'OpenAI
  2. Les messages à lui passer en entrée. Le premier message est un message system avec un prompt de base qui dit Vous êtes un assistant utile. Répondez à la question posée. Il indique à l'IA comment se comporter. Le deuxième message est un message utilisateur (notre message) qui transmet la question que nous avons enregistrée dans la variable question.

Maintenant, au lieu d'afficher notre question, nous voulons afficher la réponse d'OpenAI. On remplace print(question) par :

print("\033[32m" + completion.choices[0].message.content + "\n")

Nous avons fait 3 choses ici :

  1. Nous avons stylisé notre déclaration print en texte vert
  2. Accédé à la réponse via completion.choices[0].message.content
  3. Ajouté un nouveau retour à la ligne pour ajouter un espacement à notre CLI

Nous avons utilisé la syntaxe + pour ajouter chacun de ces éléments à une seule instruction print.

Maintenant, exécutez à nouveau le programme pour poser une question à votre assistant d'intelligence artificielle et obtenir une réponse !

Réponse de l'IA

Étape 5 : Répéter le programme de questions-réponses

Vous remarquerez que le programme s'arrête après avoir posé une seule question. Corrigeons cela. Nous allons placer notre code Q&A à l'intérieur d'une boucle while.

Celle-ci répétera le processus jusqu'à ce que nous arrêtions d'exécuter le programme afin de pouvoir continuer à poser des questions.

import os
import openai

openai.api_key = os.getenv("OPENAI_API_KEY")

while True:
  question = input("\033[34mQuelle est votre question ?\n\033[0m")

  completion = openai.ChatCompletion.create(
    model="gpt-3.5-turbo",
    messages=[
      {"role": "system", "content": "Vous êtes un assistant utile. Répondez à la question donnée."},
      {"role": "user", "content": question}
    ]
  )

  print("\033[32m" + completion.choices[0].message.content + "\n")

Nous fixons la condition de la boucle while à true, qui est une valeur booléenne. Les valeurs booléennes sont soit true, soit false.

La valeur true signifie que le code à l'intérieur de la boucle while continuera à s'exécuter jusqu'à ce que nous arrêtions le programme.

Étape 6 : Traitement de "exit"

Nous pouvons également ajouter une instruction if pour vérifier si nous tapons exit comme question, cela arrêtera le programme.

import os
import openai

openai.api_key = os.getenv("OPENAI_API_KEY")

while True:
  question = input("\033[34mQuelle est votre question ?\n\033[0m")

  if question.lower() == "exit":
    print("\033[31mAu revoir !\033[0m")
    break
  
  completion = openai.ChatCompletion.create(
    model="gpt-3.5-turbo",
    messages=[
      {"role": "system", "content": "Vous êtes un assistant utile. Répondez à la question donnée."},
      {"role": "user", "content": question}
    ]
  )

  print("\033[32m" + completion.choices[0].message.content + "\n")

Nous créons une instruction if qui vérifie une condition spécifique.

Nous appelons la méthode intégrée lower() sur notre variable question qui la transforme en une chaîne de caractères minuscules et retire les majuscules, puis nous vérifions si le texte est égal à exit et si c'est le cas, nous exécutons le code à l'intérieur de l'instruction if.

Le code affiche Au revoir ! en rouge, puis le break nous "sort" de la boucle while, ce qui met fin au programme.

Une conversation avec ChatGPT

Étape 7 : Code final

Votre code final devrait ressembler à ce qui suit.

Code

import os
import openai

openai.api_key = os.getenv("OPENAI_API_KEY")

while True:
  question = input("\033[34mQuelle est votre question ?\n\033[0m")

  if question.lower() == "exit":
    print("\033[31mAu revoir !\033[0m")
    break
  
  completion = openai.ChatCompletion.create(
    model="gpt-3.5-turbo",
    messages=[
      {"role": "system", "content": "Vous êtes un assistant utile. Répondez à la question donnée."},
      {"role": "user", "content": question}
    ]
  )

  print("\033[32m" + completion.choices[0].message.content + "\n")

Code commenté

# Importe le module os et la bibliothèque openai
import os
import openai

# Définit la clé de l'API OpenAI en utilisant la variable d'environnement appelée OPENAI_API_KEY
openai.api_key = os.getenv("OPENAI_API_KEY")

# Créer une boucle while qui s'exécute jusqu'à ce que l'utilisateur tape "exit".
while True:
  # L'utilisateur pose une question (texte en bleu)
  question = input("\033[34mQuelle est votre question ?\n\033[0m")

  # Vérifie si l'utilisateur a saisi "exit".
  if question.lower() == "exit":
    # Interrompt la boucle et imprime un message d'adieu (texte rouge)
    print("\033[31mAu revoir !\033[0m")
    break
  
  completion = openai.ChatCompletion.create(
    model="gpt-3.5-turbo", # Utilise le modèle 'gpt-3.5-turbo'.
    messages=[
      {"role": "system", "content": "Vous êtes un assistant utile. Répondez à la question donnée."}, # Instruit l'IA avec un message du système
      {"role": "user", "content": question} # Utilise la question de l'utilisateur comme entrée
    ]
  )

  # Affiche la réponse générée par l'IA (texte vert)
  print("\033[32m" + completion.choices[0].message.content + "\n")

Félicitations !

Vous avez réussi ! Vous venez d'écrire vos premières lignes de Python et de construire un robot Q&A entièrement fonctionnel en utilisant OpenAI ! Pour le plaisir, essayez et voyez si vous pouvez ajouter plus de fonctionnalités.

Vous avez déjà envie d'en faire plus ?

Pourquoi ne pas essayer d'intégrer LangChain dans votre application ? Notre chatbot actuel ne possède pas de "mémoire" et n'a donc pas conscience des précédents messages de la conversation. Nous pouvons régler cela facilement :

Comment utiliser LangChain pour créer votre première application d’IA en Python
Ce guide a pour objectif de présenter de manière simple et accessible les composants et les cas d’utilisation de LangChain, à travers des exemples ELI5 (Expliquer comme si j’avais cinq ans) et des extraits de code. Même si vous n’êtes pas développeur, vous pouvez suivre ce guide et créer votre

Ou pourquoi ne pas créer un bot Discord ? Dans ce guide nous apprenons les bases d'un bot Discord en Python pour afficher le prix d'une cryptomonnaie. Vous pourriez tenter d'intégrer ChatGPT à ce bot par exemple :

Comment créer un bot Discord avec ChatGPT sans aucunes connaissances en développement
Vous êtes un utilisateur de Discord et vous souhaitez créer un bot pour enrichir l’expérience de votre communauté, ou la votre, mais vous n’avez aucune compétence en développement ? Pas de souci ! Dans cet article, nous vous proposons un tutoriel simple et accessible pour vous guider étape par étape…

N'hésitez pas à lire nos autres guides, ainsi que la sous-catégorie DIY !