Skip to content
Neuronavt
Go back

Почему финансовую раскладку заменили алгоритмом

Кейс8/10

Коротко

Автор финансового приложения заменил LLM, распределявшую накопления по целям, детерминированным алгоритмом. Он работает без сети, дает повторяемые результаты и использует тот же расчет дат, что и остальная часть приложения; модель оставили для объяснений и советов.

Контекст

Автор разрабатывает приложение «Кубыш», которое планирует бюджет между получками и отображает накопления по целям-конвертам. У каждой цели есть сумма, приоритет и желаемая дата. Кнопка «Показать Кубышу» прежде обращалась к внешней LLM, чтобы предложить распределение денег.

Главное

Как сделано

Автор свел задачу к двум режимам: быстрее достигать целей, распределяя деньги по очереди, или выделить каждой цели минимальную сумму, достаточную для достижения желаемой даты, а остаток оставить свободным. Порядок целей совпадает с календарным движком: сначала приоритет («критичная», «важная», «хотелка»), затем ближайшая желаемая дата в пределах приоритета.

Минимум для цели ищется бинарным поиском: проверяется прогноз при разных суммах, пока интервал не станет меньше 1 000 ₽. Дата прогнозируется той же передаваемой извне функцией forecast, которая используется для карточек целей. По словам автора, отдельный тест-сторож обнаруживает появление второго независимого расчета прогноза.

Код отвечает за числа, даты и распределение. LLM используется для текстовых объяснений и советов; при отсутствии сети предусмотрен шаблонный текст.

Результаты

Распределение стало детерминированным, локальным и мгновенным. Одинаковые входные данные дают одинаковый результат, даты согласуются с прогнозом на карточках. Автор сообщает о тестах для целей без даты, выполнимых и невыполнимых сроков, очередности и премии, но не приводит метрик производительности или пользовательских измерений.

Ограничения

Не приведены результаты количественного сравнения с прежней LLM, объем тестового набора, детали календарного движка и оценка поведения на всех возможных входных данных. Бинарный поиск использует шаг 1 000 ₽, поэтому точность до рубля не предполагается. Не описаны стоимость и конкретная модель прежнего внешнего сервиса.

Что взять себе

Читать оригинал, если…

Откройте оригинал, если нужны полный Swift-фрагмент функции бинарного поиска и дополнительные детали реализации теста-сторожа.