Journal de débogage : le modèle OpenRouter gpt-oss-120b ne prend pas en charge les requêtes en chinois

Récit d’une expérience de débogage d’API : le modèle gpt-oss-120b d’OpenRouter renvoie une erreur 429 pour les requêtes en chinois, alors qu’il répond normalement aux requêtes en anglais.

En utilisant l’API de modèle gratuit fournie par OpenRouter, j’ai rencontré un problème déroutant. Avec la même structure de requête, un simple changement de langue du prompt entraîne des résultats complètement différents.

Reproduction du problème

J’ai utilisé le modèle openai/gpt-oss-120b:free pour le test. La seule différence entre les deux requêtes était la langue du prompt. La première requête utilisait un prompt en chinois :

curl https://openrouter.ai/api/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer sk-or-v1-xxxxxxxxxxxxxxxxxxxxxx" \
  -d '{
  "model": "openai/gpt-oss-120b:free",
  "messages": [
    {
      "role": "user",
      "content": "你是一个专业的本地化翻译专家"
    }
  ]
}'

Cette requête renvoyait toujours le code d’état 429, indiquant que les requêtes étaient trop fréquentes ou que la limite de quota était dépassée. Cependant, lorsque j’utilisais un prompt en anglais :

curl https://openrouter.ai/api/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer sk-or-v1-xxxxxxxxxxxxxxxxxxxxxx" \
  -d '{
  "model": "openai/gpt-oss-120b:free",
  "messages": [
    {
      "role": "user",
      "content": "You are a professional localization translation expert"
    }
  ]
}'

La requête répondait normalement, renvoyant la sortie attendue du modèle.

Processus de débogage

Ce comportement incohérent est déroutant. Une erreur 429 signifie généralement une limitation de débit, mais le problème est que les deux requêtes ont été envoyées presque simultanément, il ne devrait donc pas y avoir de problème de limitation. J’ai alors commencé à rechercher systématiquement les causes possibles.

J’ai d’abord vérifié les limites de quota de la clé API, confirmant qu’elles n’étaient pas dépassées. Ensuite, j’ai vérifié la fréquence des requêtes et constaté que seul un petit nombre de requêtes avaient été envoyées sur une courte période, ce qui ne devrait déclencher aucun mécanisme de limitation. Après avoir écarté ces causes courantes, j’ai noté que la seule variable était la langue du prompt.

En cherchant de l’aide auprès de modèles d’IA plus puissants, j’ai consulté Opus 4.6 Max et GPT-5.2 Extra High. Bien qu’ils soient parmi les modèles linguistiques les plus avancés à l’heure actuelle, aucun n’a pu identifier clairement la cause profonde de ce bug. Cela montre que certains cas particuliers ou limitations spécifiques ne peuvent être découverts que par des tests réels.

Vérification manuelle

Puisque les outils de débogage automatisés n’avaient pas fourni de réponse, j’ai décidé de vérifier manuellement diverses hypothèses. J’ai testé différents contenus en chinois, y compris des salutations simples, des questions techniques et des textes longs ; toutes les requêtes en chinois ont renvoyé une erreur 429. En revanche, les requêtes en anglais de même longueur répondaient normalement.

Ce phénomène pointe vers une conclusion claire : le modèle openai/gpt-oss-120b:free ne prend pas en charge les requêtes en chinois. Le traitement du contenu en chinois par le modèle pourrait déclencher un mécanisme de limitation non documenté, amenant l’API à renvoyer directement une erreur 429 au lieu d’un message d’erreur plus explicite.

Bilan de l’expérience

Cette expérience de débogage présente plusieurs points notables. Tout d’abord, les messages d’erreur de l’API peuvent être trompeurs. Une erreur 429 indique généralement une limitation de débit, mais dans certains cas, elle peut masquer d’autres limitations. Ensuite, bien que les outils de débogage automatisés soient puissants, ils ne sont pas infaillibles. Certaines limitations spécifiques aux modèles ou aux plateformes ne peuvent être découvertes que par des tests réels.

Une autre leçon importante est la nécessité de vérifier les hypothèses. Lorsque plusieurs modèles d’IA avancés n’ont pas réussi à trouver le problème, les tests manuels et systématiques restent la méthode la plus fiable. En contrôlant les variables et en les vérifiant une par une, il est possible de localiser finalement la racine du problème.

Pour les applications qui doivent traiter du contenu multilingue, cela nous rappelle également l’importance de consulter attentivement la documentation ou d’effectuer des tests approfondis lors du choix d’un modèle. Les modèles gratuits ont souvent diverses limitations qui pourraient ne pas être explicitement énoncées dans la documentation principale.

Outils connexes

Lors du traitement de la traduction de contenu multilingue, j’ai développé une extension VS Code Project Translator, conçue spécifiquement pour les flux de travail de localisation multilingue de projets. Elle peut identifier automatiquement les fichiers nécessitant une traduction, intégrer plusieurs services de traduction et maintenir la cohérence contextuelle des traductions.

Cette extension a été conçue pour résoudre les points de douleur du traitement multilingue rencontrés dans les projets réels. Elle vise à réduire la charge de traduction manuelle par l’automatisation tout en garantissant la qualité de la traduction. Au cours du développement, j’ai également rencontré diverses limitations d’API et cas limites, chaque problème nécessitant un débogage et une vérification minutieux.

Conclusion

Lors du processus de débogage technique, on rencontre toujours des problèmes inattendus. La clé est de garder patience, de rechercher systématiquement les causes possibles et de ne négliger aucun détail. Parfois, les outils les plus avancés ne sont d’aucune aide, et ce sont les méthodes de vérification les plus basiques qui sont nécessaires.

OpenRouter propose un large choix de modèles et une API flexible, ce qui constitue son atout. Mais il faut également noter que différents modèles peuvent avoir des limitations et des caractéristiques différentes ; il est donc préférable de procéder à des tests approfondis avant utilisation. C’est particulièrement vrai pour les modèles gratuits, dont les limitations sont souvent plus strictes et opaques.