API LLM pour développeurs : démarrer avec les chat completions

AI2026-09-22TryQuickToolBox

Vous avez une super idée de fonctionnalité boostée à l'IA, mais dès que vous ouvrez la doc de l'API, vous tombez sur un mur de jargon : tokens, temperature, streaming, prompts système. On dirait qu'il faut un deuxième diplôme juste pour envoyer un message. Bonne nouvelle : le concept de base est simple. Vous envoyez une liste de messages, et le modèle renvoie une réponse. Tout le reste, c'est du réglage. Cet article vous guide pas à pas dans l'intégration d'une API de chat completion LLM dans votre application, avec du code que vous pouvez adapter dès aujourd'hui.

Qu'est-ce qu'une API de chat completion ?

Au fond, une API de chat completion prend un historique de conversation en entrée et renvoie le message suivant. Cet historique est un tableau d'objets message, chacun avec un role et un content. Les rôles sont généralement system, user et assistant. Le message système définit le comportement de l'assistant, le message utilisateur correspond à ce que la personne a tapé, et le message assistant correspond à la réponse précédente du modèle. En envoyant tout l'historique, vous donnez au modèle le contexte nécessaire pour générer une réponse cohérente.

La plupart des fournisseurs (OpenAI, Anthropic, Google et les alternatives open source) suivent un schéma similaire, même si l'endpoint et le payload exacts peuvent différer. Une fois que vous en maîtrisez un, vous vous adaptez rapidement aux autres.

Étape par étape : votre premier appel API

Parcourons un exemple minimal en Python avec le SDK OpenAI. Installez-le avec pip install openai. Placez votre clé API dans une variable d'environnement pour ne pas la mettre dans votre code.

import os
from openai import OpenAI

client = OpenAI(api_key=os.environ["OPENAI_API_KEY"])

response = client.chat.completions.create(
    model="gpt-4o-mini",
    messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "Explain what an API is in one sentence."}
    ]
)

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

Et voilà. L'objet de réponse contient une liste de choices ; en général, on prend la première. Le contenu du message correspond à la réponse du modèle. Vous pouvez aussi accéder aux statistiques d'usage pour suivre la consommation de tokens.

Les paramètres clés à régler

Au-delà des messages, quelques paramètres contrôlent la sortie du modèle :

Le streaming pour une meilleure UX

Attendre une réponse complète peut sembler lent, surtout pour les réponses longues. Le streaming vous permet d'afficher le texte au fur et à mesure. Voici comment gérer un stream en Python :

stream = client.chat.completions.create(
    model="gpt-4o-mini",
    messages=[{"role": "user", "content": "Tell me a story."}],
    stream=True
)

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

Chaque chunk contient un delta avec un morceau de la réponse. Vous accumulez ces morceaux pour reconstruire le message complet. Dans une application web, vous pouvez transmettre ces chunks au navigateur via Server-Sent Events (SSE) ou WebSockets.

Gérer les erreurs et les rate limits

Les API échouent. Le réseau a des hoquets. Les rate limits se déclenchent. Votre intégration doit gérer tout ça avec élégance. Les erreurs courantes incluent :

Enveloppez toujours vos appels API dans des blocs try/except et loguez les échecs. En production, envisagez une bibliothèque comme tenacity pour les retries.

Gérer les coûts et les tokens

Les tokens sont la monnaie des API LLM. Les tokens d'entrée comme de sortie comptent dans votre facture. Pour garder des coûts prévisibles :

Surveillez l'usage via le dashboard du fournisseur ou en loguant le nombre de tokens de chaque réponse.

Considérations de sécurité et de confidentialité

Quand vous envoyez des données utilisateur à une API LLM, vous confiez ces données à un tiers. Consultez les politiques de rétention des données du fournisseur. Évitez d'envoyer des informations sensibles comme des mots de passe ou des identifiants personnels. Si vous devez le faire, envisagez des modèles auto-hébergés ou des fournisseurs offrant de solides garanties de confidentialité. Et n'exposez jamais votre clé API dans du code côté client ; passez toujours par un proxy sur votre backend.

FAQ

Quelle est la différence entre une chat completion et une completion classique ?

Les chat completions sont conçues pour les interfaces conversationnelles. Elles acceptent une liste de messages avec des rôles, ce qui permet au modèle de maintenir le contexte. Les completions classiques prennent une simple chaîne de prompt et sont moins adaptées aux dialogues multi-tours.

Comment choisir le bon modèle ?

Commencez par un modèle plus petit et moins cher pour le prototypage. Si vous avez besoin d'un meilleur raisonnement ou d'un contexte plus long, passez à un modèle plus gros. Testez les deux sur votre tâche spécifique pour trouver le meilleur compromis coût-performance.

Puis-je utiliser plusieurs fournisseurs de LLM dans une même application ?

Oui. Beaucoup de développeurs abstraient les appels API derrière une interface et changent de fournisseur selon le coût, la latence ou les fonctionnalités. Des bibliothèques comme LiteLLM ou LangChain peuvent aider à unifier différentes API.

Prochaines étapes

Maintenant que vous savez faire un appel de base, expérimentez avec les prompts système pour orienter le comportement du modèle. Essayez le streaming pour améliorer l'expérience utilisateur. Et gardez toujours un œil sur la consommation de tokens. Au fur et à mesure de votre développement, vous pourriez avoir besoin de formater les réponses JSON du modèle pour un traitement ultérieur. Pour cela, un formateur JSON peut vous aider à valider et à embellir la sortie rapidement.