Aller au contenu principal

Anatomie d'un system prompt efficace

Anatomie d’un system prompt efficace

Le system prompt est le premier message que le modèle reçoit avant toute interaction avec l’utilisateur. C’est votre levier principal pour contrôler le comportement, le ton et les capacités de votre application IA. Comprendre sa structure vous permettra de créer des assistants fiables et prévisibles.

Le rôle du system prompt

Avec la Responses API d’OpenAI ou l’API d’Anthropic, le system prompt se distingue du message utilisateur par son rôle (role: "system" ou role: "developer"). Le modèle lui accorde une priorité supérieure aux instructions de l’utilisateur, ce qui en fait l’endroit idéal pour définir les règles immuables de votre application.

from openai import OpenAI

client = OpenAI()

response = client.responses.create(
    model="gpt-5.4",
    instructions="Tu es un assistant juridique spécialisé en droit français. "
                 "Réponds toujours en français. "
                 "Ne donne jamais de conseil juridique définitif, "
                 "recommande toujours de consulter un avocat.",
    input="Puis-je licencier un salarié en arrêt maladie ?"
)
print(response.output_text)

Les cinq composants d’un system prompt

Un system prompt efficace se décompose en cinq blocs distincts :

1. Identité et rôle

Définissez qui est l’assistant, son domaine d’expertise et ses limites. Soyez spécifique : « Tu es un expert en sécurité informatique spécialisé en tests de pénétration web » est bien plus efficace que « Tu es un assistant utile ».

2. Règles de comportement

Listez les contraintes explicites : langue de réponse, format attendu, sujets interdits, niveau de formalité. Utilisez des formulations impératives claires.

3. Contexte métier

Fournissez les informations de référence dont le modèle a besoin : documentation produit, glossaire, procédures internes. Ce bloc peut être dynamique et injecté à chaque requête.

4. Format de sortie

Spécifiez la structure attendue des réponses : Markdown, JSON, listes à puces, longueur maximale. Plus vous êtes précis, plus le modèle sera cohérent.

5. Exemples (few-shot)

Incluez deux ou trois exemples de paires question/réponse idéales. C’est le moyen le plus efficace de montrer au modèle exactement ce que vous attendez.

Exemple complet structuré

system_prompt = """
# Identité
Tu es CodeReviewer, un assistant de revue de code Python.

# Règles
- Réponds toujours en français avec vouvoiement
- Analyse uniquement du code Python
- Note chaque extrait sur 10 avec justification
- Signale les failles de sécurité en priorité

# Format de sortie
Pour chaque revue, utilise cette structure :
## Note : X/10
## Points positifs
- ...
## Points à améliorer
- ...
## Failles de sécurité
- ... (ou "Aucune détectée")

# Exemple
Entrée : `eval(user_input)`
Réponse :
## Note : 2/10
## Points positifs
- Code concis
## Points à améliorer
- Utiliser ast.literal_eval() ou un parser dédié
## Failles de sécurité
- Injection de code arbitraire via eval()
"""

Erreurs courantes à éviter

  • Prompt trop vague : « Sois utile et précis » ne donne aucune direction concrète au modèle
  • Instructions contradictoires : « Sois concis » et « Donne des explications détaillées » dans le même prompt
  • Pas d’exemples : le modèle interprète vos instructions à sa façon sans exemples concrets
  • Prompt trop long sans structure : un bloc de texte monolithique est moins efficace que des sections clairement délimitées avec des titres Markdown

Mise en pratique

Écrivez un system prompt pour un assistant de support technique qui :

  1. Se présente comme « TechBot » spécialisé dans le dépannage réseau
  2. Répond en français, avec vouvoiement
  3. Pose des questions de diagnostic avant de proposer des solutions
  4. Formate ses réponses avec des étapes numérotées
  5. Refuse les questions hors de son domaine

Testez-le avec la Responses API en envoyant plusieurs questions variées pour vérifier que les contraintes sont respectées.

Points clés à retenir

  • Le system prompt définit le cadre de fonctionnement de votre assistant
  • Structurez-le en cinq blocs : identité, règles, contexte, format, exemples
  • Utilisez des formulations impératives et non ambiguës
  • Incluez toujours des exemples concrets (few-shot)
  • Testez avec des cas limites pour vérifier la robustesse