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 :
- 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.
- Une clé API OpenAI gratuite
- Inscrivez-vous ou connectez-vous sur platform.openai.com.
- Cliquez sur API Keys → Create new secret key.
- Copiez la clé : vous en aurez besoin à l’étape suivante.
- 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
ouvenv\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 etpython-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
:
- Créez un fichier
.env
à la racine :OPENAI_API_KEY="sk-…votre_clé_secrète…"
- 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
- Docs officielles : https://platform.openai.com/docs/guides/chat
- Function Calling : pour des sorties JSON structurées
- Jupyter : prototypes interactifs
- Exemples communautaires : GitHub “openai python examples”