Aplicația mea financiară 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 el pe modele gratuite.
Modelele gratuite sunt grozave, cu o singură excepție: se schimbă constant. Ele apar, dispar, primesc nume noi sau sunt retrase în tăcere. Dacă codifici un ID de model, funcția ta moare în liniște într-o marți aleatorie.
Așadar, FinMan a încetat să mai trateze modelele ca pe constante. Modelele sunt date:
- O muncă zilnică sincronizează lista modelului live din OpenRouter. Modelele noi de viziune gratuite sunt adăugate automat; cele dispărute sunt dezactivate.
- Fallback-urile plătite sunt rearanjate zilnic după preț. Familia Gemini Flash susține nivelul gratuit, cel mai ieftin mai întâi — astfel încât un failover să nu surprindă factura.
- Recunoașterea parcurge lista de priorități. Dacă un model dă eroare sau este dispărut, următorul preia controlul. Un model mort nu rupe niciodată fotografia unui utilizator.
- Aplicația se actualizează singură. O muncă separată fixează modelul de top dintr-un clasament public al comunității ca prioritate #1 — astfel încât sarcinile de text să se mute liniștit la ceea ce este în prezent cel mai bun.
- 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 cele gratuite), aceasta este cea mai eficientă mică schimbare pe care o cunosc: modele ca date, nu constante. O tabelă, un cron zilnic, o parcurgere a priorităților. Asta este tot trucul.