درس 1 — Anatomie d'un bon prompt

Les cinq composants d'un prompt

30min

هذا المحتوى غير مترجم بعد. تُعرض النسخة الأصلية.

Le modèle ne lit pas dans vos pensées

Un LLM ne connaît ni votre entreprise, ni votre client, ni ce que vous entendez par « court ». Tout ce qui n'est pas écrit dans le prompt est deviné, et deviner, c'est varier d'un appel à l'autre. Le test le plus simple : un collègue brillant, qui arrive aujourd'hui, comprendrait-il la demande sans vous poser de question ?

flowchart TD
  R["Rôle : qui parle ?"] --> P["Prompt complet"]
  C["Contexte : quelle situation ?"] --> P
  T["Tâche : que faire exactement ?"] --> P
  F["Format : quelle forme de sortie ?"] --> P
  E["Exemples : à quoi ressemble le bon résultat ?"] --> P
  P --> S["Sortie prévisible"]
ComposantQuestion à laquelle il répondExemple
RôleAvec quelle expertise et quel ton ?« Tu es conseiller du service client d'une boutique de vélos. »
ContexteQue faut-il savoir pour bien répondre ?Politique de retour, profil du client, historique de la conversation
TâcheQuelle action précise, avec quels critères de réussite ?« Rédige une réponse qui propose un échange ou un avoir. »
FormatQuelle forme, quelle longueur, quelle langue ?« 3 phrases maximum, vouvoiement, pas de liste. »
ExemplesÀ quoi ressemble une bonne réponse ?Une ou deux réponses modèles

Avant / après

Avant (vague)Après (structuré)
« Écris un mail pour le client mécontent. »« Tu es responsable du service client d'une boutique en ligne de vélos. Contexte : le client a reçu un vélo avec la roue voilée ; notre politique permet un échange sous 30 jours. Tâche : rédige un mail d'excuse qui propose l'échange et un bon d'enlèvement gratuit. Format : 120 mots maximum, vouvoiement, signature « L'équipe Service client ». »
« Résume ce document. »« Résume ce compte rendu de réunion pour un directeur qui n'y était pas. Garde uniquement les décisions et les actions (qui, quoi, quand). Format : liste à puces, 8 lignes maximum. »
« Fais un post LinkedIn sur notre nouveau produit. »« Rôle : rédacteur B2B. Public : responsables logistique de PME. Tâche : annoncer le lancement de notre module de suivi de colis en mettant en avant le gain de temps. Format : 5 lignes, une question finale pour susciter des commentaires, aucun emoji. »

Un prompt produit des réponses de longueur très variable d'un appel à l'autre. Quel composant manque le plus probablement ?

Instructions claires : être précis sans être bavard

Trois règles couvrent l'essentiel :

  1. Dire le pourquoi. « Réponds sans jargon, car le lecteur est un particulier » aide le modèle à généraliser à des cas que vous n'avez pas prévus.
  2. Numéroter les étapes quand l'ordre compte.
  3. Définir les mots flous : « court » = 3 phrases ; « urgent » = livraison prévue dans moins de 24 h.
Formulation floueFormulation précise
« Sois professionnel. »« Vouvoiement, pas d'emoji, pas d'humour. »
« Donne les points importants. »« Donne les 3 risques principaux, chacun en une phrase. »
« Si c'est grave, préviens. »« Si le client mentionne une blessure ou un avocat, réponds uniquement : ESCALADE. »

Quelles reformulations rendent la consigne « réponds rapidement au client » plus précise ? (plusieurs réponses)

Appeler un modèle depuis Python (sans clé en dur)

Le même prompt peut être envoyé à Claude ou à Gemini. La clé d'API vient toujours d'une variable d'environnement, et le nom du modèle aussi : vous changez de modèle sans toucher au code.

llm.py
import os

def appeler(system: str, user: str, max_tokens: int = 800) -> str:
    """Appel générique : LLM_PROVIDER=claude ou gemini, LLM_MODEL=<nom du modèle>."""
    provider = os.environ.get("LLM_PROVIDER", "claude")
    model = os.environ["LLM_MODEL"]
    if provider == "claude":
        import anthropic  # lit ANTHROPIC_API_KEY dans l'environnement
        r = anthropic.Anthropic().messages.create(
            model=model, max_tokens=max_tokens, system=system,
            messages=[{"role": "user", "content": user}],
        )
        return r.content[0].text
    from google import genai  # lit GEMINI_API_KEY (ou GOOGLE_API_KEY)
    from google.genai import types
    r = genai.Client().models.generate_content(
        model=model, contents=user,
        config=types.GenerateContentConfig(system_instruction=system, max_output_tokens=max_tokens),
    )
    return r.text
export LLM_PROVIDER=claude
export LLM_MODEL="<nom du modèle, voir la documentation du fournisseur>"
export ANTHROPIC_API_KEY="..."   # à mettre dans un .env ignoré par git, jamais dans le code

Exercice

Réécrivez ce prompt en faisant apparaître les cinq composants :

« Réponds à ce client qui demande où est sa commande. »

Informations disponibles : boutique de cosmétiques en ligne, commande n° 4512 expédiée hier, livraison en 48 à 72 h, lien de suivi fourni par le transporteur.

Voir la solution
[Rôle] Tu es conseillère du service client d'une boutique en ligne de cosmétiques. Ton ton est chaleureux et professionnel.

[Contexte] La commande n° 4512 du client a été expédiée hier. Le délai de livraison habituel est de 48 à 72 h. Lien de suivi : {lien_suivi}.

[Tâche] Réponds au message du client : rassure-le, donne la date de livraison estimée et le lien de suivi. Ne promets pas de date précise : le délai dépend du transporteur.

[Format] 3 phrases maximum, vouvoiement, en français, signature « L'équipe Service client ».

[Exemple de ton] « Bonne nouvelle : votre commande est en route ! »

Points clés : la tâche dit ce qu'il ne faut pas promettre (et pourquoi), le format est vérifiable, la variable {lien_suivi} prépare le passage au gabarit (module 3).

Je sais faire

  • Citer les cinq composants d'un prompt et le rôle de chacun.
  • Repérer le composant manquant dans un prompt vague.
  • Remplacer un mot flou par une contrainte vérifiable.
  • Appeler Claude ou Gemini depuis Python avec la clé en variable d'environnement.
التالي