Tous les articles
Automatisation 11 min de lecture

Classification des tickets support par quatre modèles d'IA : de 84,8 à 90,7 % d'intentions justes sur 270 messages, et ce que leur confiance dit des erreurs

Quatre modèles ont rangé 270 messages de support client dans 27 intentions. gpt-4o en a rangé 90,7 % correctement et claude-haiku-4.5 84,8 %. gemini-2.5-flash-lite a rendu 16 de ses 26 erreurs avec une confiance de 90 ou plus, gpt-4o-mini aucune.

Composition geometrique abstraite en deux tons, illustration de couverture
Publié le
06 octobre 2026
Rubrique
Automatisation

Nous avons donné à quatre modèles de langue 270 messages de support client et une liste fermée de 27 intentions, en demandant à chaque modèle de choisir une intention par message et de dire à quel point il en était sûr. openai/gpt-4o a rangé 90,7 % des messages dans la bonne intention, google/gemini-2.5-flash-lite 90,4 %, openai/gpt-4o-mini 87,8 % et anthropic/claude-haiku-4.5 84,8 %. Les 1 080 appels ont coûté 0,4197 USD au total, montant lu dans la réponse de l'API de chaque appel.

Pour une équipe qui trie ses tickets automatiquement, la confiance qu'un modèle attache à ses réponses fausses compte autant que sa justesse, parce qu'une règle de routage s'appuie sur ce nombre pour décider quels tickets une personne doit regarder. Les quatre modèles diffèrent beaucoup sur ce point. gemini-2.5-flash-lite a rendu 16 de ses 26 intentions fausses avec une confiance de 90 ou plus, et sa confiance médiane vaut 95 sur les réponses fausses comme sur les justes. gpt-4o-mini n'a jamais dépassé 85 sur une réponse fausse : un seuil à 90 aurait donc envoyé ses 33 erreurs à une personne, avec la moitié de tous les tickets.

Les résultats par modèle

Modèle Intention juste Catégorie juste Intentions fausses Fausses avec une confiance de 90 ou plus USD pour 1 000 tickets
openai/gpt-4o 245 / 270 (90,7 %) 262 / 270 (97,0 %) 25 11 0,9422
google/gemini-2.5-flash-lite 244 / 270 (90,4 %) 260 / 270 (96,3 %) 26 16 0,0451
openai/gpt-4o-mini 237 / 270 (87,8 %) 259 / 270 (95,9 %) 33 0 0,0566
anthropic/claude-haiku-4.5 229 / 270 (84,8 %) 239 / 270 (88,5 %) 41 5 0,5106

La catégorie est le niveau le plus grossier, les 11 groupes que définit le jeu de données (ORDER, REFUND, ACCOUNT, etc.), déduit de l'intention rendue par le modèle. Trois des quatre modèles restent au-dessus de 95 % à ce niveau, ce qui veut dire que la plupart de leurs erreurs laissent le ticket dans la bonne équipe et se trompent seulement de sous-file. claude-haiku-4.5 se comporte autrement : 31 de ses 41 erreurs sortent de la catégorie, et 26 d'entre elles vont vers l'une des deux intentions de contact génériques, contact_customer_service ou contact_human_agent. Dans un outil de support, ces tickets arriveraient dans une file générale au lieu de la file qui peut les traiter.

Les quatre modèles ont rendu un JSON valide, avec une intention prise dans la liste, sur les 270 messages : aucune réponse n'a dû être écartée, et aucun des 1 080 appels n'a eu besoin d'être rejoué.

Ce qu'un seuil de confiance aurait donné

Une façon courante de déployer ce genre de classement consiste à router automatiquement au-dessus d'un seuil de confiance et à envoyer le reste à une personne. Le tableau ci-dessous applique deux seuils aux réponses reçues. « Envoyés à une personne » compte les tickets sous le seuil, et « erreurs rattrapées » compte les intentions fausses parmi eux.

Modèle Seuil Envoyés à une personne Erreurs rattrapées Justesse de ce qui est routé automatiquement
openai/gpt-4o 80 18 (6,7 %) 8 / 25 93,3 %
openai/gpt-4o 90 78 (28,9 %) 14 / 25 94,3 %
google/gemini-2.5-flash-lite 80 10 (3,7 %) 6 / 26 92,3 %
google/gemini-2.5-flash-lite 90 21 (7,8 %) 10 / 26 93,6 %
openai/gpt-4o-mini 80 16 (5,9 %) 11 / 33 91,3 %
openai/gpt-4o-mini 90 135 (50,0 %) 33 / 33 100 %
anthropic/claude-haiku-4.5 80 60 (22,2 %) 27 / 41 93,3 %
anthropic/claude-haiku-4.5 90 143 (53,0 %) 36 / 41 96,1 %

Les valeurs de confiance écrites par les modèles sont grossières. gemini-2.5-flash-lite a répondu 95 sur 231 des 270 messages, et gpt-4o-mini a employé sept valeurs distinctes, dont 85 et 90 pour 226 réponses. Un seuil avance donc par paliers : le déplacer de cinq points peut faire passer la moitié des tickets d'un côté à l'autre, comme pour gpt-4o-mini entre 85 et 90.

Le modèle le moins juste, claude-haiku-4.5, est aussi celui dont la confiance sépare le mieux ses erreurs au seuil de 80. Sur les 26 erreurs qu'il a envoyées vers une intention de contact générique, 25 portent une confiance inférieure à 80, si bien qu'un seuil à ce niveau en confie la plupart à une personne.

Les confusions, et les étiquettes relues

Tous modèles confondus, les confusions les plus fréquentes portent sur des intentions voisines dans la liste.

Intention attendue Intention rendue Fois, quatre modèles ensemble
check_invoice get_invoice 13
review complaint 12
delivery_period track_order 11
place_order contact_customer_service 8
complaint contact_human_agent 7
switch_account edit_account 5

Certaines de ces confusions renseignent sur le jeu de données autant que sur les modèles. Avant de voir la moindre réponse, le protocole a fixé une règle : tout message sur lequel au moins trois des quatre modèles s'accordent sur une même intention, différente de l'étiquette, est relu et classé soit en étiquette discutable, soit en erreur des modèles. Douze messages ont rempli la condition. Nous avons jugé huit étiquettes discutables et quatre réponses erronées. Cette relecture a été faite par l'agent qui a conduit le test, sans annotateur humain.

Message (texte Bitext, en anglais) Étiquette Rendu par trois ou quatre modèles Notre lecture
I try to locate my invoice #00108 check_invoice get_invoice étiquette discutable
I have got to see when my package is going to arrive delivery_period track_order étiquette discutable
when am I obtaining a refund? get_refund track_refund étiquette discutable
I have problems with opening a {{Account Category}} account create_account registration_problems étiquette discutable
i try to leave some feedback about a service review complaint erreur des modèles
help me asking for compensations get_refund complaint erreur des modèles

Les chiffres du haut de cette page sont calculés contre les étiquettes du jeu lui-même, comme le protocole l'exigeait. Sans les huit messages dont l'étiquette a été jugée discutable, soit sur 262 messages, la justesse devient 93,5 % pour gpt-4o, 93,1 % pour gemini-2.5-flash-lite, 88,5 % pour gpt-4o-mini et 87,0 % pour claude-haiku-4.5.

La relecture change aussi la lecture des erreurs sûres d'elles. Huit des 16 erreurs à confiance élevée de gemini-2.5-flash-lite et sept des 11 de gpt-4o tombent sur ces huit messages. Sur les 262 autres, le nombre d'intentions fausses rendues avec une confiance de 90 ou plus vaut 8 pour gemini-2.5-flash-lite, 4 pour gpt-4o, 1 pour claude-haiku-4.5 et 0 pour gpt-4o-mini. Ces comptes viennent de resultats-bruts.json, filtré par les identifiants listés dans relecture-etiquettes.json.

Fautes de frappe et registre familier

Bitext marque chaque message de drapeaux de variation. Nous avons comparé les trois plus fréquents aux messages qui ne portent aucun des trois.

Messages gpt-4o gemini-2.5-flash-lite gpt-4o-mini claude-haiku-4.5
avec fautes de frappe (Z), 64 93,8 % 90,6 % 90,6 % 85,9 %
registre familier (Q), 104 94,2 % 94,2 % 91,3 % 86,5 %
style mots-clés (K), 23 100 % 91,3 % 91,3 % 100 %
aucun des trois, 120 85,0 % 86,7 % 84,2 % 81,7 %

Chaque modèle a classé les messages avec fautes ou en registre familier au moins aussi bien que les autres. Les drapeaux se recouvrent, puisqu'un message peut en porter plusieurs, et 23 messages en style mots-clés sont trop peu pour classer des modèles. Le tableau permet une seule affirmation : sur cet échantillon, les fautes de frappe et le registre familier n'ont pas fait baisser la justesse.

La méthode

Test conduit le 2026-09-30 par la chaîne de test automatisée de ce site : le corpus, les appels aux modèles et l'analyse sont des scripts, publiés plus bas pour que n'importe qui puisse les rejouer et contester le résultat. Etienne signe cet article et en répond.

C'est le neuvième test mesuré publié ici, et le premier sur le support client. Le protocole a été écrit avant le tirage de l'échantillon et avant tout appel de modèle.

  • Les messages. Le jeu de données de support client de Bitext, révision 430d1a89, 26 872 messages étiquetés en 27 intentions et 11 catégories, publié sous licence CDLA-Sharing-1.0. Son propre README le décrit comme hybride et synthétique : des textes naturels servent de graines, puis des variantes sont générées. Après suppression des doublons exacts de texte, il en reste 24 635, et nous avons tiré 10 messages par intention avec la graine 20260930, soit 270 messages. Les messages cités sur cette page sont des textes Bitext, en anglais.
  • Les modèles. openai/gpt-4o-mini, google/gemini-2.5-flash-lite, anthropic/claude-haiku-4.5 et openai/gpt-4o, appelés par OpenRouter. Ce sont les quatre mêmes que dans notre test de rapprochement entre facture et bon de commande, pour que les deux tests se lisent ensemble.
  • Les appels. Un appel par message et par modèle, 1 080 appels, température 0, budget de sortie de 300 jetons. Le passage a duré de 09:47:39 à 09:49:23 UTC.
  • Le coût. Lu dans le champ de coût de chaque réponse de l'API, jamais estimé depuis une grille tarifaire.
  • La notation. Une réponse est juste quand l'intention rendue est égale à l'étiquette Bitext. La catégorie se déduit de l'intention rendue.

La consigne, mot pour mot

Le bloc ci-dessous est la consigne envoyée aux quatre modèles, copiée depuis conduire-test.py. Elle est en anglais, comme les messages. Le premier %s reçoit les 27 intentions, une par ligne avec leur catégorie entre crochets, et le second reçoit le message du client.

python
CONSIGNE = """You are routing customer support messages for an online shop. Assign the message below to exactly one intent from this list (the category of each intent is given in brackets):

%s

Return ONLY a JSON object with exactly these keys:
- intent: string, one intent name copied exactly from the list
- confidence: integer from 0 to 100, how sure you are that this intent is correct

Customer message:
---
%s
---"""

Ce que ce test ne prouve pas

  • Les messages sont générés et courts. Chacun tient en une phrase en anglais, sans historique et avec une seule demande. De vrais tickets sont plus longs, mêlent plusieurs demandes et arrivent en fils de discussion.
  • La liste des intentions était donnée au modèle. Le test ne dit rien d'une situation où les files ne sont pas définies à l'avance.
  • L'urgence n'a pas été mesurée. L'intention écrite pour ce test le 2026-09-29 nommait la catégorie et l'urgence. Le jeu Bitext ne porte aucune étiquette d'urgence, et en écrire une nous-mêmes aurait fait de la vérité terrain notre propre opinion : l'urgence a donc été retirée dans le protocole, avant tout appel.
  • La confiance est un nombre que le modèle écrit. Ce n'est pas une probabilité calibrée, et le test mesure seulement si elle a séparé les réponses justes des fausses sur ces 270 messages.
  • Les champs de gabarit sont restés tels quels. Certains messages contiennent des marques comme {{Order Number}} ou {{Person Name}}, exactement comme dans le jeu de données.
  • Un appel par message, à température 0, et notre test du 2026-08-25 a établi que la température 0 ne garantit pas la répétabilité.
  • La relecture des étiquettes a été faite par l'agent qui a conduit le test. Les chiffres du haut de la page n'en dépendent pas.

Ce que nous en ferions

Le test appuie trois points pratiques pour une petite équipe qui veut trier ses tickets avec un modèle.

Le premier consiste à mesurer la confiance du modèle retenu sur un échantillon de vos propres tickets avant d'en faire une règle de routage. Sur les mêmes messages, un seuil à 90 a envoyé 7,8 % des tickets à une personne avec gemini-2.5-flash-lite et la moitié avec gpt-4o-mini, et la part des erreurs rattrapées a suivi le même ordre, 10 sur 26 contre 33 sur 33.

Le deuxième consiste à regarder où vont les erreurs autant que leur nombre. Trois modèles ont gardé la plupart de leurs erreurs dans la bonne catégorie, et claude-haiku-4.5 en a envoyé 26 vers les files de contact génériques. Cela a un coût pour une équipe dont la file générale n'est pas tenue par les mêmes personnes que les files spécialisées.

Le troisième consiste à relire votre propre liste d'intentions avant de changer de modèle. Huit des douze messages sur lesquels les modèles s'accordaient contre l'étiquette portaient une étiquette qu'une personne pourrait défendre dans les deux sens, surtout entre intentions qui se recouvrent, comme check_invoice et get_invoice. Fusionner ou redéfinir ces intentions peut coûter moins cher que de passer à un modèle plus coûteux, et sur cet échantillon gpt-4o a coûté environ 21 fois plus par ticket que gemini-2.5-flash-lite pour 0,3 point de justesse.

Télécharger le jeu de données : les 1 080 réponses brutes, le script de tirage, le harnais, le script d'analyse et la relecture des étiquettes, avec l'archive et sa somme de contrôle.

A lire dans la même rubrique

Recevoir le prochain article par e-mail

Un e-mail quand un article paraît. Pas d'outil de la semaine, pas de liste d'affiliation, aucune transmission de votre adresse à qui que ce soit.