Запись об отладке: модель OpenRouter gpt-oss-120b не поддерживает запросы на китайском языке

Запись об опыте отладки API: странное явление, когда модель OpenRouter gpt-oss-120b возвращает ошибку 429 на запросы на китайском языке, но нормально отвечает на английские запросы.

При использовании бесплатного API модели, предоставляемого OpenRouter, я столкнулся с сбивающей с толку проблемой. При одной и той же структуре запроса, простое изменение языка промпта приводит к совершенно разным результатам.

Воспроизведение проблемы

Я проводил тестирование с использованием модели openai/gpt-oss-120b:free. Единственным различием между двумя запросами был язык промпта. Первый запрос использует промпт на китайском языке:

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": "你是一个专业的本地化翻译专家"
    }
  ]
}'

Этот запрос всегда возвращает код состояния 429, что указывает на слишком частые запросы или превышение лимита квоты. Однако, когда я использую промпт на английском языке:

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"
    }
  ]
}'

Запрос успешно обрабатывается и возвращает ожидаемый результат работы модели.

Процесс отладки

Такое непоследовательное поведение вызывает недоумение. Ошибка 429 обычно означает ограничение скорости запросов (rate limiting), но проблема в том, что два запроса были отправлены почти одновременно, поэтому проблемы с лимитами быть не должно.于是我 начал систематически проверять возможные причины.

Сначала я проверил ограничения квоты для ключа API и подтвердил, что они не превышены. Затем я проверил частоту запросов и обнаружил, что было отправлено всего несколько запросов за короткий промежуток времени, что не должно было вызывать никаких механизмов ограничения скорости. После исключения этих распространенных причин я обратил внимание, что единственной переменной был язык промпта.

Ища помощь у более мощных моделей ИИ, я проконсультировался с Opus 4.6 Max и GPT-5.2 Extra High. Несмотря на то, что они являются одними из самых передовых языковых моделей на сегодняшний день, ни одна из них не смогла четко указать коренную причину этого бага. Это показывает, что некоторые краевые случаи или специфические ограничения можно обнаружить только при фактическом тестировании.

Ручная проверка

Поскольку автоматические инструменты отладки не дали ответа, я решил вручную проверить различные гипотезы. Я протестировал различный контент на китайском языке, включая простые приветствия, технические вопросы и длинные тексты — все запросы на китайском возвращали ошибку 429. Напротив, запросы на английском языке той же длины обрабатывались нормально.

Это явление указывает на однозначный вывод: модель openai/gpt-oss-120b:free не поддерживает запросы на китайском языке. Обработка китайского контента моделью, вероятно, вызывает механизм ограничений, не задокументированный, из-за чего API напрямую возвращает ошибку 429 вместо более дружелюбного сообщения об ошибке.

Выводы

В этом опыте отладки есть несколько моментов, заслуживающих внимания. Во-первых, сообщения об ошибках API могут вводить в заблуждение. Ошибка 429 обычно означает ограничение скорости, но в некоторых случаях она может скрывать другие ограничения. Во-вторых, хотя автоматические инструменты отладки и мощны, они не всемогущи. Некоторые ограничения, специфичные для модели или платформы, можно обнаружить только при фактическом тестировании.

Другой важный урок — необходимость проверки гипотез. Когда несколько продвинутых моделей ИИ не смогли найти проблему, ручное систематическое тестирование осталось самым надежным методом. Контролируя переменные и проверяя их одну за другой, можно в конечном итоге локализовать корень проблемы.

Для приложений, которым необходимо обрабатывать многоязычный контент, это также напоминает нам, что при выборе модели следует внимательно изучать документацию или проводить тщательное тестирование. У бесплатных моделей часто есть различные ограничения, которые могут быть четко не указаны в основной документации.

Связанные инструменты

При работе с переводом многоязычного контента я разработал плагин для VS Code Project Translator, предназначенный для рабочих процессов многоязычной локализации проектов. Он может автоматически определять файлы, требующие перевода, интегрировать различные службы перевода и поддерживать контекстную согласованность перевода.

Первоначальной целью этого плагина было решение проблем с обработкой многоязычного контента, возникающих в реальных проектах. За счет автоматизации объем работы по ручному переводу сокращается, при этом гарантируется качество перевода. В процессе разработки мы также сталкивались с различными ограничениями API и граничными случаями, каждая из которых требовала тщательной отладки и проверки.

Заключение

В процессе технической отладки всегда встречаются неожиданные проблемы. Ключ — сохранить терпение, систематически выявлять возможные причины и не упускать ни одной детали. Иногда самые передовые инструменты не помогают, и вместо этого требуются самые базовые методы проверки.

OpenRouter предлагает богатый выбор моделей и гибкий API, что является его преимуществом. Но также следует помнить, что разные модели могут иметь разные ограничения и особенности, поэтому перед использованием лучше всего провести тщательное тестирование. Это особенно справедливо для бесплатных моделей, их ограничения часто бывают более строгими и непрозрачными.