Моето финансово приложение FinMan VHWorx чете измервателни уреди, разписки за гориво и банкови извлечения от снимки и файлове. Всичко това работи на визуални/текстови LLM чрез OpenRouter — и много от него на безплатни модели.
Безплатните модели са страхотни, освен за едно нещо: те постоянно се променят. Появяват се, изчезват, преименуват се или тихо остаряват. Кодирайте идентификатор на модел и вашата функция умира тихо в произволен вторник.
Така че FinMan спря да третира моделите като константи. Моделите са данни:
- Ежедневна работа синхронизира списъка с живи модели от OpenRouter. Новите безплатни визуални модели се добавят автоматично; изчезналите се деактивират.
- Платените резерви се пренареждат по цена ежедневно. Семейството на Gemini Flash подкрепя безплатния слой, най-евтиният първи — така че превключването никога не изненадва сметката.
- Разпознаването преминава по приоритетния списък. Ако моделът има грешка или е изчезнал, следващият поема. Един мъртъв модел никога не нарушава снимката на потребителя.
- Приложението се обновява само. Отделна работа закрепва най-добрия модел от публичен лидерборд на общността като приоритет #1 — така че текстовите задачи тихо преминават към каквото е в момента най-добро.
- Промените ми изпращат известия в Telegram. Няма табла за проверка.
Резултатът след месеци в производство: не съм докосвал идентификатор на модел оттогава. Всяка вълна на остаряване премина незабелязано — от мен и от потребителите.
Ако изграждате на LLM (особено безплатни слоеве), това е най-високоефективната малка промяна, която познавам: модели като данни, а не константи. Таблица, ежедневен cron, приоритетно преминаване. Това е целият трик.