📱

Get Our Mobile App

Take your business learning on the go!

Download on the App StoreGet it on Google Play

AI-АГЕНТЫ В N8N от простого чата с LLM до сложных цепочек и делегирования задач | Михаил Омельченко

Михаил Омельченко17:24

Transcription

Всем привет. Меня зовут Михаил, и сегодня мы с вами разберёмся, как с помощью NA, чтобы у нас запускались чаты с LM, чтобы у нас были агенты и как их настроить, и, соответственно, как сделать агентов, которые будут работать совместно, агент-менеджер, который будет делегировать задачи другим агентам для того, чтобы выполнить задачу, которую ставит пользователь.

Итак, я сейчас покажу вам, из чего всё это состоит, где я это запускаю, каким образом. И уже потом перейдём к workflow. Соответственно, где-то я буду вдаваться в определённые детали для того, чтобы новичкам было понятно, и где-то буду опускать определённые вещи, чтобы не затягивать. Это будет серия видео и стримов по N10, и мы будем разбирать, а, определённые, так скажем, особенности и строить workflow для того, чтобы каким-то образом автоматизировать определённые процессы и воспользоваться LLM.

Я NTM запускаю локально у себя на компьютере и для этого я использую Docker. Это мой Docker Compost файл, где я описываю, каким образом у меня будет запускаться N. Что у нас здесь есть? Сам image N10, последняя его версия. Дальше у нас прописываются переменные для подключения к базе данных и к нашему кэшированию. Здесь мы будем redis использовать. А также базово пока что прописан webhook. Это нужно, если мы захотим, к примеру, с Телеграма там получать сообщеньки. Это в следующих сериях у нас будет. Дальше у нас execution mode стоит как очередь. Это значит, что наши workflow будут нормально проспараллели, выполняться. И для этих очередей мы будем использовать, собственно, Redes. Работает она у меня на стандартном порту 5678. Дальше для сохранения данных, которые есть у нас в NEN, я выбрал директорию, которая лежит здесь же, у меня в проекте NN data. И у нас зависимость от базы данных с Postgress и Redes. Здесь обычные самые подключения погрес семнадцатой версии и прописаны креншены для доступа а к базе данных. И также данные BD я сохраняю здесь у меня в проекте PG data и, собственно, а кэшредиса. Мы здесь просто используем redдиis и никаких определённых там настроек у нас нету.

Так как я работаю на отличной операционной системе Windows, соответственно, мне просто нужно для запуска сделать следующее. Я использую Docker desktop. Вот он он у меня. И здесь единственное, что мне нужно - это запустить мой контейнер с NA10. Всё запускается, всё работает. Окей, разобрались. То есть это у меня не в облаке, локально. Также я это спокойно смогу поднять на сервере, и оно у меня будет работать.

Теперь давайте посмотрим, куда мы будем ходить для того, чтобы у нас работал lm. Я не использую, а сторонние API облачный, ни CH GPT, ни Gemini и так далее. То есть у меня есть сервер, я сейчас покажу. А у меня сервер есть на Immers Cloud. Это у меня Tesla H100 здесь стоит на 80 ГБ, 64 ГБ АУ и 480 диск. Сегодня я буду использовать Quн 3 30B. И мне нужно запустить мой облачный сервер. Сначала его нужно поднять с полочки, потому что когда он на полке, сам том сохраняется, то есть данные диска, и тарифицируется по маленькой цене, а не всё железо. Если просто выключить сервер, то он тарафицируется как используемый. А таким образом при положить его на полку у него освобождаются ресурсы и уже не кушаются как за запущенный сервер. Он сейчас выйдет из режима, активируется, и мы запустим нашу LLM. При запуске LLM я покажу два определённых тонкостей запуска с определёнными флагами для того, чтобы у нас работали инструменты.

Сервер активный. Собственно, я использую Power. Ну, всё, как нормальных людей в виндоусе. Итак, значит, подключаемся к нашему серверу. У меня уже всё настроено, установлено на сервере. То есть у меня здесь запускается VLM для запуска моделей. Модели уже скачанные. Я не использую Docker на сервере, так как это у меня всё равно сервер для тестов. Запускаю с помощью питона в VLM. Активируем виртуальное окружение и посмотрим на команду, которую мы будем запускать.

Что у нас здесь есть? Давайте быстренько разберёмся. Мы запускаем в LLM. Дальше здесь у нас есть вот команда Surve. Указываем, что это 30B с определённым квантованием. Дальше у меня идёт мой AP, который будет использоваться, должен быть использован при запросах. Для выделения памяти видео у меня используется 90% всей памяти видеокарты. А максимальное количество токенов, которые может идти за запрос - это 30.000. Я ограничил. И здесь два важных параметра - это enable autools choice, то есть, чтобы у нас можно было выбирать наши инструменты, иначе N а и агент не сможет выполнять задачу, да, с использованием инструментов. И следующий флаг - это Tool call Parser. И здесь у меня указан Hermes. Для того, чтобы работали мои команды по использованию инструментов. Ну, и порт 8.000. Запускаем нашу LLM. Нужно подождать, пока он всё прогрузит и загрузит всё в память. Модель загружена, запущена, и API нам доступен.

N, соответственно, у меня бесплатная лицензия. Мы, когда первый раз запускаем, он у нас запрашивает наши данные и при входе там просит активировать лицензию. Мы можем как-то определённый тариф купить, а можем бесплатную версию. Нам на почту вышлится ключ, мы его активируем и всё.

Значит, вот у нас пустой с вами workflow. Можно ему поменять имя. Слева вверху клацаем и пишем тест. Нажимаем вот сюда на плюсик или справа на плюсик. И у нас выпадают ноды, которые мы можем с вами реконнектить. Первая нода - это у нас триггер, то есть с чего начнётся наша работа. Нажимаю сюда, и у нас вот здесь показываются возможные триггеры. Мы можем начать писать, и у нас срабатывает поиск. Мы можем выбрать что-то из поиска. На самом деле очень много здесь разных коннектов. Нас интересует чат триггер. Ничего здесь не меняем. Вот у нас есть это чат.

Дальше мы можем нажать на плюсик. И у нас опять появляется это окошко, где мы можем уже выбирать другие наши ноды. Здесь нас интересует base chain llm. Здесь в появляющемся окошечке у нас есть следующие настройки. У нас вот видите connectт trigger node, то есть с какой нодой мы соединены и что оттуда будем получать, какую информацию. В нашем случае это вот этот чат input, который есть в прошлой нашей ноде. Чтобы посмотреть, какие есть данные из прошлой ноды, мы можем здесь вот нажать выполнить предыдущую ноду. Чтобы она сработала, нам нужно, к примеру, что-то написать в чат. Давайте напишем хай и посмотрим, что произойдёт. У нас эта нода сработала, это выдало ошибку по той причине, что у нас нету никуда коннектов дальше к LM.

Давайте посмотрим. Теперь слева видите, у нас есть как session ID, action, то есть отправка сообщения была и chat input - это high. Как раз вот этот чат input. И будем вот сюда передавать. То есть это наш как prompt user message, да? То есть то, что пишет пользователь. Ниже у нас есть ещё опции, которые мы можем выбирать. Давайте посмотрим, что это. Это добавить промт. Какой у нас есть? Системный промт и пользовательский промт. И здесь, соответственно, мы пишем само это сообщение, то есть наш промт. Пока что здесь оставим всё как есть, ничего не трогаем.

Вот здесь модуль, который мы с вами используем. Нажимаем на плюсик. И справа у нас появляются разные вариации того, куда мы можем с вами присоединиться, к какой к какому API, какой нейронной сети, как поставщика, провайдера нейронных сетей, начиная от Open AI, заканчивая Гуглом. Так как мы запускаем это у себя на сервере LLM с помощью VLM, у нас API схожий с Open AI, поэтому мы выбираем Open AI Chat Model. И здесь, так как у меня уже есть подключенный мой аккаунт, здесь у меня ключ, мой токен, и вот здесь у меня указан мой IP-адрес, порт и обязательно ID для того, чтобы срабатывали мои модели. И если мы нажмём на вот этот списочек, увидим доступную сейчас нам модель. Это Qu. Ниже у нас есть определённые опции. Опции, которые позволяют нам более детально настроить нашу модель. К примеру, максимальное количество попыток, максимальное количество токенов, температура и так далее. Мы оставляем всё по умолчанию, ничего не меняем.

Вот таким образом мы создали с вами три ноды. Давайте попробуем опять отправить некое сообщение. Напишем привет. Видим, как запустился наш чат и сработали две ноды. И в ответ мы получили, что это, который был у нашей модели. И дальше сам ответ: "Привет, как дела? Расскажи, чем я могу тебе помочь или что тебя интересует. Всё, что угодно, от советов до простого разговора". То есть, по идее, а мы получили с вами ответ и наши ноды работают.

Дальше, когда у вас сработала вот эта история, вы можете дальше прокидывать определённые, какие вам нужно ноды для того, чтобы у вас что-то работало. Это может быть что угодно. Моя задача была сейчас показать просто, что оно работает. Соответственно, вот этим триггером может выступать не только вот этот внутренний, так скажем, чат. Давайте посмотрим, что у меня здесь есть, и разберёмся, а потом разберём это детальнее в формате. А что же здесь происходило? У нас всё та же нода нашего чата, которая запускается. И здесь у нас новая нода, называется AI agent. EI agent отличается от от простой base chain lm тем, что это агент. У него есть также подключение к некой модели LLM. У него присутствует память и есть возможность использовать некие инструменты. Пусть будет почта и Google документы. И мы пишем нашему агенту: "Посмотри в почту, есть ли там новые письма". И он идёт, открывает почту, смотрит новые письма и присылает нам ответ. Вот там новое письмо. Или мы говорим наоборот: "Отправь письмо вот там по такому-то адресу и придумай красивый текст этого письма". Он это сделает и отправит. А в этом идея. И для того, чтобы вот эта история общения между пользователем и lm она сохранялась, у нас есть для этого память.

Давайте посмотрим, как это дело работает. Я напишу некое сообщение. Я хочу открыть магазин по продаже сухих веток. что мне для этого нужно. И отправляем сообщение. Давайте посмотрим, как работают наши агенты. Что произошло? Сработал вот этот агент, отправил сообщение на нашу модель. И дальше у нас вот крутятся ещё наши другие тоже агенты. Все они соединены с одной нашей моделью, которая используется на сервере. И у всех у них одна вот эта общая память. Что сейчас происходит? Давайте посмотрим. Вот они подумали, что-то у них был сынкин. Комплексный стратегический план для открытия магазина по продажам сухих веток. Маркетинговая стратегия. Брендих. Создать уникальное торговое имя, например, сухие ветки. Экологический дизайн. Разработать логотип и стиль, отражающий экологические и эстетику сухих веток. Дальше это СМО у нас, а, топ-менеджер обсуждает. Дальше CTO инфраструктура, что потребуется, к примеру, сервер. Система нужна и интегрировать онлайн платформы системой доставки, например, Яндекс Market или Сберкет. Автоматизации, какие нам нужны. Финансовый план, значит, аренда помещения 500.000 в месяц, закупка товара миллион. Представляете, на миллион веток сухих накупить, реклама 300.000 и на всякие технологии там 200.000. Есть операционные расходы. Доход средний чек 1500. Вы готовы купить сухие ветки за 1500? Програноз продаж. 100 заказов в день. X30 умножить на полторы, значит 4,5 млн в месяц. Нормально. Можно заработать на сухих ветках. Я даже не знал. А стратегическое руководство, что значит, что SEO нам отвечает. И вот общие выводы. Какая у них синергия? Маркетинг привлекает клиентов на чём акцент? на устойчивых материалах и упаковке для привлечения целевой аудитории. Экологичность. Масштабирование: после стабилизации бизнеса расширить на онлайн-продажи и франчайзинг. Рекомендация: начать с малого, открыть одного магазина в мегаполисе, протестировать модель, затем масштабировать. Наши топ-менеджеры обсудили идею магазина по продаже сухих веток.

И давайте теперь посмотрим, как это дело работает под капотом и что у этих всех агентов здесь есть. и как они вместе срабатывают. С чатом всё понятно, здесь ничего интересного. С иагентами давайте разбираться. Итак, у нас есть промт, который делает из нашего эагента менеджера, и его задача- не придумывать ответ самому, управлять, так скажем, делегировать, правильней сказать, задачи нашим другим агентам и давать только результат. Давайте посмотрим промт, который здесь написан. Ты менеджер и сам не даёшь ответ пользователю и должен делегировать вопросы другим топ-менеджам, вызывая инструменты, чтобы они обсудили идею пользователя и дали ответ. Идея пользователя. И здесь мы подставляем вот чат input, что написал пользователь. В ответе для пользователя должен быть комплексный стратегический план с решением от каждого топ-менеджера и общими выводами. Если мы посмотрим, что делает вот output наш, да, то есть у нас есть вот чат input. Я хочу открыть, значит, магазин по продаже сухих веток. И посмотрим, как думала наша модель. Хорошо, пользователь просит комплексный стратегический план и так далее. Нужно собрать информацию со всех топ-менеджеров, и он видит топ-менеджеров, всех подключённых к нему. Сначала посмотрю на ответы, которые уже были получены. Это он ходит в память. А предложил в стратегии маркетинга то-то, то-то, то-то. И вот дальше у них идёт, ну, обсуждение, что они, кто что даёт ответ. Идёт какой-то summarize.

Теперь давайте посмотрим на каждого нашего агента. Они подключаются через tool. И это нода, которая называется, сейчас я вам её покажу, AI agent Tool. Вот эту ноду я использую для других моих агентов. То есть это не нода вот этого AI агента, агент AI Tool. Итак, давайте посмотрим на вот этого SEO. По сути, у него здесь просто задана роль, что он генеральный директор и как он должен себя вести всего лишь-навсего. для CFO тоже самое, только уже с его что это финансовый директор. CTO - это технический директор. У него у них у всех прописана роль, цель и предыстория. То есть такая ролевая модель идёт. Все они подключены к базе данных. Здесь у нас, если мы посмотрим на ноду - это simple memory. В моём случае я передаю вот этот session ID для того, чтобы у нас как бы сохранялась история того, что происходило. И здесь у нас вверху мы видим, какие в нашем случае ноды агенты к нам подключены. И в уже известный вам чат model у нас выбран просто наша 3, которая поднята на сервере. Но мы можем для каждого этого агента указывать свою модель нейронной сети, с которой он будет взаимодействовать. Таким образом, как бы распределив задачи, ну, грубо говоря, нагрузку, да, и чтобы использовать, к примеру, более слабые то есть, если агент, он должен чуть-чуть быть посильнее, чем остальные. У него должна быть возможность у этой LLM использования инструментов. Если вы используете какой-то свой API, оно будет спокойно работать. Большинство сейчас нервных сетей умеют работать с м инструментами, и типа всё будет хорошо.

Не скучайте, не болейте. Всем пока. biofonic.com