Intelligence Artificielle · Guide pratique

IA & Prompting

Comprendre comment fonctionnent les LLMs, maîtriser l'art du prompt, exploiter l'IA efficacement pour coder, rédiger et analyser — et savoir quand ne pas lui faire confiance.

Comment fonctionne un LLM

🧠

Un LLM (Large Language Model) est un modèle de réseau de neurones entraîné sur d'énormes corpus de texte pour prédire quel token (morceau de mot) vient après un autre. Il ne "comprend" pas au sens humain — il produit le texte le plus probable étant donné ce qu'il a vu à l'entraînement et le contexte donné.

ÉtapeCe qui se passe
TokenisationTon texte est découpé en tokens (~¾ d'un mot en moyenne)
EmbeddingChaque token est converti en vecteur numérique dans un espace de haute dimension
AttentionLe mécanisme Transformer calcule les relations entre tous les tokens du contexte
PrédictionLe modèle génère une distribution de probabilité sur le prochain token
SamplingUn token est tiré selon la température (créativité) et affiché
🌡️

Température — paramètre qui contrôle la "créativité" de la réponse. Proche de 0 : réponses déterministes et factuelles. Proche de 1 : réponses variées et créatives. Pour du code ou des faits, une température basse est préférable. Pour de la fiction, une température haute donne plus de variété.

📏

Fenêtre de contexte — un LLM ne lit pas "toute l'internet" à chaque question. Il ne voit que ce qui est dans sa fenêtre de contexte (la conversation en cours + l'éventuel system prompt). Au-delà de cette limite, il "oublie" le début de la conversation. Les modèles récents ont des fenêtres de 100 000 à 1 million de tokens.

⚠️

Un LLM ne "sait" pas — il prédit. Il peut produire du texte très convaincant et totalement faux. C'est la source des hallucinations (voir section 9).

🔧

Fine-tuning & RLHF — les LLMs bruts sont ensuite ajustés par renforcement avec feedback humain (RLHF) pour être utiles, inoffensifs et honnêtes. C'est ce qui transforme un "prédicteur de token" en assistant conversationnel. Le system prompt (instructions invisibles définies par le service) oriente aussi fortement le comportement.

🔍

RAG (Retrieval-Augmented Generation) — technique qui injecte des documents récupérés (base de connaissance, web…) dans le contexte avant que le LLM réponde. Permet de contourner la date de coupure et de réduire les hallucinations sur des domaines précis. C'est ce que font les modes "web search" de Claude, ChatGPT et Perplexity.

Modèles disponibles

Claude
Anthropic · claude.ai
Sonnet 4.5Opus 4Haiku
Excellent pour le raisonnement long, le code, l'analyse de documents et les tâches qui exigent nuance et précision. Connu pour son honnêteté et ses réponses calibrées.
✦ Code · Analyse · Rédaction longue
ChatGPT
OpenAI · chatgpt.com
GPT-4oo1o3
Le plus utilisé mondialement. Très polyvalent, bon écosystème de plugins. Les modèles "o" sont orientés raisonnement avec "chain of thought" interne.
✦ Usage général · Plugins · Images (DALL·E)
Gemini
Google · gemini.google.com
2.0 Flash2.5 Pro
Intégré à l'écosystème Google (Docs, Drive, Gmail). Fenêtre de contexte très longue (1M tokens). Excellent pour les tâches liées à la recherche web et aux documents longs.
✦ Google Workspace · Documents longs
Llama / Mistral
Meta / Mistral · Open source
Llama 3.3Mistral LargeLocal
Modèles open source utilisables localement (via Ollama) ou via API. Llama est de Meta, Mistral est français. Aucune donnée envoyée à un cloud.
✦ Confidentialité · Déploiement local
Copilot
Microsoft / GitHub · copilot.microsoft.com
GPT-4oClaudeVS Code
✦ Code en IDE · Intégration Microsoft 365
Intégré à VS Code, Visual Studio et Microsoft 365. Complétion de code en temps réel, chat dans l'éditeur, explication de code.
Perplexity
Perplexity AI · perplexity.ai
Web searchCitations
Moteur de recherche augmenté par IA. Toujours connecté au web, cite ses sources. Idéal pour les questions factuelles récentes qui nécessitent vérification.
✦ Recherche · Actualité · Sources citées
💡

Il n'existe pas un modèle "meilleur dans tous les cas". Le choix dépend de la tâche : Claude pour l'analyse et le code long, ChatGPT pour l'usage général, Gemini pour Google Workspace, Perplexity pour la recherche factuelle récente, Copilot dans l'IDE. Tester sur sa propre tâche reste la meilleure approche.

Anatomie d'un bon prompt

Un bon prompt n'est pas magique — c'est simplement de la communication précise. Les mêmes informations que tu donnerais à un collègue humain compétent.

RÔLE
Qui doit-il être ?
Donner un rôle ou une expertise oriente le ton, le vocabulaire et le niveau de détail de la réponse.
"Tu es un développeur Python senior spécialisé en optimisation de performance."
CONTEXTE
Quelle est la situation ?
L'IA n'a pas accès à ton projet, ton niveau, ton audience. Tout ce qu'elle ne sait pas, elle l'invente.
"Je travaille sur une API Flask qui traite 10 000 requêtes/seconde. J'ai un problème de latence sur..."
TÂCHE
Que doit-il faire exactement ?
Un verbe d'action précis : explique, génère, corrige, résume, compare, liste, traduis…
"Identifie les trois goulots d'étranglement principaux et propose une solution pour chacun."
FORMAT
Quel format pour la réponse ?
Préciser la longueur, la structure, la langue, le style. L'IA s'adapte si on lui demande.
"Réponds en français avec une liste numérotée. Maximum 200 mots par point."
CONTRAINTES
Ce qu'il ne faut pas faire
Les exclusions évitent les réponses hors-sujet. "Sans utiliser X", "n'inclus pas Y".
"Sans modifier l'interface publique de la classe. Pas de bibliothèques externes."

Comparaison prompt faible vs prompt fort :

✗ Prompt faible
Explique la récursivité. → Réponse générique, niveau inconnu, format indéfini
✓ Prompt fort
Tu es un enseignant en informatique. Explique la récursivité à un étudiant de 1ère année qui connaît les fonctions Python mais pas encore les piles. Utilise une analogie concrète puis un exemple de code commenté. Maximum 15 lignes. → Niveau ciblé, analogie demandée, code, limite
✗ Prompt faible
Mon code ne marche pas, aide-moi. → Impossible à traiter sans informations
✓ Prompt fort
Ce code Python lève une KeyError à la ligne 12. Voici le code complet : [code]. Voici le message d'erreur : [erreur]. Identifie la cause et propose une correction avec explication. → Contexte complet, tâche précise
🔄

Le prompt est une conversation, pas une commande. Si la première réponse n'est pas satisfaisante : reformuler, préciser, demander "pourquoi tu as fait ce choix ?", ou dire "c'est trop vague, va plus loin sur le point 2".

Techniques avancées de prompting

Zero-shot
Zéro exemple
Donner la tâche directement sans exemple. Fonctionne bien pour les tâches courantes que le modèle connaît.
"Traduis ce texte en anglais : [texte]"
Few-shot
Quelques exemples
Fournir 2 à 5 exemples entrée→sortie avant la vraie question. Très efficace pour les tâches avec un format précis ou inhabituel.
Entrée: "chat" → Sortie: "ANIMAL"
Entrée: "voiture" → Sortie: "VÉHICULE"
Entrée: "Python" → Sortie: ?
Chain-of-Thought
Raisonnement étape par étape
Demander explicitement de raisonner étape par étape avant de répondre. Réduit fortement les erreurs sur les problèmes complexes.
"Résous ce problème étape par étape, en expliquant chaque raisonnement avant de donner la réponse finale."
Role Prompting
Attribution de rôle
Assigner un persona précis. Plus le rôle est spécifique et contextualisé, plus la réponse est pertinente.
"Tu es un architecte logiciel avec 15 ans d'expérience en systèmes distribués. Tu dois revoir cette architecture..."
Self-Consistency
Auto-vérification
Demander à l'IA de résoudre plusieurs fois, puis de choisir la réponse la plus cohérente. Ou lui demander de critiquer sa propre réponse.
"Maintenant relis ta réponse et identifie les points faibles ou les erreurs potentielles."
Decomposition
Décomposition de tâche
Découper une tâche complexe en sous-tâches séquentielles. Chaque étape doit être validée avant de passer à la suivante.
"D'abord liste les étapes nécessaires. Ensuite, pour chaque étape, donne le code correspondant."
Persona Contraire
Devil's Advocate
Demander à l'IA d'argumenter contre sa propre réponse ou de trouver les failles d'un plan.
"Tu viens de proposer cette architecture. Maintenant joue l'avocat du diable : quels sont les 3 risques majeurs ?"
Contextual Priming
Amorçage contextuel
Fournir des documents de référence, du code existant, des exemples du style voulu. "Voici comment j'écris, imite ce style."
"Voici 3 fonctions de mon code [code]. Écris une 4ème fonction dans le même style pour faire X."
Chain-of-Thought — exemple complet
Prompt :
Un train part de Paris à 08h00 à 200 km/h.
Un autre part de Lyon (410 km) à 09h00 à 250 km/h.
À quelle heure et à quelle distance de Paris se croisent-ils ?
Raisonne étape par étape avant de donner le résultat.

Réponse de l'IA (avec CoT) :
Étape 1 : À 09h00, le train de Paris a parcouru
          200 × 1 = 200 km. Distance restante = 410 - 200 = 210 km.
Étape 2 : Les deux trains se rapprochent à 200 + 250 = 450 km/h.
Étape 3 : Temps pour se croiser = 210 / 450 = 0.467h ≈ 28 min.
Étape 4 : Heure de croisement = 09h00 + 28 min = 09h28.
Étape 5 : Distance de Paris = 200 + 200×0.467 = 200 + 93 = 293 km.

Résultat : ils se croisent à 09h28, à 293 km de Paris.
Few-shot — formater une sortie précise
Prompt :
Classe ces éléments au format JSON. Exemples :

Input: "Alice, 28 ans, ingénieure"
Output: {"nom":"Alice","age":28,"metier":"ingénieure"}

Input: "Bob, 34 ans, médecin"
Output: {"nom":"Bob","age":34,"metier":"médecin"}

Maintenant classe :
Input: "Carl, 41 ans, architecte"
Output:

L'IA complète avec le même format exactement :
{"nom":"Carl","age":41,"metier":"architecte"}

Anti-patterns fréquents

✗ Le prompt "Google"
"récursivité python"→ Un moteur de recherche répond à ça. Un LLM a besoin de contexte, d'objectif et d'audience pour être utile.
✗ Trop de tâches à la fois
"Explique le design pattern Observer, donne un exemple en Python, compare avec le pattern Mediator, et dis-moi quand utiliser l'un ou l'autre."→ Décomposer en 3-4 prompts séquentiels donne de bien meilleurs résultats.
✗ Accepter sans vérifier
"Parfait merci !" → coller en production→ Toujours tester le code, vérifier les faits, relire la rédaction. L'IA peut se tromper avec confiance.
✗ Reformuler sans changer
"Non c'est pas ça, refais." (même contexte)→ Si la réponse est mauvaise, changer d'approche : plus de contexte, exemple concret, décomposer la tâche.
✓ Itérer intelligemment
"Ta réponse est trop générale. Je veux que tu te concentres uniquement sur [point 2], que tu approfondisses avec un exemple concret, et que tu limites à 5 lignes."→ Identifier ce qui manque, pas juste dire "refais".
✓ Séquencer les étapes
"Étape 1 : liste uniquement les étapes sans les détailler." → valider → "Étape 2 : pour l'étape 3 que tu as listée, donne le code complet."→ Vérifier avant d'avancer évite de tout refaire.
✓ Demander l'incertitude
"Pour chaque point de ta réponse, indique ton niveau de confiance (élevé / moyen / incertain) et signale ce que je devrais vérifier."→ Un bon LLM signale ses zones d'incertitude si on le lui demande.

Prompts pour coder

Générer du code
──────────────────────────────────────────
 GÉNÉRATION
──────────────────────────────────────────
Tu es un développeur Python expert.
Écris une fonction qui [description précise].

Contraintes :
- Utilise [bibliothèque X] version [Y]
- Gère les cas d'erreur suivants : [liste]
- Ajoute des docstrings au format Google
- Écris les type hints complets
- N'utilise pas de variables globales

Voici le contexte du code environnant :
[coller le code existant pertinent]
Déboguer une erreur
──────────────────────────────────────────
 DÉBOGAGE
──────────────────────────────────────────
Ce code Python produit l'erreur suivante.

Code complet :
[coller TOUT le code, pas juste la ligne]

Message d'erreur complet (copier-coller) :
[traceback complet]

Comportement attendu : [description]
Comportement observé : [description]

1. Explique la cause racine de l'erreur
2. Propose une correction
3. Explique comment éviter ce type d'erreur
Refactoring & revue de code
──────────────────────────────────────────
 REFACTORING
──────────────────────────────────────────
Voici du code Python fonctionnel mais qui
doit être amélioré :

[coller le code]

Objectifs de refactoring (par priorité) :
1. Lisibilité — noms de variables clairs
2. Respecter PEP 8 et les conventions Python
3. Réduire la duplication (DRY)
4. Améliorer la gestion des erreurs

Contrainte : ne pas changer le comportement
observable ni l'interface publique.
Explique chaque modification importante.

──────────────────────────────────────────
 REVUE DE CODE
──────────────────────────────────────────
Fais une revue de code de ce fichier comme
si tu étais un senior lors d'un code review.
Identifie les problèmes par catégorie :
- Bugs potentiels
- Problèmes de performance
- Mauvaises pratiques
- Manques de tests
Pour chaque problème : localise la ligne,
explique le risque, propose la correction.
Générer des tests unitaires
──────────────────────────────────────────
 TESTS
──────────────────────────────────────────
Génère des tests unitaires pytest complets
pour cette fonction Python :

[coller la fonction]

Couvre obligatoirement :
- Cas nominal (valeurs typiques)
- Valeurs limites (0, vide, None, max)
- Cas d'erreur (exceptions attendues)
- Au moins 8 tests distincts
Utilise des noms de test descriptifs.

Prompts pour rédiger

Rédiger un document structuré
──────────────────────────────────────────
 RÉDACTION D'UN RAPPORT
──────────────────────────────────────────
Rédige une introduction de rapport pour
le contexte suivant :

Sujet : [sujet précis]
Audience : [qui va le lire]
Niveau technique attendu : [débutant/expert]
Longueur visée : [nombre de mots]
Ton : [formel / académique / technique]

L'introduction doit inclure :
1. Contexte et problématique (2-3 phrases)
2. Objectifs du document
3. Plan annoncé (3 parties)

À ne pas inclure : remerciements, citations.
Améliorer un texte existant
──────────────────────────────────────────
 AMÉLIORATION DE TEXTE
──────────────────────────────────────────
Améliore ce texte en conservant
EXACTEMENT le sens et les idées.

Texte original :
[coller le texte]

Objectifs d'amélioration :
- Clarté : phrases plus directes
- Cohérence : transitions entre idées
- Niveau de langue : [cible]

Ne pas changer : la structure en [N] parties,
les exemples cités, le point de vue.
Résumer et extraire l'essentiel
──────────────────────────────────────────
 RÉSUMÉ STRUCTURÉ
──────────────────────────────────────────
Voici un document technique long :
[coller le document]

Produis un résumé structuré en 3 niveaux :

1. TL;DR — 3 phrases maximum, le strict
   essentiel pour quelqu'un qui n'a pas
   le temps de lire.

2. Points clés — 5 à 7 bullets, ce que
   quelqu'un doit retenir après lecture.

3. Questions ouvertes — 2-3 points qui
   méritent approfondissement ou qui ne
   sont pas résolus dans le document.
✍️

Pour la rédaction académique : toujours demander à l'IA de générer un premier jet, puis le retravailler soi-même. Utiliser l'IA pour structurer, reformuler et corriger — pas pour remplacer la réflexion. La valeur ajoutée humaine reste dans les idées, l'argumentation et le jugement critique.

⚠️

Les détecteurs de texte IA (GPTZero, Turnitin IA…) sont peu fiables et génèrent de nombreux faux positifs, y compris sur des textes humains. L'usage éthique de l'IA pour la rédaction dépend du contexte et des règles de l'établissement, pas du détecteur.

Prompts pour analyser des données

Analyser un CSV / tableau
──────────────────────────────────────────
 ANALYSE D'UN DATASET
──────────────────────────────────────────
Voici les 20 premières lignes d'un CSV de
ventes (copier-coller ou upload du fichier).

[données]

Effectue une analyse exploratoire :
1. Décris la structure (colonnes, types,
   valeurs manquantes visibles)
2. Identifie 3 tendances ou patterns
3. Signale les anomalies ou valeurs
   suspectes
4. Propose 3 visualisations pertinentes
   avec le code pandas/matplotlib pour
   chacune

──────────────────────────────────────────
 GÉNÉRER LE CODE D'ANALYSE
──────────────────────────────────────────
Voici le schéma de mon DataFrame pandas :
[coller df.info() ou df.dtypes]

Écris le code Python complet pour :
- Nettoyer les valeurs manquantes
- Créer un rapport groupby par [colonne]
- Exporter le résultat en Excel multi-feuilles
Suppose que le CSV est chargé dans df.
Interpréter des résultats
──────────────────────────────────────────
 INTERPRÉTATION
──────────────────────────────────────────
Voici les résultats d'une analyse de données :
[coller les chiffres, tableaux, graphiques]

Contexte : il s'agit de [description du
domaine et de l'objectif de l'analyse].

Interprète ces résultats pour un public
non-technique (direction, client) :
1. Que montrent ces chiffres en langage clair
2. Quelle est la conclusion principale
3. Quelle décision cela suggère-t-il
4. Quelles limites ou précautions mentionner

──────────────────────────────────────────
 FORMULES EXCEL / SQL
──────────────────────────────────────────
Écris la formule Excel pour [description].
Mon tableau s'appelle [nom], les colonnes
sont [A=..., B=..., C=...].
Explique la formule partie par partie.
📊

Pour l'analyse de données, Claude et ChatGPT peuvent générer du code Pandas/matplotlib directement exécutable. Claude.ai et ChatGPT Plus acceptent aussi l'upload de fichiers CSV/Excel et peuvent exécuter du code Python dans un sandbox pour produire des graphiques.

Limites & hallucinations

🚨

Une hallucination est une affirmation inventée par le LLM avec le même ton confiant qu'une réponse vraie. Le modèle ne "sait pas qu'il ne sait pas" — il génère ce qui est statistiquement probable, pas ce qui est vrai.

📚
Fausses citations
Auteurs réels, titres inventés, années fausses. Ne jamais citer une source IA sans vérifier qu'elle existe vraiment.
🔢
Calculs erronés
Les LLMs ne "calculent" pas — ils prédisent. Les chiffres précis, statistiques et calculs doivent toujours être vérifiés.
📅
Infos périmées
Chaque modèle a une date de coupure d'entraînement. Tout ce qui est après est inconnu ou extrapolé.
⚖️
Faux consensus
L'IA peut présenter une opinion ou une tendance comme un fait établi, ou omettre des nuances importantes.
💻
Code qui ne compile pas
Le code généré peut sembler correct syntaxiquement mais contenir des bugs logiques subtils. Toujours tester.
🌍
Infos locales inexactes
Législation, prix, horaires, adresses — tout ce qui est local ou récent doit être vérifié sur des sources officielles.

Domaines où faire confiance avec précaution :

Explication de concepts connus
✓✓
Génération de code courant
✓✓
Reformulation / résumé
✓✓
Brainstorming d'idées
✓✓
Faits historiques généraux
Citations et références
Statistiques précises
Actualité / événements récents
Conseil médical / juridique
🔍

Réflexe anti-hallucination : pour tout fait précis important, demander à l'IA de citer ses sources — si elle ne peut pas, c'est un signal. Utiliser Perplexity ou le mode web search de Claude/ChatGPT pour les informations récentes et factuelles.

🔒

Confidentialité : ne jamais envoyer à un LLM cloud des données personnelles identifiables, des mots de passe, du code source propriétaire ou des informations sensibles d'entreprise. Pour ces usages, préférer un modèle local (Ollama + Llama/Mistral) ou une instance enterprise avec confidentialité garantie.

Workflow recommandé

Workflow pour une tâche complexe
1. CADRER avant de promper
   → Qu'est-ce que je veux VRAIMENT obtenir ?
   → Quel format me sera utile ?
   → Quelle information l'IA n'a pas ?

2. PROMPT INITIAL structuré
   → Rôle + contexte + tâche + format + contraintes
   → Inclure le code/texte/données pertinents

3. ÉVALUER la première réponse
   → Est-ce que ça répond à ma question ?
   → Qu'est-ce qui manque ou est faux ?
   → Ne pas accepter si non satisfait

4. ITÉRER de façon ciblée
   → "Le point 2 est trop vague, développe"
   → "Pourquoi as-tu fait ce choix ?"
   → "Maintenant critique ta propre réponse"

5. VÉRIFIER le résultat
   → Tester le code
   → Vérifier les faits importants
   → Relire avec son propre jugement

6. RAFFINER si nécessaire
   → "Maintenant reformule pour [audience]"
   → "Simplifie la partie [X]"
Conversations longues — bonnes pratiques
# Commencer une nouvelle conversation pour chaque projet
→ Évite la confusion entre contextes différents

# Résumer le contexte si la conversation est longue
"Pour rappel du contexte : nous travaillons sur
[X], les décisions prises jusqu'ici sont [Y],
la contrainte principale est [Z]. Maintenant..."

# Utiliser des titres clairs
"=== NOUVELLE TÂCHE : Refactoring ===" pour
structurer une conversation multi-tâches

# Sauvegarder les bons prompts
→ Conserver un fichier de prompts réutilisables
→ Template par type de tâche (debug, review...)

# Nommer les artefacts
"La fonction que tu as générée précédemment
(appelons-la generate_report), modifie-la pour..."
→ Évite les ambiguïtés dans les références
🤝

L'IA comme amplificateur, pas substitut. Les meilleurs résultats viennent de la combinaison : ton expertise du domaine + la vitesse de l'IA. L'IA génère, tu juges. L'IA suggère, tu décides. L'IA rédige un premier jet, tu apportes la substance.

Cheat Sheet Prompting

🏗️ Anatomie d'un prompt

Rôle"Tu es un expert en..."
ContexteProjet, niveau, audience
TâcheVerbe précis + objectif
FormatLongueur, structure, langue
Contraintes"Sans X", "Ne pas Y"
ExemplesEntrée→Sortie attendue

⚡ Techniques clés

Zero-shotTâche directe, sans exemple
Few-shot2-5 exemples avant la tâche
Chain-of-Thought"Raisonne étape par étape"
Self-check"Critique ta réponse"
DecomposeÉtapes séquentielles
PrimingFournir du contexte/style

✓ Bonnes pratiques

Coller le code/texte complet
Spécifier le format de sortie
Itérer de façon ciblée
Tester tout code généré
Vérifier les faits importants
Séquencer les tâches complexes

✗ Anti-patterns

Prompt trop vague
5 tâches en 1 prompt
Accepter sans vérifier
Données sensibles en clair
Citer sans vérifier source
"Refais" sans plus de contexte
Template universel à adapter
Tu es [rôle + expertise].

Contexte :
[Décrire la situation, le projet, les contraintes
 existantes, la stack technique si pertinent]

Tâche :
[Verbe d'action précis + ce qui est attendu]

Format de la réponse :
[Structure, longueur, langue, niveau de détail]

Contraintes :
[Ce qu'il ne faut pas faire / utiliser]

Matériau de travail :
[Code / texte / données à traiter]
Formules de relance utiles
# Approfondir
"Développe le point [N] avec un exemple concret."
"Va plus loin sur [aspect spécifique]."

# Simplifier
"Réexplique comme si je n'avais aucune
connaissance en [domaine]."

# Changer de format
"Reformule sous forme de tableau comparatif."
"Donne-moi seulement le code, sans explication."

# Vérification
"Es-tu certain de [affirmation] ? Si tu as
un doute, dis-le explicitement."
"Quelles informations devrais-je vérifier
dans ta réponse ?"

# Itération créative
"Propose 3 approches alternatives."
"Quelle serait l'approche la plus simple ?
 La plus robuste ? La plus rapide ?"