0Pricing
Learn AI with Python · Leçon

API OpenAI : chat.completions et diffusion en continu

Client OpenAI, liste de messages, rôles système/utilisateur/assistant, diffusion en continu avec stream=True.

API OpenAI : chat.completions et diffusion en continu est une leçon Learn AI with Python gratuite sur CoddyKit. Ceci est la leçon 1 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Learn AI with Python, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Learn AI with Python comprend 4 leçons au total.

Découvrez le SDK Python OpenAI

Le paquet Python openai est la méthode officielle pour communiquer avec les modèles OpenAI comme GPT-4o. Installez-le avec pip install openai pour obtenir une seule classe cliente OpenAI qui gère pour vous l’authentification, les nouvelles tentatives et la construction des requêtes.

Tous vos appels passent par ce client ; le créer une fois puis le réutiliser est donc le modèle d’utilisation standard.

pip install openai

from openai import OpenAI

Créer le client

Instanciez le client avec OpenAI(). Par défaut, il lit votre clé dans la variable d’environnement OPENAI_API_KEY, ce qui évite d’exposer les secrets dans votre code source.

Vous pouvez également transmettre la clé explicitement, mais les variables d’environnement constituent l’approche recommandée pour les applications en production.

from openai import OpenAI

# Reads OPENAI_API_KEY from the environment
client = OpenAI()

# Or pass it explicitly (not recommended)
client = OpenAI(api_key="sk-...")

La liste messages

Les modèles conversationnels sont pilotés par une liste de messages. Chaque message est un dictionnaire contenant un role et un content. Les trois rôles principaux sont system (instructions), user (la personne) et assistant (le modèle).

Cette liste constitue l’intégralité du contexte de la conversation que le modèle voit à chaque appel.

messages = [
    {"role": "system", "content": "You are a helpful assistant."},
    {"role": "user", "content": "What is the capital of France?"}
]

Votre première complétion

Appelez client.chat.completions.create() avec un model et vos messages. Le texte de la réponse se trouve à l’emplacement response.choices[0].message.content.

L’API renvoie une liste de choix, mais dans l’usage courant, vous lisez le premier.

response = client.chat.completions.create(
    model="gpt-4o",
    messages=messages
)

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

Contrôler la sortie avec des paramètres

Deux paramètres façonnent la réponse : temperature (0 = déterministe, une valeur plus élevée = plus créative) et max_tokens (limite la longueur de la réponse). Les températures basses conviennent aux tâches factuelles ; les températures élevées sont plus adaptées au remue-méninges.

response = client.chat.completions.create(
    model="gpt-4o",
    messages=messages,
    temperature=0.2,
    max_tokens=300
)

Pourquoi diffuser les réponses

Sans diffusion en continu, vous devez attendre la réponse complète avant de voir quoi que ce soit. Avec la diffusion en continu, les jetons arrivent au fur et à mesure de leur génération ; une interface peut donc afficher le texte en temps réel, comme le fait ChatGPT.

Vous l’activez avec stream=True, ce qui transforme la valeur de retour d’un objet unique en un itérateur.

Activer la diffusion en continu

Transmettez stream=True à create(). Au lieu d’une réponse terminée, vous obtenez maintenant un générateur qui produit des fragments au fur et à mesure que le modèle les génère.

stream = client.chat.completions.create(
    model="gpt-4o",
    messages=messages,
    stream=True
)

Parcourir les fragments

Parcourez le flux. Chaque fragment contient une partie du texte dans chunk.choices[0].delta.content. Les premiers et les derniers fragments peuvent contenir None à cet emplacement ; vérifiez donc sa présence avant l’affichage.

for chunk in stream:
    delta = chunk.choices[0].delta.content
    if delta is not None:
        print(delta, end="", flush=True)

Comprendre delta et message

Dans une réponse normale, vous lisez message.content (la réponse complète). Dans un flux, vous lisez delta.content (uniquement le nouvel élément). Le mot delta signifie « la modification » depuis le dernier fragment.

La concaténation de tous les deltas permet de reconstituer le message complet.

full_text = ""
for chunk in stream:
    piece = chunk.choices[0].delta.content or ""
    full_text += piece
print("\nFinal:", full_text)

Conversations à plusieurs tours

Pour poursuivre une conversation, utilisez append pour réinsérer la réponse de l’assistant dans messages, puis ajoutez le message utilisateur suivant. Le modèle est sans état ; c’est donc YOU qui gérez l’historique.

messages.append({"role": "assistant", "content": response.choices[0].message.content})
messages.append({"role": "user", "content": "And its population?"})

follow_up = client.chat.completions.create(model="gpt-4o", messages=messages)

Examiner l’utilisation des jetons

Les réponses sans diffusion incluent un objet usage avec prompt_tokens, completion_tokens et total_tokens. C’est ainsi que vous suivez et budgétez le coût de l’API, puisque la facturation se fait au jeton.

print(response.usage.prompt_tokens)
print(response.usage.completion_tokens)
print(response.usage.total_tokens)

Vérification rapide

Vérifiez votre compréhension de la diffusion en continu.

Récapitulatif : complétions de conversation et diffusion en continu

Vous avez appris à utiliser create pour créer un client OpenAI, à construire une liste messages avec les rôles système, utilisateur et assistant, puis à appeler chat.completions.create(). Vous avez lu les réponses normales depuis choices[0].message.content.

Avec stream=True, vous parcourez les fragments et lisez delta.content pour obtenir une sortie en temps réel, vous gérez l’historique en ajoutant les réponses et vous suivez le coût au moyen de l’objet usage.

Questions Fréquemment Posées

La leçon « API OpenAI : chat.completions et diffusion en continu » est-elle gratuite ?

Oui — le texte complet de « API OpenAI : chat.completions et diffusion en continu » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Learn AI with Python, passe à CoddyKit PRO. Le cours Learn AI with Python comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « API OpenAI : chat.completions et diffusion en continu » ?

Client OpenAI, liste de messages, rôles système/utilisateur/assistant, diffusion en continu avec stream=True. Tu pratiques Learn AI with Python avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Learn AI with Python ?

Aucune expérience préalable n'est requise. Learn AI with Python sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 1 sur 4.

Combien de temps prend la leçon « API OpenAI : chat.completions et diffusion en continu » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Learn AI with Python ?

Oui. Chaque leçon Learn AI with Python inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. API OpenAI : chat.completions et diffusion en continu
  2. API Anthropic Claude en Python
  3. Appels de fonctions et utilisation d’outils avec les LLM
  4. Ingénierie des prompts pour les applications LLM en production
← Retour à Learn AI with Python