Кредитный радар: LLM-воркфлоу, который каждое утро читает условия 12 банков и сам проверяет свои числа
Разработчик из сферы розничных кредитных рисков создал автоматизированный сервис на базе языковой модели, который ежедневно отслеживает изменения в условиях кредитных продуктов двенадцати российских банков. Система не просто собирает данные, но и самостоятельно проверяет каждое утверждение, публикуя сводки с ссылками на источники. Проект демонстрирует подход, при котором LLM используется строго в заданных рамках, а все критические вычисления и проверки выполняются детерминированным кодом.
Автор, работающий в области розничных кредитных рисков, представил публичный проект под названием «Кредитный радар». Этот инструмент каждое утро в 09:00 публикует в Telegram-канале и на сайте сводку изменений условий по кредитным картам, рассрочке, кредитам наличными и автокредитам. Сервис обходит 34 страницы условий и тарифных документов у 12 российских банков, сравнивает их с предыдущим снимком и формирует отчёт. Дополнительно система читает новости регулятора, четыре деловых издания, ключевую ставку с сайта ЦБ и котировки банков на Московской бирже. Итогом дня становится сводка из трёх-четырёх разделов, где каждая строка снабжена ссылкой на источник, а не чаще трёх раз в неделю выходит разбор одного значимого изменения с графиком. Стоимость работы сервиса составляет от 3 до 70 центов в день. Автор подчёркивает, что познакомился с языковыми моделями всего пару недель назад и начал собирать инструменты для себя, но один из них дорос до публичного продукта.
Ключевая особенность проекта — архитектура воркфлоу, а не агента. В терминологии Anthropic агент самостоятельно выбирает следующий шаг, тогда как воркфлоу следует маршруту, заданному кодом. Модель вызывается только в четырёх точках: для редактуры сводки, для черновика разбора (только при изменении ценового параметра), для трёх проверяющих ролей (факты, методология, риски) и для лёгких ворот перед публикацией. Ни в одной из этих точек модель не решает, что делать дальше. Все остальные процессы — обход страниц, диффы, фильтрация шума, построение графиков, публикация и статистика — полностью детерминированы. Например, коэффициенты корреляции, R², p-value и ρ Спирмена вычисляются кодом и дописываются под текст, поскольку модели запрещено писать эти значения самостоятельно из-за склонности к галлюцинациям. Строки сводки собирает код из диффа страниц: банк, продукт, параметр, было, стало. Модель получает эти строки и переписывает их по-человечески, но не может добавить число, которого нет во входе. Черновик разбора пишется только по триггеру: ценовой параметр (ставка, ПСК, льготный период, платёж) изменился с одного числа на другое. Переписанная страница без изменения цены поводом не считается. Три проверяющих роли получают ровно тот же материал, что видел автор, иначе они честно объявляют выдумкой то, что есть в источнике. Замечания уровня «важно» и выше уходят в одну доработку.
Система проверок включает 14 бинарных оценок: девять для сводки и пять для разбора. Шесть из них выполняются кодом. Цитаты проверяются как подстроки в нормализованном тексте источников: если цитата не найдена, она удаляется. В упрощённом виде это функция quote_in, которая нормализует пробелы и регистр, отбрасывает кавычки и точки и проверяет, что длина цитаты не меньше 12 символов, а сама она встречается в тексте. Все числа в строке сводки должны присутствовать в старом или новом значении изменения. Каждая строка обязана иметь ссылку на источник: банк ведёт на страницу условий, новость на статью, ставка на таблицу ЦБ, акции на карточку бумаги. Шумовые элементы вроде cookie-баннеров, дат, счётчиков и хэшей заменяются заглушками до диффа. Обрезка текста происходит только по границе слова. Линтер стиля запрещает слова «конкурент», «наш банк», «у нас», заменяя их на нейтральные. Перед публикацией разбора черновик уходит автору в личку через второго бота с 15-минутным окном на команду «стоп». Сводка публикуется в любом случае. Автор отмечает, что первые выпуски научили быстро: модель уверенно склеивала два изменения в одну фразу, обрывала цитаты посреди слова, называла cookie-баннер «значимым изменением условий» и один раз написала «конкуренты» так, что стало понятно, из какого банка автор. Каждая такая ошибка превратилась в отдельную проверку.
За первую неделю работы радар выявил несколько показательных случаев. Например, Сбербанк убрал со страницы кредитной карты условие о ставке 9,8%, не указав новое значение. МТС-Банк переписал страницу условий кредитной карты, внеся 21 правку: льготный период теперь указан как «до 111 дней и до 51 дня», минимальный платёж 10% убран, лимит поднят до 1 млн рублей. Газпромбанк записал устройство льготного периода в название тарифа: «приветственный до 120 дней, далее до 60», при этом на странице по-прежнему крупно стоит «до 120». При ставке 59,99% те же 100 000 рублей долга на 120 дней в первом цикле бесплатны, а во втором стоят около 9,9 тыс. рублей. Эти примеры показывают, что число дней на сайте перестало быть ценой продукта — цену задаёт второй цикл. В сводке за 12 сентября также отмечено, что Сбербанк убрал со страницы условий строку «Правила акции „Выдача собственных денежных средств“», а новых новостей по розничному кредиту за сутки не появилось.
Контекст проекта связан с общим трендом на использование больших языковых моделей в финансовом мониторинге. Однако большинство решений либо полагаются на агентные архитектуры, где модель сама планирует действия, либо ограничиваются простым сбором данных без глубокой проверки. «Кредитный радар» предлагает компромисс: LLM применяется для генерации текста и перефразирования, но все критические решения и вычисления остаются за кодом. Это снижает риски галлюцинаций и ошибок. Подобный подход перекликается с опытом другого проекта — генератора учебных заданий, где проверяющий ИИ испортил правильный ответ, переложив слово «маши…ый» из корзины «Две НН» в «Одна Н», хотя в объяснении модель сама пришла к верному варианту. В сохранённом JSON ответа модели-арбитра поле «a» содержало неверный вариант, а текст объяснения — верный, но код читал только поле «a». Этот случай подчёркивает важность детерминированных проверок и осторожного отношения к выводам модели.
Для российского рынка такой инструмент может быть полезен как аналитикам, так и потребителям финансовых услуг. Публичная доступность метрик и ежедневных сводок позволяет отслеживать изменения в реальном времени, а привязка каждой строки к источнику даёт возможность быстро проверить утверждение. Однако остаются открытые вопросы: как система будет масштабироваться при увеличении числа банков, насколько устойчива к изменениям в вёрстке страниц и как будет обрабатывать юридически значимые формулировки. Автор планирует развивать проект, возможно, добавляя новые источники и улучшая проверки. В перспективе подобные воркфлоу могут стать стандартом для мониторинга финансовых продуктов, сочетая гибкость языковых моделей с надёжностью классического кода.