Apa mea de finanțe FinMan VHWorx citește contoare de utilități, chitanțe de combustibil și extrase de cont din fotografii și fișiere. Totul funcționează pe LLM-uri de viziune/text prin OpenRouter — și o mare parte din ele pe modele gratuite.
Modelele gratuite sunt grozave, cu o singură excepție: se schimbă constant. Apar, dispar, sunt redenumite sau depreciate în tăcere. Dacă codifici un id de model, funcția ta moare liniștit într-o marți aleatorie.
Așa că FinMan a încetat să trateze modelele ca pe constante. Modelele sunt date:
- Un job zilnic sincronizează lista de modele active din OpenRouter. Modelele noi de viziune gratuite sunt adăugate automat; cele dispărute sunt dezactivate.
- Fallback-urile plătite se rearanjează zilnic după preț. Familia Gemini Flash susține nivelul gratuit, cel mai ieftin întâi — astfel încât un failover nu surprinde factura.
- Recunoașterea parcurge lista de priorități. Dacă un model dă eroare sau a dispărut, următorul preia controlul. Un model mort nu strică niciodată fotografia unui utilizator.
- Aplicația se actualizează singură. Un job separat fixează modelul de top de pe un leaderboard public ca prioritate #1 — astfel încât sarcinile de text se mută liniștit la ceea ce este cel mai bun în prezent.
- Schimbările mă anunță pe Telegram. Fără tablouri de bord de verificat.
Rezultatul după luni de producție: nu am atins un id de model de atunci. Fiecare val de depreciere a trecut neobservat — de mine și de utilizatori.
Dacă construiești pe LLM-uri (în special pe niveluri gratuite), aceasta este cea mai eficientă mică schimbare pe care o cunosc: modele ca date, nu constante. O tabelă, un cron zilnic, o plimbare pe priorități. Asta e tot trucul.