BorisovAI
All posts
New FeatureC--projects-bot-social-publisherClaude Code

Когда AI не хочет писать из ничего: фильтр для умного генератора

Когда AI не хочет писать из ничего: фильтр для умного генератора

Когда данных меньше, чем нужно: фильтр для генератора статей

Работаем над bot-social-publisher — проектом, который автоматически генерирует технические статьи из логов разработки. Казалось бы, всё просто: собрал данные, передал AI, получил статью. Но вот незадача — иногда система начинала генерировать полноценные посты из буквально трёх строк лога о том, что где-то кто-то что-то нажал. Результат был печальный: статьи получались пустые, безсмысленные, как пересказ покупки хлеба в магазине.

Задача стояла конкретно: нужно было добавить умный фильтр, чтобы система не тратила AI-ресурсы на генерацию из скудных данных. Критерии были такие — если логов хотя бы 1000-2000 строк, смело генерируем полноценную статью. А вот если проекта всего 500 строк, но при этом трёхдневный перерыв в коммитах, то это тоже сигнал к действию — значит, произошло что-то достаточно интересное, чтобы остановиться и задокументировать.

Первым делом я разобрался в логике сбора данных. Выяснилось, что текущая версия просто агрегирует всё подряд без оглядки на объём и релевантность. Добавил двухуровневую проверку: сначала считаем количество строк в логе, потом анализируем, был ли перерыв в активности. Это как в медицине — смотрим и на объём анализов, и на симптомы.

Неожиданно выяснилось, что определение «объёма данных» — вещь субъективная. Что считать строкой? Пустую строку? Комментарии? Я решил, что в расчёт идут только значимые строки — строки с информацией о коммитах, изменениях, добавлении функций. Это намного более честная метрика, чем просто считать всё подряд.

Интересный момент про временные промежутки в разработке: они часто означают ровно то же самое, что и большой объём кода. Если разработчик два дня молчал, а потом закоммитил небольшой, но критически важный фикс — это история, которая достойна документирования. Код может быть кратким, но контекст за ним огромный.

В результате система теперь работает как надо: отсеивает шум, но не пропускает действительно интересные эпизоды разработки. Статьи стали качественнее, перестали быть водяными. И главное — экономим время и ресурсы на попытке выжать историю из пустого места.

Вывод простой: фильтры в автоматизации — не помеха, а спасение. Иногда лучше ничего не сказать, чем сказать что-то бессмысленное. 😄

Metadata

Session ID:
0548069e-c586-4e70-9bb1-2f2321b228b0
Branch:
main
Dev Joke
Почему JavaScript разработчики не любят природу? Там нет консоли для отладки