Moja finančna aplikacija FinMan VHWorx bere števce, račune za gorivo in bančne izpiske iz fotografij in datotek. Vse to deluje na vizualnih/tekstovnih LLM-jih preko OpenRouterja — in veliko tega na brezplačnih modelih.
Brezplačni modeli so odlični, razen v eni stvari: nenehno se spreminjajo. Pojavijo se, izginejo, preimenujejo ali tiho deprecirajo. Če zakodirate id modela, vaša funkcija tiho umre na naključni torek.
Zato je FinMan prenehal obravnavati modele kot konstante. Modeli so podatki:
- Dnevno opravilo sinhronizira seznam živih modelov iz OpenRouterja. Novi brezplačni vizualni modeli se dodajajo samodejno; izginuli se deaktivirajo.
- Plačani rezervni modeli se dnevno ponovno razvrščajo po ceni. Družina Gemini Flash podpira brezplačno raven, najcenejši najprej — tako da preklop nikoli ne preseneti računa.
- Prepoznavanje hodi po prioritetnem seznamu. Če model napaka ali ga ni, prevzame naslednji. En mrtev model nikoli ne prekine uporabnikove fotografije.
- Aplikacija se nadgrajuje sama. Ločeno opravilo pritrdi najboljši model iz javnega vodilnega seznama skupnosti kot prioritetno #1 — tako da se naloge besedila tiho premikajo na tisto, kar je trenutno najboljše.
- Spremembe me obvestijo na Telegramu. Brez nadzornih plošč za preverjanje.
Rezultat po mesecih v produkciji: model id nisem dotaknil od takrat. Vsaka val deprecij je minila neopažena — zame in uporabnike.
Če gradite na LLM-jih (še posebej brezplačnih ravneh), je to največja sprememba z največjim učinkom, ki jo poznam: modeli kot podatki, ne konstante. Tabela, dnevni cron, prioritetni sprehod. To je celoten trik.