Всем привет! Меня зовут Илья, я инженер-программист, но чаще пишу промпты вместо кода, что привело к некоторым артефактам, о которых ниже.
В данной статье я покажу, как интегрировать n8n с OpenWebUI, вайбкодить по делу и без, а также напомню о том, как найти идею, если кто не знал.
Некоторое время назад я оказался в не очень злачном месте, чтобы «развлекаться» околоинтеллигентными разговорами про экономику, международную политику и научно-технический прогресс. Чем еще было заниматься осенним субботним вечером в 2022 году?

Я остался слегка доволен встречей, не подозревая о том, что данная история стартовала именно тогда. Из сумбурных бесед запомнился термин «Теория Решения Изобретательских Задач» (ТРИЗ), который зацепил настолько, что я заказал бумажное издание «Найти идею» Генриха Сауловича Альтшуллера. После чего сотни дней её «не искал». Трудно начать читать интересную книгу, когда у тебя в очереди десятки ничуть не хуже. Почти как у Георгия Ивановича, на картинке выше. Притом что читать стабильно некогда, как бы ни старались учёные в своих разработках теории времени.
Карьера текла ламинарно, одна работа замещала другую, а «Найти идею» турбулентно лежала на книжной полке, ожидая своего часа. В очередной компании, помимо крутых инженеров, оказалась очень драйвовая корпоративная культура, включающая в себя внутренние митапы, где каждый желающий может рассказать что-то интересное. Поверхностно зная о применении ТРИЗ, я решил наконец-то открыть её для себя и коллег. И попутно обновить опыт выступления на публике, которого не было уже лет 10.

Освоить книгу Генриха Альтшуллера не составило труда, как и сделать презентацию с мемами. Лекторская деятельность — вещь полезная и интересная, если владеть темой. А быть ретранслятором текстов, подготовленных помощниками, — дело, как по мне, неприятное.
В голове отложилось достаточно, чтобы начать смотреть на некоторые проблемы через призму закономерностей развития технических систем и стандартных приемов ТРИЗ. Так, в одном организационно сложном проекте мне пригодился прием «усложни проблему в 2 раза», примененный к одному из тестовых кейсов. Легко решив его в крайне маловероятном сценарии, я попутно реализовал базовый, на который уже затратил много сил и нервов.
Читая «Найти идею», я вспомнил конференцию, где узнал о компании, ориентированной на исследователей и поставляющей услуги по анализу патентной информации. В этот момент на мою голову «упало яблоко», что к их продукту можно прикрутить алгоритм АРИЗ, что теоретически добавит ценности за счет уже имеющихся ресурсов. Цель — для любого запроса с технической проблемой с ходу получать колоду возможных решений и патентную информацию по ним. Наверное, кому-то будет нужен быстрый размен человекочасов на токены по выгодному курсу?
Руководство было открыто для конструктивных предложений, и я, пользуясь случаем, рассказал директору о своей гипотезе, получив зеленый свет на пресейл в случае реализации прототипа. К чему я и поплыл на волнах ночного энтузиазма. Сделал быстро, но благодаря итеративному переосмыслению еще два раза медленно переделывал. Что-то адекватное получилось только на этом этапе, но мыслей по усовершенствованию было еще на полгода-год плотной переработки или до окончательного выгорания.
Спасибо, что под рукой был ларец с ИИ-ассистентами, ускорившими написание кода. Приятно, когда можно дать текстовые вводные и вскоре уже тестировать работоспособность всей системы. И при необходимости поправить, порой с N+10 попытки.

Вся основная «логика» собралась в n8n-workflow, который взаимодействует с Qdrant, используя сервис-адаптер. В качестве интерфейса используется OpenWebUI. Проще этого только раздобыть Claude, Cursor или что-то покруче.

То, что я презентовал на пресейле, было сложнее, но суть та же. Идея понравилась контрагентам, но после нескольких недель раздумий, коммерческой ценности в ней не обнаружили. Несмотря на ожидаемую неудачу, я чувствовал себя бодро, обретя опыт выгула pet-проекта перед потенциальными заказчиками. Если продолжать в таком же духе, то рано или поздно получится заползти на новый уровень. В худшем случае можно интересно провести время, что, по сути, самое главное.
По инерции я еще тлел этим проектом, обдумывая, чего бы такого в него добавить для эволюционирования в полноценный продукт. Но поскольку похожие эксперименты давно ведутся, мне стало любопытнее развить ряд мыслей, которые появились по ходу текущей пьесы. Снова придется многое изучить и перепробовать, надеясь, что Cursor и Claude будут моими верными спутниками. Главное, чтобы не кумирами.

Эту реализацию решил выложить в открытый доступ, в надежде, что кому-нибудь она пригодится. Алгоритм Решения Изобретательских Задач модифицируем и известен во многих версиях, соответственно, каждый может доработать АРИЗ-агента под себя. Полагаю, что в текущем виде он может как минимум быть полезен при изучении ТРИЗ и агентных систем, а как максимум при решении реальных проблем. Ежели вдруг кто-то на этом заработает — переведите часть вырученных средств в любой благотворительный фонд, оплачивающий лечение детям (прописано в LICENSE).
В репозитории самая минималистичная версия из моих экспериментов, максимально близкая к тому, что на сайте Альтшуллера. Но и она, сделанная по большей части с помощью ИИ, дает интересные результаты.
Инструкция по настройке
-
Подготовка
-
Клонировать код:
git clone https://github.com/bazhil/ariz-agent.git -
Перейти в директорию:
cd ariz-agent -
Создать файл с переменными окружения
cp .env.example .env -
Запустить контейнеры:
docker compose up -
После запуска контейнеров открыть три страницы для дальнейших настроек:
— n8n: http://localhost:5678/setup
— OpenWebUI: http://localhost:3000/
— patent-service: http://localhost:8000/docs
-
-
Настройка n8n
-
Ввести учетные данные

-
Перейти в настройки (Settings > Community Nodes) и установить расширение n8n-nodes-gigachat

-
Указать ключ GigaChat в Credentials

После ввода ключа должно быть успешно проверено подключение.

-
Копировать воркфлоу, устранить все замечания в нодах, активировать и сохранить.

-
-
Настройка OpenWebUI
-
В настройках отключить автогенерацию заголовка, продолжения и тегов чата. Если этого не сделать, то результат будет сильно хуже из-за использования лишних сущностей.

-
Перейти в панель администратора, создать функцию и вставить код, который будет звать n8n webhook trigger по соответствующей ссылке.

Важно убедиться, что в N8N_WEBHOOK_URL указан именно тот URL, который содержится в n8n webhook trigger. Также увеличить таймаут. Обратите внимание, что на в ссылке может присутствовать «webhook-test», который полезен при отладке, но после его следует исправить, оставив только «webhook». Так не придется запускать воркфлоу в интерфейсе n8n для каждого запроса.

После этого включить функцию, тумблер должен стать зеленый.

-
-
Загрузка патентов в Qdrant
-
Открыть Google Patents (доступ с российским IP ограничен) и выкачать .csv по любым интересующим темам.

Когда я начинал делать данный проект, проблем с доступом не было, а сейчас уже нет времени дорабатывать под альтернативные источники патентов, поэтому You are welcome to Pull Request.
-
Открыть patent-service и загрузить данные патентов из .csv в Qdrant, учитывая упомянутые выше ограничения.

В ответе получаем статус с task_id, по которому можно отслеживать прогресс загрузки патентов.

-
После того, как нужные данные будут в хранилище (проверяется в /load_status/{task_id}), можно приступать к работе.

-
После настройки перейти в чат с функцией ariz в OpenWebUI и ввести свой вопрос, подкрепленный контекстом проблемы. Чем больше информации о проблеме будет на входе, тем релевантнее будет ответ. Но и с голым вопросом агенту есть что рассказать. Процесс занимает некоторое время, но по сравнению с «ручным трудом» это мгновение.
В ответе выводятся идеи по степени новаторства, от прорывных (рисуют фантастическое завтра) до обычных (трудовое сегодня) и наиболее близкие патенты под них. Такой пасьянс потенциальных решений с большей вероятностью предоставит пользователю полезную информацию, снизив степень неопределенности. И если повезет, то даже позволит спрогнозировать пути дальнейшего развития целевой системы. А кто предупрежден — тот вооружен.

При разработке я использовал патентные данные по беспилотникам. Тема настолько «веселая», что, не особо погружаясь в неё, можно бегло оценивать не только отчеты агента, но и уровень компетенции как отдельных энтузиастов, так и «полноценных разработчиков и производителей». Например, если подружить дрон с перцовым баллончиком и громкоговорителем — задача тривиальная, то научить БПЛА эвакуировать субсидии из бюджета на дальние расстояния — «высший пилотаж» от НИОКР.
Выводы:
-
Если почитывать Хабр и книжки, праздно шататься по лекциям и конференциям, то дельная мысль может «прилететь в гнездо» даже там, где лучше вообще не появляться.
-
В открытом доступе много топлива для генерирования идей и инструментов для их реализации.
-
Различные «методологии» целесообразно «перекладывать» на ИИ-агентов, что теоретически облегчит работу как отдельным специалистам, так и коллективам.
-
Продуманная и человечная корпоративная культура может подтолкнуть сотрудников к саморазвитию и творчеству, что, в свою очередь, способно привлечь энергию денег.
-
ИИ значительно облегчает разработку и меняет мир, что наводит на мысли об изменении роли человеческого труда. Интересно смотреть на это сквозь призму гипотезы техно-гуманитарного баланса.
Согласно докладу ВЭФ 2026 года, любознательность и эффективное использование ИИ крайне важны для карьеры. А про высокие баллы ЕГЭ нет ни слова.
-
ТРИЗ не теряет актуальности, скорее наоборот. Косвенно это подтверждает доклад ВЭФ 2023 года, где среди наиболее востребованных навыков будущего выделена креативность.
-
Вроде получилось сделать вклад в OpenSource. Теперь можно мечтать о чем-нибудь великом.

ссылка на оригинал статьи https://habr.com/ru/articles/1077144/