Moje finanční aplikace FinMan VHWorx čte elektroměry, účtenky za palivo a bankovní výpisy z fotografií a souborů. Vše běží na vizuálních/textových LLM prostřednictvím OpenRouter — a hodně z toho na modelech zdarma.
Bezplatné modely jsou skvělé, kromě jedné věci: neustále se mění. Objevují se, mizí, přejmenovávají nebo tiše se depreciují. Hardcodujte id modelu a vaše funkce tiše zemře v náhodné úterý.
Takže FinMan přestal zacházet s modely jako s konstantami. Modely jsou data:
- Denní úkol synchronizuje živý seznam modelů z OpenRouter. Nové bezplatné vizuální modely se přidávají automaticky; zmizelé jsou deaktivovány.
- Placené zálohy se denně znovu řadí podle ceny. Rodina Gemini Flash zálohuje bezplatnou úroveň, nejlevnější jako první — takže přepnutí nikdy nepřekvapí fakturu.
- Rozpoznávání prochází prioritním seznamem. Pokud model selže nebo zmizí, další převezme. Jeden mrtvý model nikdy neporuší uživatelovu fotografii.
- Aplikace se sama aktualizuje. Samostatný úkol přiřazuje nejlepší model z veřejného komunitního žebříčku jako prioritu #1 — takže textové úkoly tiše přecházejí na to, co je aktuálně nejlepší.
- Změny mě upozorní na Telegramu. Žádné panely pro kontrolu.
Výsledek po měsících v produkci: Od té doby jsem se nedotkl id modelu. Každá vlna deprecace prošla bez povšimnutí — mnou i uživateli.
Pokud stavíte na LLM (zejména na bezplatných úrovních), tohle je nejvyšší páka malá změna, kterou znám: modely jako data, ne konstanty. Tabulka, denní cron, prioritní procházka. To je celý trik.