2 min read · 553 words
이 글은 다중 LLM API를 연동해 무중단 자동화 파이프라인을 구축했으나, 결제 이슈로 시스템이 완전히 멈춘 개발자를 위한 가이드다. 내가 운영 중인 활용 팁 자동 발행 모듈에서 Gemini와 Anthropic API가 동시에 막히며 dual-LLM fallback 무력화 현상이 발생한 문제를 해결한 과정을 공유한다.
문제 상황
운영 기록 기준, 나는 활용 팁 자동 발행 모듈에서 LLM 호출을 통해 한국어 troubleshooting 초안을 생성하려고 했다. 한쪽 API가 죽더라도 다른 쪽으로 우회하도록 이중화 설계를 해두었기에 안심하고 있었다. 하지만 예상치 못하게 Gemini Pro와 Anthropic Claude가 동시에 결제 한도 초과 및 잔액 부족으로 차단되면서, 내가 신뢰하던 예외 처리 로직이 완전히 무력화되었다.
에러 증상
자동 발행 모듈의 publish_one_tip() 실행 중 stage='ko_draft' 단계에서 에러가 발생했다. 상세 에러 메시지는 다음과 같다.
- Gemini Pro 호출 시:
HTTP 429 'monthly spending cap exceeded' - Anthropic Claude fallback 호출 시:
HTTP 400 'credit balance too low'
두 provider 모두 결제 차단 메시지를 누적하며 시스템이 완전히 중단되었다.
환경
내부 테스트 기준 환경은 다음과 같다.
- 언어 및 런타임: Python 3.12
- 호출 모듈:
webapp.seo.llm_provider내부의call_llmwrapper 함수 - 연동 API: Gemini API + Anthropic API
시도했지만 실패한 방법
문제를 해결하기 위해 내가 시도했던 방법들은 다음과 같다.
- model_pref 우선순위 변경 (gemini → anthropic): 기본 모델 선호도를 변경해 보았으나, Anthropic 역시 크레딧 부족 상태였기에 동일하게 실패했다.
- max_tokens 및 프롬프트 길이 축소: 혹시 토큰 제한에 걸린 것인가 싶어 요청 크기를 줄여보았다. 정확한 원인은 추가 확인이 필요하지만, 현재 확인된 원인은 토큰 소모량이 아닌 계정 자체의 결제 한도 도달이므로 토큰 조절은 아무런 효과가 없었다.
최종 해결
이 문제는 코드 변경으로 해결할 수 있는 영역이 아니었다. 사장님의 결제 승인이 필요한 영역이었다. 역시 자본주의 사회에서 코드가 돈을 이길 수는 없다.
임시 우회책으로, 사장님의 LIVE 결제 확인 전까지 자동 발행 모듈을 일시 정지(pause) 처리했다. 이는 API가 동작하지 않을 때 무리하게 자동 재생성을 반복하지 않고 fallback을 명시하는 기존 패턴과 유사하게 대응한 것이다. 이후 (1) Gemini spending cap 페이지(https://ai.studio/spend)에서 한도를 상향 조정하고, (2) Anthropic 계정에 크레딧을 충전하여 근본적인 결제 차단을 해제했다.
사용한 코드
결제 상태를 확인하고 안전하게 단일 호출을 검증하기 위해 사용한 wrapper 호출 구조는 다음과 같다. 코드 자체의 변경은 없었으며 결제 완료 후 즉시 정상 작동했다.
# webapp/seo/llm_provider.py
# 결제 완료 후 정상 작동을 검증하기 위한 wrapper 호출 구조
def call_llm_with_fallback(prompt):
try:
# Gemini 호출 시도
return call_gemini(prompt)
except Exception as e:
if "spending cap exceeded" in str(e):
# Anthropic으로 fallback 작동
return call_anthropic(prompt)
raise e검증 결과
결제 처리가 완료된 것을 확인한 후, publish_one_tip(do_fanout=False)를 1회 호출하여 한국어 초안(KO DRAFT)이 정상 생성되는 것을 검증했다. 그 다음 do_fanout=True 옵션을 주어 5개 국어 번역 및 배포(fan-out) 검증까지 완벽하게 통과했다.
현재 상태
현재 상태는 still unstable 단계다. 결제 한도 관리가 자동화되지 않아 향후 주기적인 잔액 모니터링이 필요한 상태다.
같은 문제 겪는 분들에게
다중 LLM 이중화를 구축해 두었더라도 결제 계정의 한도 관리가 통합되어 있지 않으면 무용지물이 된다. 먼저 각 API 콘솔의 결제 페이지(특히 Gemini의 spend 관리 페이지)로 이동하여 한도 설정과 잔액 상태부터 점검하라. 결론적으로 dual-LLM fallback 무력화를 예방하려면 API 잔액 경고 알림을 슬랙 등으로 연동해 두는 것이 가장 확실한 예방법이다.
Category Coverage Notice
This article follows our label-specific editorial criteria. Details: