이 휴대폰 서버의 핵심 기능 중 하나는 카카오톡으로 말을 걸면 AI가 답해주는 개인용 챗봇입니다. 처음엔 모델 하나만 붙여도 될 줄 알았는데, 무료 티어의 일일/분당 한도에 자주 걸리면서 “한도가 다 찼을 때 챗봇이 그냥 조용해지는” 문제를 겪었고, 이를 해결하기 위해 여러 AI 모델을 자동으로 오가는 폴백 구조를 만들게 됐습니다.

문제: 모델 하나에 의존하면 챗봇이 먹통이 된다

무료 API 한도는 모델마다 다르게 책정되어 있고, 사용량이 몰리는 시간대에는 순식간에 소진됩니다. 한 모델만 쓰면 한도를 넘는 순간부터 챗봇이 응답하지 않는 시간대가 생깁니다. 개인용으로 24시간 돌리는 챗봇이라면 이건 꽤 치명적인 문제였습니다.

응답 생성 흐름

해결: 우선순위를 둔 폴백 체인

지금 구조는 카카오톡 메시지가 들어오면 1차로 Groq(빠르고 무료 한도가 넉넉한 편)를 호출하고, 한도 초과나 오류가 감지되면 자동으로 Gemini로 전환, 그마저도 실패하면 Cloudflare Workers AI까지 순서대로 시도합니다. 각 모델 호출부에서 429(한도 초과)나 5xx 계열 오류를 잡아내면 즉시 다음 모델로 넘어가도록 만들었고, 사용자 입장에서는 어떤 모델이 답했는지 몰라도 “항상 답장이 온다"는 경험만 남도록 신경 썼습니다.

모델을 고르는 기준

세 모델을 아무렇게나 순서대로 둔 건 아닙니다. 응답 속도, 답변 품질, 그리고 무료 한도의 여유를 함께 고려해서 순서를 정했습니다. 예를 들어 평소엔 한도가 넉넉하고 응답이 빠른 모델을 1순위로 두고, 한도가 타이트한 모델은 뒤쪽으로 배치하는 식입니다. 이 순서는 실제 사용 패턴을 관찰하면서 몇 차례 조정했습니다.

부가적으로 얻은 것

폴백 구조를 만들고 나니 자연스럽게 “지금 어떤 모델이 얼마나 쓰이고 있는지"를 기록할 필요가 생겼고, 이는 다음 글에서 다룰 모델별 한도 관리 체계로 이어졌습니다.

핵심 요약

🤖 이 포스팅은 AI의 도움을 받아 작성되었습니다.