OpenRouter gpt-oss-120b 모델이 중국어 요청을 지원하지 않는 문제에 대한 디버깅 기록

API 디버깅 경험을 기록합니다. OpenRouter의 gpt-oss-120b 모델이 중국어 요청에 대해서는 429 오류를 반환하지만, 영어 요청에는 정상적으로 응답하는 이상한 현상이 발생했습니다.

OpenRouter에서 제공하는 무료 모델 API를 사용할 때, 저는 혼란스러운 문제에 직면했습니다. 동일한 요청 구조에서 프롬프트의 언어만 바꿨을 뿐인데 전혀 다른 결과가 나타났습니다.

문제 재현

저는 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 오류는 보통 속도 제한을 의미하지만, 문제는 두 요청이 거의 동시에 전송되었으므로 속도 제한 문제가 있어서는 안 된다는 점입니다. 따라서 저는 가능한 원인을 체계적으로 조사하기 시작했습니다.

저는 먼저 API 키의 할당량 제한을 확인하여 제한을 초과하지 않았음을 확인했습니다. 이어 요청 빈도를 검증하여 짧은 시간 내에 소량의 요청만 전송되었으므로 어떤 속도 제한 메커니즘도 트리거되지 않아야 함을 발견했습니다. 이러한 일반적인 원인을 배제한 후, 유일한 변수가 프롬프트의 언어라는 점에 주목했습니다.

더 강력한 AI 모델의 도움을 요청할 때, 저는 Opus 4.6 Max와 GPT-5.2 Extra High에 문의했습니다. 그들은 현재 가장 진보된 언어 모델 중 하나임에도 불구하고 이 버그의 근본 원인을 명확히 지적하지 못했습니다. 이는 일부 에지 케이스나 특정 제한 사항은 실제 테스트에서만 발견될 수 있음을 시사합니다.

수동 검증

자동화된 디버깅 도구가 답을 주지 못했기에, 저는 다양한 가설을 수동으로 검증하기로 결정했습니다. 간단한 인사, 기술적 질문, 긴 텍스트를 포함한 다양한 중국어 콘텐츠를 테스트했으며, 모든 중국어 요청은 429 오류를 반환했습니다. 반대로, 동일한 길이의 영어 요청은 정상적으로 응답했습니다.

이 현상은 명확한 결론을 향하고 있습니다: openai/gpt-oss-120b:free 모델은 중국어 요청을 지원하지 않습니다. 모델의 중국어 콘텐츠 처리는 문서화되지 않은 제한 메커니즘을 트리거하여, API가 더 친숙한 오류 메시지 대신 429 오류를 직접 반환하게 만드는 것 같습니다.

경험 요약

이번 디버깅 경험에는 주목할 만한 몇 가지要点이 있습니다. 첫째, API 오류 메시지는 오도될 수 있습니다. 429 오류는 보통 속도 제한을 나타내지만, 어떤 경우에는 다른 제한이 숨겨져 있을 수 있습니다. 둘째, 자동화된 디버깅 도구는 강력하지만 만능은 아닙니다. 모델 또는 플랫폼 특정 제한 사항은 실제 테스트에서만 발견될 수 있습니다.

또 다른 중요한 교훈은 가설 검증의 필요성입니다. 여러 고급 AI 모델이 문제를 찾아내지 못했을 때, 수동적이고 체계적인 테스트가 여전히 가장 신뢰할 수 있는 방법입니다. 변수를 제어하고 하나씩 검증함으로써, 최종적으로 문제의 근원을 찾아낼 수 있습니다.

다국어 콘텐츠를 처리해야 하는 애플리케이션의 경우, 이는 모델을 선택할 때 문서를 주의 깊게 확인하거나 충분한 테스트를 수행해야 함을 상기시킵니다. 무료 모델은 종종 다양한 제한이 있으며, 이러한 제한은 주요 문서에 명확하게 설명되지 않을 수 있습니다.

관련 도구

다국어 콘텐츠 번역을 처리할 때, 저는 프로젝트의 다국어 현지화 워크플로우 전용인 VS Code 확장 프로그램 Project Translator를 개발했습니다. 번역이 필요한 파일을 자동으로 식별하고, 다양한 번역 서비스를 통합하며, 번역의 컨텍스트 일관성을 유지할 수 있습니다.

이 확장 프로그램의 설계初衷은 실제 프로젝트에서 겪는 다국어 처리의 문제점을 해결하는 것입니다. 자동화를 통해 수동 번역 작업량을 줄이면서 동시에 번역 품질을 보장합니다. 개발 과정에서도 다양한 API 제한 및 에지 케이스를 겪었으며, 각 문제는 신중한 디버깅과 검증이 필요했습니다.

맺음말

기술 디버깅 과정에서, 생각지 못한 문제에 항상 직면하게 됩니다. 핵심은 인내심을 유지하고, 가능한 원인을 체계적으로 조사하며, 어느 세부 사항도 놓치지 않는 것입니다. 때로는 가장 진보된 도구도 도움이 되지 않으며, 오히려 가장 기초적인 검증 방법이 필요할 때가 있습니다.

OpenRouter는 풍부한 모델 선택과 유연한 API를 제공하며, 이것이 장점입니다. 하지만 동시에 다른 모델은 다른 제한과 특성을 가질 수 있으므로, 사용 전 충분한 테스트를 수행하는 것이 좋습니다. 무료 모델은 특히 그러하며, 그들의 제한은 종종 더 엄격하고 투명하지 않습니다.