Quelqu'un a demandé comment et quand prendre un antidépresseur courant, avant ou après les repas, et ce qu'il contient. La question était en russe. L'interface était en turc. Le moteur en mode Auto a répondu par un refus tout fait — en anglais. Invité à répondre en russe, il a de nouveau refusé, en russe cette fois. Une minute plus tard, la conversation était supprimée. Tout autre assistant répond à cette question, et la personne avait raison d'attendre la même chose.
Une conversation supprimée, quatre défauts.
L'information n'est pas un conseil
À quoi sert un médicament, comment le prendre, ce qu'il contient, s'il nécessite une ordonnance — c'est la notice, publique et documentée. L'invite système le dit désormais clairement : réponds, ajoute une ligne renvoyant vers un professionnel pour la décision personnelle, et continue de refuser ce qui doit être refusé — surdosage, automutilation, moyens de contourner une ordonnance. Élargir ce à quoi on répond n'a pas élargi ce qui est permis ; cela a nommé le silence au milieu, où un petit modèle s'était inventé sa propre politique.
Un refus est une réponse
La règle selon laquelle les réponses suivent la langue du message se trouvait loin de la fin d'une longue invite, et un modèle de refus était la réponse la plus susceptible de la sauter. La règle est désormais répétée là où un modèle lit en dernier, et la langue de l'interface n'est qu'un critère de départage pour un simple nombre ou un lien. Une question en russe sur un écran turc reçoit une réponse en russe, et un refus en russe s'il le faut.
Il y avait une cause plus profonde en dessous. La partie du serveur qui diffuse une réponse s'exécute détachée de la requête, et la culture de la requête ne la suivait pas jusque-là — si bien que chaque tour diffusé s'exécutait dans la propre langue du serveur, et la vingtaine de messages système qu'un flux peut émettre en sortaient aussi. La culture est désormais capturée au début et réappliquée à l'intérieur de l'exécuteur. Chaque client de diffusion, sur le web comme sur le téléphone, envoie désormais aussi sa langue avec la requête, ce que trois des quatre ne faisaient pas.
Une réponse vide est un échec avec un meilleur code de statut
Un moteur renvoyait parfois une réponse terminée sans rien dedans. L'application lisait cela comme une fin de tour propre et affichait un espace réservé disant que les outils avaient terminé. C'est désormais traité comme n'importe quel autre échec avant le premier jeton : en mode Auto, un moteur frère prend le relais du tour ; sur un choix explicite, tu vois une erreur honnête et localisée. Les moteurs qui faisaient le plus souvent cela ont quitté le bassin Auto — le même test qui avait retiré une classe de modèles plus tôt dans l'été, appliqué à la même preuve.
Il n'y a pas de plus tard
"Je l'envoie dans quelques minutes" est quelque chose qu'une personne dit. Un tour de conversation ne le peut pas : ce qui n'est pas produit maintenant n'arrivera jamais, et la promesse est un échec déguisé en phrase polie. Les réponses qui promettaient un plus tard sont désormais retentées jusqu'à ce qu'elles livrent dans le tour, dans les vingt-neuf langues que parle l'application, et aussi bien dans la bulle de l'assistant que dans la conversation.
Rien de tout cela n'est une mise à niveau de modèle. C'est la plomberie autour du modèle, faite pour tenir les promesses que l'interface fait déjà.