Le modèle est la partie qui marchait déjà. Ce qui casse se trouve des deux côtés de l'appel : le passage qu'on n'a jamais retrouvé avant, la réponse que personne n'a validée après, et entre les deux une dizaine de lignes que n'importe quel fournisseur exécuterait aussi bien.
Nadia Bouhadi dirige les ressources humaines d'une entreprise de soixante personnes à Nancy. Les questions des salariés arrivent par courriel, souvent le soir, et la réponse se trouve presque toujours dans la convention collective de la branche, deux cents articles numérotés que personne ne lit en entier. Elle a voulu un assistant qui retrouve l'article et le cite.
Le premier choix n'est pas le modèle, c'est l'endroit où part l'appel
Une page américaine commence par l'appel et traite l'hébergement comme un détail d'exploitation. Pour un lecteur français c'est la première marche, et elle est franchie avant la première ligne de code, parce que l'endroit où part l'appel décide de ce qu'on a le droit d'y mettre.
Le contenu d'une requête chez Nadia Bouhadi, c'est la question d'un salarié identifiable et un extrait de sa convention. Pour une entreprise privée ordinaire, un fournisseur non européen reste un choix possible, à condition de savoir qu'il en est un et de l'avoir écrit. Dès qu'un client public, un marché soumis à SecNumCloud ou une donnée de santé entre dans le tableau, ce n'est plus un arbitrage : les modèles ouverts de Mistral hébergés chez OVHcloud, Scaleway ou Clever Cloud deviennent la seule branche praticable, et le reste de l'architecture se construit dessus.
Le coût de se tromper de marche est simple à décrire. Six mois de développement contre une interface de fournisseur, puis une contrainte contractuelle qui arrive par le service juridique, puis la découverte que la récupération, les invites et le jeu d'évaluation, eux, se transportent, mais que la latence et le prix ne sont plus les mêmes. Le travail n'est pas perdu, les hypothèses le sont.
Le bon article, ou rien
La récupération est un problème de recherche avant d'être un problème d'IA, et c'est là que se joue la réponse. Si le bon passage n'est pas dans les premiers résultats, aucun modèle ne le rattrape. Il n'a devant lui que les morceaux qu'on lui a tendus, et il écrira la meilleure réponse possible à partir de morceaux qui ne contiennent pas la réponse, ce qui donne un texte juste de ton et faux de contenu.
Le premier assistant de Nadia Bouhadi se trompait d'une façon très française et très reconnaissable. Interrogé sur un préavis, il répondait la règle générale du Code du travail au lieu de l'article de la convention, parce que la règle générale est écrite mille fois sur le web et que l'article de la branche est écrit une fois. La réponse n'était pas une invention. C'était la mauvaise source, retrouvée pour de bonnes raisons statistiques.
Le découpage des documents décide de la moitié de cela. Un texte conventionnel est numéroté, et le numéro est ce qui rend la réponse vérifiable par la personne qui la reçoit. Gardez le numéro d'article dans le morceau, ou la citation devient invérifiable. Un morceau qui commence à « Les parties conviennent que » et se termine douze lignes plus loin sans jamais dire lequel se retrouve, se lit bien et ne se vérifie pas.
L'avenant qui est resté dans l'index
La seconde panne n'existe pas dans les documentations de fournisseurs et elle est la plus courante en France. Une convention collective vit par avenants : un texte signé remplace deux articles et laisse les deux cent quatre-vingt-dix-huit autres en place. L'index, lui, contient les deux versions, la nouvelle parce qu'elle vient d'être ajoutée et l'ancienne parce que personne ne l'a retirée.
Les deux se ressemblent beaucoup, ce qui est exactement le cas où une recherche par ressemblance se trompe le mieux. Le remède est documentaire plutôt que technique. Chaque morceau porte la date de la version dont il vient, la question posée au modèle demande la version en vigueur à une date, et l'ajout d'un avenant s'accompagne du retrait de ce qu'il remplace, dans la même opération, sans quoi l'index accumule un historique que rien ne signale.
Où se trouve le travail
Tout se resserre sur une requête, et la requête est la partie que vous n'avez pas écrite
Quatre choses sont pressées dans un seul appel, et trois conséquences en tombent. L'appel lui-même fait une dizaine de lignes.
- La question d'un salariéTapée le soir, sur un téléphone, sans le mot de la branche
- La convention collectiveDeux cents articles numérotés, que personne ne lit en entier
- Le dernier avenantIl remplace deux articles, et l'ancien est resté dans l'index
- La consigne permanentePour qui la réponse est écrite, et ce qui ne s'invente pas
- Une réponse citéeAvec son numéro d'article, ou un refus gardé pour le jeu de cas
- Une décision priseUne date posée sur un calendrier, pénible à reprendre
- Le lundi de quelqu'unLà où un article que personne n'a retrouvé finit par arriver
Les deux cônes sont le système et l'étranglement est le fournisseur. Un dessin qui ferait de l'étranglement la plus grosse partie serait une image de la démonstration, pas du service.
Le jeu d'évaluation qui ne disait rien
Écrivez le jeu d'évaluation avant la fonctionnalité. Une démonstration ne peut pas échouer, puisqu'on la refait jusqu'à ce qu'elle passe, et c'est pour cette raison que le jeu de cas écrit après coup ressemble toujours à la démonstration qui a convaincu.
Le premier jeu de Nadia Bouhadi comptait quarante questions et il n'a jamais rien signalé. Toutes avaient une réponse dans la convention, toutes étaient posées avec les mots de la convention, et l'assistant les passait toutes. Un jeu d'évaluation sans réponses fausses ne mesure que le fait que ça tourne. Voici les quatre cas qui ont été ajoutés ensuite, et ce sont eux qui ont fait apparaître les deux pannes ci-dessus.
- Une question dont la réponse est dans un article précis. Attendu : la réponse, et le numéro de l'article, cité.
- Une question que la convention ne traite pas. Attendu : un refus et le renvoi à une personne, jamais une réponse tirée d'ailleurs.
- Une question dont la réponse a changé au dernier avenant. Attendu : la version en vigueur, avec sa date.
- La même question posée avec le vocabulaire du Code du travail et non celui de la branche. Attendu : la même réponse que la version posée avec le vocabulaire de la branche.
Quarante cas justes mesurent la stabilité. Ces quatre-là mesurent le système. Le second cas est celui qu'on oublie, et il est le seul qui teste la chose que l'assistant doit savoir faire pour être laissé devant des salariés, c'est-à-dire refuser.
Ce qui vaut aussi pour la sortie, une fois la réponse revenue. Traitez la sortie du modèle comme un formulaire rempli par un inconnu. Le numéro d'article se vérifie contre la table des articles, la date contre la liste des avenants, et une réponse qui ne cite rien ne part pas. Ces trois contrôles tiennent en trente lignes et ils font plus pour la fiabilité que n'importe quel changement de modèle.
L'ordre, et la marche que tout le monde enjambe
Le blocage de ce sujet est de progresser au jugé. On change une invite, la démonstration paraît meilleure, on garde. Trois semaines plus tard le système est différent et personne ne peut dire s'il est meilleur, parce qu'aucune mesure n'a jamais été prise. C'est une marche enjambée, et elle reste invisible six semaines, puisque tout ce qui se trouve au-dessus continue de tourner.
L'ordre commence donc par le travail avec une API, qui se fait en une soirée et fixe le coût, les erreurs et l'endroit où part l'appel. Puis les évaluations, tout de suite, avant la fonctionnalité. Le RAG vient en troisième et c'est le gros du travail, parce que c'est là que vivent le découpage, les avenants et le numéro d'article.
Le fine-tuning passe en quatrième et rarement : le fine-tuning enseigne une forme, pas un fait, donc il ne réglera jamais une convention mal indexée, et sans la deuxième marche on ne peut même pas dire s'il a amélioré quoi que ce soit. Le passage en production arrive en dernier et ressemble beaucoup à la mise en production de n'importe quel service, à une différence près, la sortie que personne n'a écrite.
Ce qu'on ouvre en 2026, et ce que chacun a remplacé
Une base vectorielle légère embarquée dans le service, du type de celles qui tiennent dans un fichier à côté de l'application, a remplacé le service d'index hébergé pour tout ce qui pèse quelques milliers de morceaux. Elle est gratuite et libre, elle tourne sur le serveur qu'on a déjà, et deux cents articles de convention sont très en dessous de son plafond. Le service hébergé se paie au volume, en euros, et il se justifie plus haut.
Un cadre d'évaluation, même minimal, a remplacé le tableur de cas de test relu à la main. Les bibliothèques libres qui font tourner un jeu de cas et comparent deux versions sont gratuites ; ce qui coûte, c'est d'écrire les cas, et cela ne se délègue pas, parce qu'un cas est une décision métier déguisée en test.
Côté modèle, les modèles ouverts de Mistral servis depuis OVHcloud ou Scaleway ont remplacé, pour une partie des lecteurs de cette page, le choix entre renoncer au projet et envoyer la convention et le nom d'un salarié hors d'Europe. Les poids sont gratuits, le calcul se paie à l'heure de carte graphique, et la facture est en euros et non en dollars, ce qui change la façon dont un budget se défend.
Reste la question qui vient ensuite, et elle porte sur ce qui se passe quand plus personne ne lit chaque réponse. Un assistant qui répond est encore lu par la personne qui a posé la question ; les agents IA agissent, et le jeu d'évaluation cesse alors d'être une bonne pratique pour devenir la seule chose qui distingue un système qui marche d'un système qui tourne. Les documents qui alimentent tout cela, eux, viennent des données.