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