Texte et idées / ANALYSE PRATIQUE
ChatGPT : vérifier une règle de remise aux montants limites
Le seuil inclut exactement 1000.00, la livraison est exclue de la base et le demi-kopeck de remise met l'arrondi à l'épreuve. Examinons sept cas courts.

Un tableau soigné doit s'appuyer sur un calcul vérifiable
Un client a ajouté au panier des articles pour 1200 roubles, mais aucune remise ne s'applique. Une erreur ? Pas forcément : seuls des articles d'une valeur de 900 roubles participent peut-être à l'offre. Un autre piège se trouve exactement au seuil : « à partir de 1000 » devient facilement « plus de 1000 ». ChatGPT peut aider à préparer un ensemble de contrôles de ce type, à condition de ne pas devoir deviner les règles.
Prenons une règle de boutique fictive et sept cas d'entrée. Nous obtiendrons une petite table de décision pour un responsable produit ou un testeur. Les montants et les conditions ci-dessous ont été inventés pour l'exercice ; ils ne décrivent pas une offre en cours. Il faudra comparer la réponse du modèle à un calcul effectué séparément.
Fixez la base, le seuil et le moment de l'arrondi
Séparez d'abord les articles concernés par l'offre des autres articles et de la livraison. Un seul champ « montant du panier » ne suffit pas ici. Notons A le montant des articles éligibles avant remise, B celui des autres articles et D les frais de livraison. Tous les montants saisis sont positifs ou nuls, avec deux chiffres après le point décimal.
Dans cet exemple, la remise vaut 10% de A si A est au moins égal à 1000.00. B et D ne contribuent pas à atteindre le seuil et ne bénéficient eux-mêmes d'aucune remise. Arrondissons le montant de la remise une seule fois à deux décimales : exactement un demi-kopeck s'arrondit vers le haut. Calculons ensuite le total : A - remise + B + D. Cet arrondi a été choisi pour l'exemple ; utilisez la méthode approuvée pour votre propre système.
La description d'origine contient aussi cette phrase : « La remise ne se cumule pas avec le coupon ». Elle interdit leur utilisation conjointe, mais ne choisit pas lequel conserver. L'exemple ne précise pas non plus les paramètres du coupon. Tant que sa priorité, sa valeur et ses conditions d'utilisation restent inconnues, ce cas n'a pas de total unique. Ne demandez pas au modèle d'inventer lui-même cette partie de la politique.
EXEMPLE DE PROMPT
CONDITIONS DE L'EXERCICE A - articles éligibles avant remise ; B - autres articles ; D - livraison. Les montants sont positifs ou nuls, avec au plus deux décimales. Si A >= 1000.00, remise = A * 0.10, sinon 0. B et D ne comptent pas pour le seuil. Arrondir la remise une seule fois à deux décimales ; exactement un demi-kopeck s'arrondit vers le haut. Total = A - remise + B + D. La remise ne se cumule pas avec le coupon ; la priorité, la valeur et les conditions du coupon ne sont pas précisées.
Demandez des cas autour du seuil, pas des montants au hasard
La documentation officielle d'OpenAI recommande de fournir le contexte utile, de préciser le format du résultat et de signaler explicitement les informations manquantes. Ici, cela revient à joindre la règle complète, à distinguer les champs d'entrée et à demander une formule vérifiable, les valeurs qui y sont substituées et le total. « Vérifie la remise » ne définit ni la base ni le sens de « à partir de ».
Joignez les conditions du bloc précédent au prompt ci-dessous. K1, K2 et K3 diffèrent d'un kopeck autour du seuil. K4 vérifie que d'autres montants ne se sont pas glissés dans la base. K5 conserve les mêmes paiements supplémentaires une fois le seuil atteint. K6 sert à vérifier le demi-kopeck, K7 la priorité non tranchée. Ces cas ont été choisis à l'avance ; ce ne sont pas des réponses inventées de ChatGPT.
EXEMPLE DE PROMPT
À partir des conditions de l'exercice ci-dessus, construis un tableau : cas | motif de la remise | remise avant arrondi | remise arrondie | formule avec valeurs substituées | total | question. N'ajoute aucune règle. Pour le cas avec un coupon actif et une priorité non définie, ne choisis pas d'option et ne donne pas de total unique ; demande la priorité, la valeur et les conditions du coupon. Le point décimal sépare les kopecks. K1: A=999.99, B=0, D=0, aucun coupon. K2: A=1000.00, B=0, D=0, aucun coupon. K3: A=1000.01, B=0, D=0, aucun coupon. K4: A=900.00, B=300.00, D=200.00, aucun coupon. K5: A=1000.00, B=300.00, D=200.00, aucun coupon. K6: A=1000.05, B=0, D=0, aucun coupon. K7: A=1000.00, B=0, D=0, coupon actif.
Calculez les valeurs de contrôle séparément
Ne demandez pas au même modèle de certifier son propre tableau en prenant cela pour une vérification indépendante. Les valeurs ci-dessous ont été calculées selon la règle énoncée. Vérifiez-les à la main, avec une calculatrice à arithmétique décimale ou dans une feuille de calcul dont l'arrondi est défini explicitement. La formule et la raison d'appliquer la remise comptent toutes les deux.
K1 : A est inférieur à 1000.00, donc la remise est de 0 et le total de 999.99. K2 : le seuil est inclus dans la condition, la remise est de 100.00 et le total de 900.00. K3 : la remise vaut 100.001 avant arrondi, 100.00 après arrondi et le total est de 900.01.
K4 : remise de 0, total de 900.00 + 300.00 + 200.00 = 1400.00. Le montant global dépasse le seuil, mais A reste égal à 900.00. K5 : remise de 100.00, total de 1000.00 - 100.00 + 300.00 + 200.00 = 1400.00. Le même total pour K4 et K5 ne rend pas les cas équivalents : le motif d'application et la composition du paiement diffèrent.
K6 : 1000.05 * 0.10 = 100.005. Selon notre règle, la remise est arrondie à 100.01 et le total est de 900.04. Une valeur de 900.05 indique un autre calcul, par exemple une remise arrondie vers le bas à 100.00. Vérifiez ce montant intermédiaire avant de modifier tout le prompt.
K7 : la question reste ouverte. Il faut savoir qui choisit entre le coupon et la remise, selon quelle règle, ainsi que la valeur et les conditions d'utilisation du coupon lui-même. Écrire « total de 900.00 » sans cette décision ajouterait silencieusement une condition.

Corrigez l'écart précis
Si K2 n'a pas de remise, vérifiez l'opérateur de comparaison. Si une remise apparaît dans K4, le modèle a utilisé le montant global à la place de A. Si seul K6 diffère, vérifiez d'abord l'arrondi. Ce diagnostic indique quelle partie du prompt préciser ; demander simplement « plus d'attention » ne désigne pas l'erreur.
Pour corriger un calcul, il suffit de demander la formule et les valeurs qui y sont substituées. De longues explications sur la façon dont le modèle est arrivé à sa réponse ne sont pas nécessaires. Après la correction, vérifiez les sept lignes : demander de préserver le reste ne garantit pas que les autres valeurs n'auront pas changé.
EXEMPLE DE PROMPT
Corrige uniquement K6 selon la règle d'origine. Base A=1000.05, taux de 10%. Montre le produit avant arrondi, la remise arrondie et le total. Arrondis exactement un demi-kopeck vers le haut ; effectue un seul arrondi sur la remise globale. Ne modifie pas les conditions et ne décide pas à la place du responsable de la règle du coupon dans K7. Énumère ensuite les identifiants des autres lignes restées inchangées.
Complétez les cas avec les conditions de votre système
La règle de l'exercice ne prévoit ni retours, ni devises multiples, ni remises par ligne. Si votre système comporte ces conditions, ajoutez-les à partir de la description approuvée et créez des cas distincts pour chacune. N'élargissez pas la tâche avec une liste au hasard de toutes les promotions possibles : commencez par déterminer la règle à vérifier.
Soyez particulièrement attentif lorsque vous transposez le calcul dans du code ou une feuille de calcul. Les fonctions d'arrondi et la représentation binaire des fractions peuvent se comporter différemment sur les valeurs exactement à mi-chemin. Comparez le réglage de l'outil choisi à la règle retenue et conservez K6 comme contrôle distinct. Une formule recopiée en toutes lettres ne prouve pas que l'implémentation calcule de la même façon.
Transmettez le tableau avec la question encore ouverte
Conservez pour le développeur les conditions d'origine, les champs d'entrée, les valeurs de contrôle et une question distincte sur le coupon. Les six cas déterminés peuvent servir de base aux tests. Pour le septième, il faut décider de la priorité et préciser les paramètres du coupon si c'est lui qui est retenu ; on pourra alors seulement écrire le résultat attendu.
Quand le seuil, la base ou l'arrondi change, recalculez les valeurs de contrôle avant de relancer le prompt. ChatGPT aide à organiser l'analyse et à repérer une contradiction, mais la référence doit rester distincte de sa réponse. Vous pourrez ainsi distinguer une règle modifiée d'une nouvelle erreur de calcul.
