내 재무 앱 FinMan VHWorx는 사진과 파일에서 유틸리티 미터, 연료 영수증 및 은행 명세서를 읽습니다. 모든 것은 OpenRouter를 통해 비전/텍스트 LLM에서 실행되며, 많은 부분이 무료 모델에서 실행됩니다.
무료 모델은 한 가지를 제외하고는 훌륭합니다: 지속적으로 변화합니다. 나타나고, 사라지고, 이름이 바뀌거나 조용히 퇴출됩니다. 모델 ID를 하드코딩하면, 기능이 무작위 화요일에 조용히 사라집니다.
그래서 FinMan은 모델을 상수로 취급하는 것을 중단했습니다. 모델은 데이터입니다:
- 매일 작업이 OpenRouter에서 실시간 모델 목록을 동기화합니다. 새로운 무료 비전 모델이 자동으로 추가되고, 사라진 모델은 비활성화됩니다.
- 유료 대체 모델은 매일 가격에 따라 재정렬됩니다. Gemini Flash 가족이 무료 계층을 지원하며, 가장 저렴한 모델이 먼저 선택됩니다 — 그래서 장애 조치가 요금을 놀라게 하지 않습니다.
- 인식은 우선 순위 목록을 따릅니다. 모델에 오류가 발생하거나 사라지면 다음 모델이 인수합니다. 하나의 고장 모델이 사용자의 사진을 중단시키지 않습니다.
- 앱이 스스로 업그레이드됩니다. 별도의 작업이 공개 커뮤니티 리더보드에서 상위 모델을 우선 순위 #1로 고정합니다 — 그래서 텍스트 작업이 현재 가장 좋은 것으로 조용히 이동합니다.
- 변경 사항이 Telegram으로 알림됩니다. 확인할 대시보드가 없습니다.
생산에서 몇 달 후의 결과: 나는 모델 ID를 만진 적이 없습니다. 모든 퇴출 파동이 나와 사용자에게 눈치채지 못하게 지나갔습니다.
LLM(특히 무료 계층)을 기반으로 구축하고 있다면, 이것은 내가 아는 가장 높은 레버리지의 작은 변화입니다: 모델을 데이터로, 상수가 아닌. 테이블, 매일 크론, 우선 순위 이동. 그게 전부입니다.