Не одна программа на всё, а тонкое ядро и независимые цеха
Когда собираешь систему на базе ИИ, первое желание - написать один большой сценарий, который сделает всё сразу: возьмёт тему, обработает моделью, отправит результат. Работает это ровно до первой новой задачи. Стоит добавить шаг - и приходится лезть в код, который уже работал, и рисковать сломать то, что было проверено.
Я прошёл через это на своём контент-заводе - системе, которая каждое утро сама выбирает тему, пишет статью и разносит её по каналам. Первая версия была одним большим потоком: тема - модель - публикация. Как только понадобилось добавить проверку фактов и отдельную адаптацию текста под конкретную площадку, стало ясно, что дальше так строить нельзя - любое изменение задевало соседние шаги.
Решение оказалось инженерным, а не про модель. Вместо одной программы, которая делает всё, завод построен как тонкое ядро и набор независимых цехов. У каждого цеха один контракт: на входе файл определённого вида, на выходе тоже файл определённого вида. Цех не знает, что происходит до него и после. Ему важен только формат.
Это меняет то, как растёт система. Добавляю новый шаг - например, отдельный цех, который снимает голос конкретного канала с реальных постов и превращает его в измеримые признаки - и мне не нужно трогать то, что уже работает. Цех подключается по контракту, остальные его не замечают.
Тот же принцип работает не только в коде. В любой системе - производственной, маркетинговой, управленческой - модульность через контракт защищает от эффекта домино: правка одного участка не должна ломать соседний просто потому, что кто-то решил ускориться и связать всё напрямую.
Разобрал этот и другие принципы по шагам здесь: Система искусственного интеллекта для чайников: разбор завода
Живые примеры таких цехов и то, что они уже собрали, я складываю в витрину кейсов
А как у вас устроена связь между частями системы или процесса - через прямые связи или через контракт на входе и выходе?