Si vous débutez en programmation ou que vous commencez tout juste avec Python, intégrer une IA conversationnelle comme OpenAI ChatGPT peut sembler intimidant. Pas de panique : dans ce guide, nous vous accompagnons pas à pas en expliquant chaque terme et commande, afin que vous puissiez suivre même si c’est votre premier projet.

Prérequis

Assurez-vous d’avoir :

  1. Python 3.7 ou version supérieure
    • Téléchargez et installez Python depuis python.org.
    • Lors de l’installation sous Windows, cochez « Add Python to PATH » pour pouvoir utiliser python dans la ligne de commande.
  2. Une clé API OpenAI gratuite
    • Inscrivez-vous ou connectez-vous sur platform.openai.com.
    • Cliquez sur API KeysCreate new secret key.
    • Copiez la clé : vous en aurez besoin à l’étape suivante.
  3. Un terminal ou une invite de commandes
    • Windows : Recherchez « Invite de commandes » ou « PowerShell ».
    • macOS/Linux : Ouvrez l’application Terminal.

Créer et activer un environnement virtuel

Pour isoler les dépendances et garder votre installation Python globale propre :

# macOS/Linux
python3 -m venv venv
source venv/bin/activate

# Windows (PowerShell)
python -m venv venv
venv\Scripts\Activate.ps1

Explication du code

  • python3 -m venv venv : crée un nouvel environnement virtuel nommé venv.
  • source venv/bin/activate ou venv\Scripts\Activate.ps1 : active l’environnement virtuel.
  • Le prompt affiche (venv), indiquant que vous êtes dans l’environnement virtuel.

Installez ensuite les packages nécessaires :

pip install openai python-dotenv

Explication du code

  • pip install openai python-dotenv : installe la bibliothèque OpenAI et python-dotenv pour la gestion des variables d’environnement.

Stocker la clé API en toute sécurité

Ne codez jamais votre clé en dur : utilisez une variable d’environnement ou un fichier .env :

  1. Créez un fichier .env à la racine :OPENAI_API_KEY="sk-…votre_clé_secrète…"
  2. Chargez-le dans votre script :from dotenv import load_dotenv import os load_dotenv() openai.api_key = os.getenv("OPENAI_API_KEY")

Explication du code

  • load_dotenv() : lit le fichier .env et charge les variables.
  • os.getenv("OPENAI_API_KEY") : récupère la valeur de la variable.
  • openai.api_key = ... : configure le client OpenAI.

Écrire votre premier script Python

Créez chat.py :

import os
import openai
from dotenv import load_dotenv

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

messages = [
    {"role": "system", "content": "Vous êtes un tuteur Python sympathique."},
    {"role": "user",   "content": "Comment afficher 'Hello, world!' en Python ?"}
]

response = openai.ChatCompletion.create(
    model="gpt-3.5-turbo",
    messages=messages,
    temperature=0.5,
    max_tokens=150
)

print(response.choices[0].message.content)

Explication du code

  • messages : définit la conversation.
  • ChatCompletion.create(...) : envoie la requête à l’API.
  • response.choices[0].message.content : extrait la réponse du modèle.

Inspecter la réponse et l’utilisation des tokens

print(response)  # JSON complet
print("Réponse  :", response.choices[0].message.content)
print("Tokens prompt :", response.usage.prompt_tokens)
print("Tokens réponse :", response.usage.completion_tokens)
print("Total tokens :", response.usage.total_tokens)

Explication du code

  • response.usage.prompt_tokens : tokens consommés pour l’entrée.
  • response.usage.completion_tokens : tokens générés dans la réponse.
  • response.usage.total_tokens : total, pour le calcul des coûts.

Voir la génération en temps réel

for chunk in openai.ChatCompletion.create(
    model="gpt-3.5-turbo",
    messages=messages,
    stream=True
):
    delta = chunk.choices[0].delta
    if delta.content:
        print(delta.content, end="", flush=True)

Explication du code

  • stream=True : active le flux de réponses partielles.
  • delta.content : nouveaux segments de texte.

Gérer les erreurs et les retries

import time
from openai.error import RateLimitError, OpenAIError

def safe_chat(messages):
    for attempt in range(3):
        try:
            return openai.ChatCompletion.create(model="gpt-3.5-turbo", messages=messages)
        except RateLimitError:
            time.sleep(2 ** attempt)
        except OpenAIError as e:
            print("Erreur API :", e)
            break
    return None

Explication du code

  • 3 tentatives en cas de RateLimitError avec backoff exponentiel.
  • Log d’autres erreurs.

Boucle de chat simple en CLI

import os, openai, time
from dotenv import load_dotenv
from openai.error import RateLimitError

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

def chat_loop():
    history = [{"role": "system", "content": "Vous aidez les débutants à apprendre Python."}]
    print("Bienvenue ! (tapez 'exit' pour quitter)\n")

    while True:
        user_input = input("Vous : ")
        if user_input.lower() in ("exit", "quit"):
            print("Au revoir !")
            break

        history.append({"role": "user", "content": user_input})
        for attempt in range(3):
            try:
                resp = openai.ChatCompletion.create(model="gpt-3.5-turbo", messages=history)
                break
            except RateLimitError:
                time.sleep(2 ** attempt)
        else:
            print("Échec de la réponse. Essayez plus tard.")
            continue

        reply = resp.choices[0].message.content
        print("ChatGPT :", reply)
        history.append({"role": "assistant", "content": reply})

if __name__ == "__main__":
    chat_loop()

Explication du code

  • history : conserve le contexte de la conversation.
  • Boucle jusqu’à commande de sortie.

Personnalisation des invites

Modifiez le comportement du modèle :

{"role": "system", "content": "Vous êtes un tuteur Python expert et vous expliquez simplement."}

Ressources complémentaires