# ПОЛНЫЙ ГАЙД на n8n. ИИ агенты и автоматизации (5+ часовой курс) [Без кода]

## Метаданные

- **Канал:** Владимир Карпухин
- **YouTube:** https://www.youtube.com/watch?v=tUufFo-JTZQ
- **Дата:** 01.01.2026
- **Длительность:** 5:21:33
- **Просмотры:** 70,429
- **Источник:** https://ekstraktznaniy.ru/video/15166

## Описание

Узел дня. Разбор ВСЕХ нативных узлов в n8n - https://web.tribute.tg/s/FwG

https://t.me/vladimir_kkkkk - телеграм канал (смотрите закреплённый пост)
Ищите материалы к роликам в тг по названию видео

--------------------------------

n8n - https://n8n.partnerlinks.io/9f51nckey33z
beget - https://beget.com/p2340235/cloud/marketplace/n8n

В этом видео я, Владимир Карпухин, представляю полный гайд на n8n - самое подробное обучение на русскоязычном YouTube! Покажу, как освоить n8n с нуля через полное обучение n8n, разделённое на 4 свитка.
Первый свиток: знакомство с автоматизациями и узлами. Второй: JSON и типы данных. Третий: API и HTTP request. Четвёртый: AI, LLM, нейросети. Разберём создание ии агентов и ии автоматизации. Узнаете, как работает ИИ: что такое MCP, RAG, промты, контекстное окно, эмбеддинги и reasoning модели. Это полноценный ИИ курс от основ до продвинутых тем. Даже без знания программирования всё будет понятно! Изначально планировал продавать это, но решил сделать бесплатн

## Транскрипт

### Структура гайда []

Это самый лучший гайд на N8N на русскоязычном Ютубе. Это лучшее видео, чтобы начать знакомство с этой программой. И даже если вы уже продвинутый пользователь, вы всё равно много что здесь подчерпнёте. Этот гайд ответит на большинство ваших вопросов касательно N8 Man, даже на те, которые вы ещё не успели сформулировать. Это максимально подробное и понятное видео настолько, что даже если вы вообще не разбираетесь в программировании, не умеете кодить, даже не знаете, что такое сервер, то вам всё равно всё будет понятно. Информация из этого ролика сэкономит вам сотни часов самостоятельного изучения. И изначально я хотел сделать из этого курс и продавать его за деньги, но я передумал. Вступление есть. Едем дальше. Что у нас по структуре? Смотрите, суперстильные иллюстрации, крутые картинки, сгенерированные в нанобона Pro. Кучу времени на это всё потратил. Очень много времени. Потом файл из видео оставлю в своём Telegram-канале. Делайте с ним, что хотите, только указывайте меня как автора и подписывайтесь на Telegram сразу же. Видео длинное. Сохраните всмотреть позже. Пересматривайте отдельные темы по тайм-кодам. У этого видео есть тайм-коды, обратите на них внимание. Там расписаны темы. И этот гайд состоит из четырёх основных свитков. Вот они. Почему свитки? Сейчас будет понятно. Во-первых, это свиток один знакомство с NN. Мы разберём, зачем нужны N8N автоматизации и вообще, в принципе, и автоматизации. Разницу между и агентами и автоматизациями либо и автоматизациями. Будет у нас первая практика в NVO CAN. Узнаем, что такое узлы в NVO CEN. Разберём их и установим NVO CN на свой сервер. Второй свиток. Мы будем разбирать, что такое jonпы данных в N8 Men, потому что один из толпов Nvo - это JSON, то есть формат записи данных. Мы разберём, что такое JSON, какой есть синтаксис в JSON, что такое айтемы в NVO SEAN, какие есть форматы отображения данных в NVOm, JavaScript выражения разберём и data tables в NVO CN. В третьем сфитке мы разберём всё то, что касается API и HTTP реквестов. Разберём, что такое API, что такое HTTP запрос, какие есть HTTP методы, какие есть HTTPстатус-коды, что такое Webook, креal вvocen, то есть менеджер паролей и методы аутентификации API. И в четвёртом свитке мы разберём всё то, что касается AI. Что такое LLM, Large Language Models, как они работают, что такое параметры в LM, что такое температура, что такое эмбединги, что такое модели, что такое контекстное окно, что такое контекст инжиниринг, который, возможно, вы слышали очень много раз. Хайповая тема. Что такое РГ? Откуда взялась проблема контекстного окна? Стриминг ответов LLM, как писать промт LLM. Что такое селфost модели LLM? Приколы с API для LLM и агенты. Что такое MCP и что такое HGI и ACI? А этот текст не для вас, это для меня. И вот они наши, вот они, вот они наши свитки, четыре свитка. Почему свитки? Потому что вот так вот я информацию расположил вертикально. Похоже на свиток.

### Свиток 1. Основы n8n [3:09]

Ну что, начинаем полный гайд официально это было

### Знакомство с n8n. Что это такое? [3:13]

вступление до этого. Знакомимся с N8N. Что такое N8N? N8N - это no cД, low Code, open source сервис для связывания разных приложений между собой, которые работают через визуальный редактор. Просто соединяем блоки стрелками. Реализуется это через узлы или ноды Nodes по-английски выглядит это примерно так. Ну, не то, что примерно, в принципе, так оно и выглядит. То есть вот они получаются сами узлы, но, визуальный редактор, стрелочки там двигаем, добавляем, что нам надо, и получается автоматизации. А код L код, что это значит? То, что здесь нам не требуются навыки программирования, чтобы что-то в нём делать. Ээ, но тем не менее код можно всё равно использовать. Делается это через узел Code вот такой вот код in JavaScript. Здесь можно писать код в джаваскрипте в Пайthне, но лучше в JavaSрипте, потому что Python beta. Open source - это значит то, что открытый исходный код. Значит, мы можем N8N поставить куда угодно, на ваш компьютер, на сервер. Об этом тоже будет сейчас чуть дальше. То есть с помощью N8N можно связывать между собой любые сервисы, у которых есть API, то есть Telegram, Google таблицы, Bitx, даже локальные файлы на ПК, там 1S, прости, Господи, ВК, Яндекс, ну, что угодно. Короче, вы можете связывать с N8N, можете сделать свою программу, поднять там какой-нибудь API endpoint и тоже связать это с N8N. Почему бы и нет? Интеграция сервисами очень простая. таких интеграций больше тысячи включая комьюнитиноды. А если интеграции нету, но у сервиса есть API, подключить его в NM всё равно можно, как я только что и сказал. То есть, например, Яндекс интеграций официальных нету в NV8 MN, но у него есть API, и мы можем подключить его спокойно через узел HTTP request. Вот они все эти интеграции. То есть нажимаете на плюсик action app и пожалуйста. То есть вот они бесконечное количество всяких разных приложений готовых интеграций. Вот Google таблицы, Google документы, Google переводчик. О, кстати, Gina AI появилась, раньше его не было. Главный прикол - это то, что мы можем связывать все эти сервисы с EИ, то есть там с чатом GPT, с генераторами изображений, видео и так далее. Я думаю, вы представляете, какие возможности открываются. связать что угодно с ИИ. Получится EИгент, ИИ и автоматизация. Очень много всего можно с этим сделать. По сути, с помощью N8N можно делать то, что обычно реализуется через код, через программирование, но преимущество перед кодингом в том, что зачастую здесь это происходит быстрее. А если, конечно, автоматизация не слишком уж сложная и навороченная, которая требует прямо, а, которая должна выдерживать прямо огромную нагрузку, то, ну, большинство автоматизаций, которые вы собираетесь делать, их будет быстрее сделать в NOm, нежели чем через код. А главное, освоить NV CMN могут даже те, кто вообще ничего не понимает в IT. И чтобы его освоить, нужно для начала посмотреть это видео. Зачем нужны N8N автоматизация?

### Зачем нужны n8n автоматизации? [6:20]

Либо для экономии времени, либо для заработка денег. То есть просто так там автоматизации делать, потому что это прикольно внедрять и потому что и на хайпе, ну, в этом смысла нет. Это, ну, зачем это делать? Поэтому по факту автоматизации нужны для того, чтобы внедрять их в бизнес, в рабочие задачи. И в первом случае они экономят нам деньги. Во втором случае они нам напрямую зарабатывают деньги. Как это работает? Вот есть, например, экономия времени сотрудников. Это является экономией денег, потому что сотрудник работает меньше времени, оплата у него почасовая, вы ему платите за этого меньше денег или вы его можете там загрузить другими задачами. Ну, например, автоматическая обработка заявок, да, которую можно сделать через N8N. Заявка приходит с сайта, автоматически создаётся карточка вашей CRM, там, не знаю, в Битриксе, отправляется уведомление менеджеру, клиенту приходит автоответ и получается экономия там 15 минут на каждую заявку. Ну да, примерно. Я это не сам писал, я это с помощью клода написал, поэтому не обессудьте. Второе - это синхронизация данных между системами. Появляется новый клиент в сером, в Битриксе, например, да, там, я не знаю, вам и сером где-нибудь. Автоматически добавляется в email рассылку, создаётся папка в Google Drive, добавляется в таблицу аналитики. То есть это всё происходит автоматически, это вообще не сложно реализовать. Третье - это автоматические отчёты. Каждое утро собирается статистика из разных систем. Там делается парсинг, может быть. Формируется отчёт в Excel, отправляется руководителю экономию 1-2 часа в день. Что касается заработка денег, это была экономия времени, значит, экономия денег, а автоматизации в маркетинге и продажах зарабатывают деньги, потому что больше людов, больше продаж мы делаем с помощью этих автоматизаций. Например, персонализированный холодный mail. То есть мы берём список компаний. Список компаний можно составить тоже с помощью ресча. Сделать это через автоматизацию. автоматически ищем контакты на LinkedIn, а обогащаем данными, там должность, интересы, генерируем персональные письма с учётом специфики бизнеса и отправляем в оптимальное время. Ну и результат: коэффициент открытия до 45%. Отклик в три-четыре раза выше массовых рассылок. Потом можно делать квалификацию лидов через исследование, то есть новый лид. Автоматически анализируем сайт компании, ищем упоминания в новостях, проверяем финансовое состояние, оценку, размер отрасли. присваиваем скоринг, сегментируем по приоритету и результат экономит 2-3 часа на исследование лида. Точность квалификации 85%. Ну, это условные цифры, это не конкретный проекты. Потом есть там прогрев лидов через ракчатботы. То есть ракчатботы - это чатбот, который обладает всей информацией о вашей компании. То есть он отвечает на основе вашей информации вашей компании, которую вы ему предоставили. как чат GPT, только вот чисто по вашей компании, по вашим данным. Там лид задаёт вопрос боту, он ищет по базе знаний компании, генерирует персонализированный ответ, фиксирует интересы и приготовности к покупке автоматически передаёт менеджеру с контекстом диалога. Результат 24x7, коммуникация, конверсия встречи плюс 40%, лид приходит тёплым, то есть вы можете прогревать лида через вашего ракчатпота, как вариант. И так далее. Применять можно везде, особенно учитывая, что мы можем использовать и, то есть вы сами можете придумать, где это всё можно применять. Если пока вы не можете придумать, сейчас вы ролик посмотрите, поймёте, что умеет вот эта программа более подробно у вас в голове столько сценариев появится для того, чтобы что-то автоматизировать. Полезные

### Полезные ссылки для n8n [9:53]

ссылки. Какие есть полезные ссылки касательно N8N? Это, конечно же, документация, это комьюнити и от шаблона. И показываю каждый из этих сайтов, как с ними работать и кто такие шаблоны. Надо ещё рассказать. Во-первых, документация. Ссылки будут в Телеграме, скорее всего. Все переходите в Telegram, там подписывайтесь сразу, чтобы не забыть, и смотрите пост. Вот она, документация N8N. А здесь можно, конечно же, читать нутную документацию, но самое интересное, что тут есть, это вот волшебная кнопочка chat with Docs. Здесь у них встроенный рагагент, где с которым можно переписываться касательно документацие N8N. Например, вы хотите у него спросить, что такое триггеры. И он сейчас на основе документации NM будет нам отвечать. То есть он отвечает только на основе документации Nem и даёт объяснение в NVN триггер - это специальные узлы, которые запускают выполнение рабочего процесса при наступлении определённых условий или событий. Приводит примеры Skedle Trigger, Webhook, Telegram, Figma, Slack, Envo Trigger. Также тут есть режимы deepфинкинга. То есть, если вы хотите, чтобы он подумал перед своим ответом про рининг модели и что значит подумать перед своим ответом в случае LLM, про это тоже тут будет гайд очень большой. Если вы хотите, чтобы он подумал перед своим ответом, делайте вот так. Ну, спрашивайте что-нибудь, что такое Webhook. Нажимаем на кнопочку Deep Thinking. Теперь он отвечает дольше, но зато более осмысленно, так сказать, и качество ответа повышается. То есть в случае, если вам что-то непонятно про N8N, вам, естественно, лень читать документацию, потому что документации читают только кодеры, наверное. Ну, я не знаю, вот мне лень читать документации, но хотя всё равно приходится. Переписывайтесь с чатботом на основе документации. Вот он объясняет, что такое webhook, http URL, адрес и так далее. Более того, это можно подключить как MCP куда угодно. То есть можете добавить это в clклод сразу же. Сам только об этом узнал, только увидел. Потом есть Community N8N. А вот она ссылочка на комmь n. Это как э Redit, наверное, хотя на Redте я никогда не сидел для N8N. То есть тут люди спрашивают, отвечают, делятся темами какими-то касательно NCMN. То есть здесь можно сидеть, читать, отвечать. Там есть вот вопросы, есть туториалы. Вот, кстати, NateхK, наверное, самый популярный блогер именно по Nem на англоязычном Ютубе. И он, скорее всего, с Nem контракт подписал. И я тоже хочу подписать контракт с N8N, поэтому N8N, если вы это смотрите, свяжитесь со мной. Потом есть шаблон NVO CEN. Открывайте ссылочку. Что такое вообще шаблоны в NVO CN? Это, чтобы не создавать каждый Workflow с нуля, в NVO CN придуманы шаблоны. То есть вы можете абсолютно любой ваш рабочий процесс, абсолютно любой шаблон, который вы создали, в том числе вот я создал, например, этот шаблон, а, нажать на три точечки сверху, download, скачать, он будет у вас в формате JON. на вашем компьютере. И теперь вы можете зайти в новый пустой проект, нажать на три точечки import from file и загрузить заново этот шаблон. То есть вот, поняли логику? Я думаю, поняли? То есть вы можете создавать тут любые рабочие процессы и просто их сохранять. И в комти уже сохранено огромное количество таких шаблонов. То есть люди их создают и они делятся. Есть тут платные шаблоны, большинство тут их бесплатные. Можно тут поискать что-нибудь, например, вот маркетинг, support, IT, OPS и так далее. Вот листаете вниз. Тут, например, есть Create AI viral video swiftnada banana NVO3. Ну, давайте вот это посмотрим. Вот. Отлично, да? Здесь сразу показывается шаблон. Сейчас он прогрузится. Вот. Можете его сразу скачать, нажать use for free. Можете даже не скачивать, можете нажать copy template to jon. Перейти, получается, в N8N. Это просто выделим, нажмём удалить. То есть он сейчас скопировался в буфер. И теперь нажимаете там Ctrl V либо Command V. И вот он весь шаблон открывается. И дальше тут есть инструкция, есть вот ссылка на видеоатора, например, и так далее. Вот есть R chatbot for Company document using Google Drive and Gemini, то есть chatтбот, который отвечает на основе данных вашей компании, да? То есть тут вот мы загружаем в базу данных, в PINCON, не рекомендую, лучше в квадрант сразу. И дальше мы ищем по этим документам. То есть как-то так. Готовые шаблоны есть на этом сайте. можете их искать. Вообще шаблон на Nen - это распространённая тема. И одна из причин, почему NCMN настолько сильно стал популярным, - это как раз-таки эти шаблоны. Давайте пойдём дальше. Иагенты

### Разница ИИ агентов и автоматизаций [14:23]

против автоматизации либо Иавтоматизация. Как видите на картинке, иавтоматизация - это детерминированный предсказуемый процесс. Иагенты - это нифига не предсказуемый процесс. Подробнее. И агенты, и автоматизация. В чём разница между и агентами и автоматизациями? либо просто автоматизациями. Автоматизации и автоматизация - это детерминированный предсказуемый процесс. И иагенты - это недетерминированные процессы. Они обладают субъектностью. Мы даём им цель или задачу, они уже сами решают, как её выполнить. А возможно это благодаря lm внутри largeu model. Ну там GPT, например. То есть опять же на примере Workflow. Пока что без объяснений, просто подключим ему тулы какие-нибудь. Например, Tool Telegram, да. Tool Telegram и Tool Google таблица. Мы можем и агенту написать абсолютно любое сообщение и сказать: "Тебе нужно сделать что-то там, что-то там". И он сам будет расписывать себе план действий и сам вызывать вот эти вот тулы и отправлять в них что-то, сам отправлять сообщения в Телеграме, сам что-то делать в Google таблицах. Он будет делать всё то, что он сам посчитает нужным для достижения результата, для достижения цели. Если мы делаем автоматизацию, то у нас не и агент, то автоматизация выглядит примерно так. То же самое, но в виде автоматизации сделаем. Вот, условно говоря, очень условно, а, то же самое в виде автоматизации. То есть мы отправляем сообщение, оно отправляется в Telegram, добавляется в Google таблиц. То есть здесь процесс детерминированный и предсказуемый. Здесь всегда предсказуемость э действий присутствует. То есть понятно, что делается на каждом этапе. Здесь нифига непонятно. он сам решает, что ему делать. Вот в чём разница между автоматизациями и и-агентами. А, ну важно заметить то, что бывает же ещё и автоматизации. То есть те автоматизации, где внутри находится аm, то есть тот же AI добавим, не так это важно. А, но мы не будем подключать к нему никаких тулов. То есть мы добавим к нему вот только этого OpenРутера. Но это всё равно предсказуемая автоматизация. То есть мы пишем и агенту, он нам что-то отвечает, но точно после того, как он что-то нам ответил, точно активируется узел Telegram и активируется узел Google Sheet. То здесь понятна последовательность действий. Здесь она непонятна. Мы не знаем, в каком порядке активируется Telegram и Google Sheet, активируются ли они вообще. Это всё решает сам агент, но это им можно управлять, можно его делать более предсказуемым, этим и нужно заниматься при создании и агентов. Здесь такого нет. Здесь гораздо всё более предсказуемо. То есть вот это по сути является и автоматизацией. А если мы убираем, то это просто автоматизация, потому что здесь нету и никакого, когда использовать автоматизации, а когда агентов. Если есть возможность не использовать е агента, то надо это делать, потому что в продакшене важна стабильность и предсказуемость результата. И агентов сложнее сделать стабильными. Но это всё равно возможно, но стопроцентной стабильности вы никогда не получите, потому что в этом и смысл и агентов. Ну а если других вариантов не остаётся, то использовать и агента. Ну да, если выхода нет. И почти каждый раз, когда я говорю про автоматизации, я имею в виду и автоматизации, и агентов. Ну я постоянно говорю автоматизации, автоматизация на 8N. Ну да, имеется в виду и сразу и автоматизации, и агента. Просто вот так я разговариваю. Я не знаю, почему так вышло. Теперь, что касается практики, где взять N8N? Разбираем платные тарифы

### Где взять n8n? Какой тариф выбрать? [17:55]

и разбираем, что можно установить N8N на свой сервер или пока. Давайте начнём с того, где взять N8N. Пишите в Гугле N8N, открывайте первую ссылку сайт n8. io. Смотрите, это официальный сайт N8N. Если вы нажмёте get started for free, произойдёт следующее. Вас попросят ввести тут определённые данные, нажать подтвердить, и вы сразу же сможете нажать четырнадцатидневный пробный период. Вам не нужно будет подтверждать карту зарубежного банка. Вообще никаких карт подтверждать не надо. И если вы только знакомитесь с программой N8N, вообще ничего про неё не знаете, я рекомендую вам это сделать. То есть начать четырнадцатидневный пробный период. Ну и нужно с этого начинать. Это будет проще всего. Потом, допустим, он у вас уже закончился, вам программа понравилась, вы решили продолжить ей пользоваться. Смотрите. То есть это всё касается облачной версии N8N. Что такое облачная версия N8N? Это та версия N8N, которая установлена на серверах компании N8N. Здесь есть несколько тарифов: Стартер, Pro, Business Enterprise. Стартер, тариф - это прямо самый базовый тариф, чисто так посмотреть, что умеет N8N, потренироваться. Pro - это уже использовать для небольших команд, либо Solo Builders, вот написано, то есть тут тоже есть определённые ограничения. А бизнес - это уже подороже, то есть это уже для бизнесов. И есть enterprise тариф, когда вы можете там индивидуальные условия для вас выбираются по N8 CMN. Я этим всем не пользуюсь. Я пользуюсь N8N, установленным на своём сервере. Если вы не хотите запариваться, для вас 20 евро в месяц или 50 евро в месяц - это вообще небольшая сумма, и вы хотите просто начать работать у N8N после того, как у вас четырнадцатидневный пробный период закончится, ну, купить подписку. То есть, если для вас это небольшая сумма, вы богатый человек, ну, не запаривайтесь, просто купите подписку. То есть вам не надо будет париться по поводу сервера и всего остального. Тут тем более хостится на серверах NCMN, в случае чего можно будет им в поддержку написать там и разобраться. Если у вас нету 20 евро в месяц, либо вы не хотите их тратить на N8N, тогда есть вариант установить его на своём сервере. Это будет стоить дешевле, значительно дешевле. Но какие есть минусы? Минусы в том то, что вы полностью ответственны за этот N8N, за этот instance N8N. Instance N8N означает экземпляр N8N. Вот. Но установить на свой сервер, это будет гораздо дешевле, потому что арендовать сервер будет дешевле, чем арендовывать, ну, чем покупать эту подписку. Вообще, кстати, можно и прямо на свой компьютер установить. Тоже это возможно. Давайте сейчас расскажу, что такое сервер. Если вы не знаете, сервер - это, по сути, такой же компьютер, просто удалённый, который работает на постоянной основе и который специально поддерживает, да, чтобы он постоянно работал. Весь интернет лежит на серверах. Сайт NooMN тоже на каком-то сервере лежит. все сайты, всё в интернете лежит на каких-то серверах, то есть на реальных физических компьютерах. Если вы устанавливаете N8N на свой компьютер, то есть прям прямо вот сюда на Mac, это возможно сделать, но, допустим, у вас там какая-то там Telegram автоматизация, Telegramбот там запущен, а это что значит? Это значит то, что вы выключили компьютер и Telegramбот перестал работать. Вы включили компьютер, запустили CMN, Telegramбот работает. То есть здесь есть определённые ограничения. Есть ещё там более сложные ограничение, то, что у N8N установленного на компьютере нет публичного URL. Это там тоже много что за собой влечёт. Там проблемы с сервисами Гугла, а, насколько я помню, сложнее подключить MCP клоду и так далее. Поэтому оптимальный вариант, если у вас, ну, если вы хотите сэкономить - это арендовать сервер. Смотрите

### Первая практика. Собираем ИИ агента [21:20]

активировали 14 дней fre trial, заходите в nen, вас встречает то же самое. Скорее всего, вас встречает вот такая картина. То есть вы нажимаете start from scratch и появляется ваш первый шаблон. Первым делом, когда вы зашли в CMN, я считаю, нужно сделать следующую автоматизацию. То есть вы берёте, нажимаете на кнопочку вот сюда, вот у вас появляется выбор триггера, то есть узла, с которого начинается любая автоматизация, любой проект 8. Давайте выберем для начала Onch trigger. То есть вот он onat message. То есть это значит то, что наша автоматизация будет активироваться в тот момент, когда мы отправляем какое-либо сообщение, потому что у нас onchat message onchatтриг. Потом мы сюда добавляем AI agentта. Нажимаем AI, вот какого-нибудь такого. AI agent. Отлично, добавили. Мы должны к нему добавить chat model. Какую чат model добавить? Добавим Open roуter. Чтобы добавить модель Openроутера, нужно зайти на сайт Openроутера. Смотрите, заходите на сайт Openутера. Ссылка там в описании будет, либо в посте, либо можете просто в поиске набрать. Это сайт, который объединяет, а, через один API ключ кучу разных LLM, largeu models. Chat GPT здесь можно взять, здесь можно взять clot, здесь можно взять, ну, короче, любые неросети. Здесь огромное их количество. Для того, чтобы это сделать, нужно зарегистрировать аккаунт. В целом, тут ничего сложного, я думаю, вы разберётесь. Зайдёте, зарегистрируйте аккаунт. Здесь пополнять можно либо карты зарубежного банка, либо криптой, если вам сложно и криптой, и карты зарубежного банка что-либо пополнять. А есть сервис Польза AI называется. Я его рекламировал уже много раз на канале. То есть это аналог Openроутера, но российский. То есть там можно пополнять за рубли. Вот так он выглядит. В этом ролике они у меня интеграцию не брали, поэтому я не буду про него подробно рассказывать. Там принцип такой же. Создаёте опять ключ и делайте, что вам надо. Пополняете баланс, переходите в раздел API keys и создаёте нужный для вас API key. То есть нажимёте create API key, прописываете что угодно, не знаю, для гайда NM. Вот у вас готов API key. Вы его копируете, возвращаетесь в Nosman. В случае, если вы делаете через пользу AI, там в целом тоже ничего сложного, там то же самое всё примерно. Потом вот здесь вы выбираете, нажимаете chat model на плюсик, и здесь появляется следующий chat models. И нам нужно найти здесь Open Router. Вот получается Open Router. Нажимаете select credential, create new credential и сюда вот вставляете ваш API ключ. Главное пополнить баланс. Нажимаете save и должно появиться вот такая вот зелёная надпись. Закрываем. То есть мы подключили наш Open Roerter аккаунт. Здесь у нас появляется список моделей. Здесь у них огромное количество моделей. Давайте лучше вот так сделаем. Зайдём на сайт OpenRouter. И вот здесь вот можно найти в поиске любую модель. Например, вы ищете GPT 5,2, сразу же показывается. Открываем. И вот тут есть название специальное, которое нужно скопировать, повернуться в N8N и здесь поставить это название. И вот оно появляется вот. Open GPT 5,2, например. Готово. Теперь можно нажать save, но это не обязательно. Нажать вот сюда вот Open Chat. И теперь мы можем что-то ему написать, например, привет. Кто ты? Он нам отвечает: "Привет, я и ассистент модель Openi. Могу отвечать на вопросы, объяснять темы, помогать текстами, переводами, учёбой, идеями и разбором приложений, ой, изображений, если скажешь, что тебе нужно подстроить под твою задачу, под задачу". То есть, что мы сейчас сделали? Мы просто в NV CMEN по API подключили чат GPT. Это база, это основа. С этого всё начинается. Потом впоследствии я покажу, как вводить тут системный промт, то есть вот system message, где мы прописываем инструкцию нашему и агенту, какую роль он должен отыгрывать. Давайте вот вкратце покажу. Например, представь, что ты профессиональный юрист, не знаю, налоговый. Не знаю, правильно ли так говорить. Ну неважно. Я вообще не шарю в этой в юриспруденции. Пишем ему теперь то же самое. Привет. Ты кто? И он нам говорит: "А я виртуальный помощник, отвечаю как профессиональный налоговый юрист. смогу разъяснить нормы, риски, там, налоги, договора. Если скажете странную юрисдикцию и что именно случилось, подскажу точнее. То есть вот мы можем давать ему системные промты. Мы подключили к нему сейчас lm. Мы сделали вот самое основное, самое прикольное. Это вот самая первая автоматизация. Дальше будет более подробный разбор узлов, поэтому продолжаем смотреть. Сделали это. Отлично. Теперь переходим к

### Разбор интерфейса вне workflow [25:50]

разбору всего интерфейса вне workflow. Для начала слева у нас две кнопки: Overview и personal. По сути, это две кнопки для того, чтобы смотреть, какие есть проекты. Если вы нажимаете Overview, то, по-моему, показываются все доступные проекты. Еже если нажимаете personal, то тут уже показываются ещё и папки. К примеру, вы можете нажать вот сюда вот createфolder, то есть создаёте папку. Папка готово. Если нажимаете overview, видите, папок не видно. А если нажимаете personal, видна папка. Можно вот так перенести проект в overview. Будут просто показываться проекты. Ну и вот папка, где он находится. Дальше давайте слева пройдёмся. Если нажать на этот плюсик, можно создать workflow, можно создать, можно создать проект, но это функция, которая работает только в облачной версии N8N. Я вам показал, что такое облачная версия N8N. И есть некоторые функции, которые доступны только там, но не настолько они значительны, чтобы платить прямо деньги за их подписку. Суть в том то, что через этот плюсик можно создать workflow, можно создать credential, но я всё равно workflow credential создаю вот с помощью вот тут вот, с помощью вот этих кнопок. Едем дальше. Дальше у нас показывается templates. Это сайт с шаблонами. Если вы сюда нажмёте, откроется тот сайт, который я вам только что показывал с шаблонами N8N. Потом есть Insights. Опять же для этого нужен повышенный план, но это тоже, то есть облачный план N8 CMN, но это тоже не такая значительная функция. Потом есть кнопка help, то есть вот а документация, форум, опять же, который вам показывал, курс, report, back about Envement. То есть вы можете нажать там about Envan, вам показывают версию, вам показывают откуда он взят, то есть с GitHub. лицензию, instance ID и всё остальное. Можно нажать тут, я не знаю, курс. В курсе вы переходите на в документацию по N8N, ну, типа формате курса, не очень удобно. Ну и так далее. То есть кнопки вот эти вот, честно говоря, малоиспользуемые. Вот есть quвиitста, то есть ссылка на YouTube, — где официальный канал CM, где вам показывают очень сильно радостный улыбающийся чел, рассказывает ва основы NM. Потом есть вкладка WhatsE, то есть показывает, что нового в этой версии. Здесь вот можете нажать посмотреть, да, instance level MCP. Я вот сам ролик тоже про это делал. А Guard Rail Notes добавили, то есть специальные ноды, а для защиты отлбрейков и так далее. То есть от того, чтобы, допустим, ваш чат GPT не выдавал свои кастомные инструкции, которые вы ему прописали. И здесь показывает то, что если у вас, если вышли новые обновление, они предлагают обновиться. На самом деле, если вы нажмёте кнопочку Update, вас перекинет просто на документацию. и вас перекинет на документацию, если у вас N8N установлен на вашем сервере, то есть там обновлять немножко сложнее. Если у вас N8N облачная установленная, то есть подписка на N8N по факту, вы нажмёте на кнопку, там всё очень просто и быстро обновиться, там гораздо с этим проще, дела обстоят. А я забыл сказать, если вы решите купить подписку на N8N, есть у меня реферальная ссылка в описании, и в Телеграме, скорее всего, её продублирую. Перейдите по ней, мне за это там какой-то процент упадёт, буду благодарен. Здесь написано имя админа ваше, да? То есть вот я написал Владимир, потому что я узнал, что по-китайски Владимир Владимир, но, по-моему, потом я узнал, что это не так. Здесь можно singout из аккаунта, то есть выйти из аккаунта. А Sout я делать не буду, sign out. Можно нажать settings. В settings у нас показывается usage and plan. Здесь показывается ваш usage plan. У меня показывается community edition, потому что любой NVMN установленный на сервере, у него план называется Community Edition. Дальше идёт Personal. В Personal вы можете поменять ваше имя админа. Можете поменять mail, можете поменять пароль, добавить двухфакторную аутентификацию, можете поменять тему, да, то есть можно сделать тёмную тему, можно сделать светлую. Потом есть вкладка users. Здесь показываются пользователи, которые у вас есть в Nem, то есть можно добавлять несколько пользователей. Насчёт этого я точно не помню. Здесь какие-то функции доступны только в облачной версии по подписке. На самом деле может показаться, что их много, функции, которые доступны только по подписке N8N, но они не такие значительные. То есть их не так много, на самом деле они не такие значительные. То есть пользоваться NCMN установленным на вашем сервере всё равно можно. Он такой же по функционалу, как и NosN в облаке. Чуть-чуть, прямо совсем чуть-чуть менее урезанный. Единственная причина, по которой стоит покупать N8N в облаке - это просто, чтобы чуть меньше запариваться, да, на начальных этапах, чтобы просто сэкономить себе время. Потом есть Project Rolls, которые доступны, опять же, только в облачной версии NV8N в специальном плане. А потом есть NV8 API. Вот это уже интереснее. То есть это мы будем сейчас много подробно говорить про API, что это такое. Суть в том то, что а ровно так же, как вы управляете Телеграмом или Яндексдиском с помощью API через ваш NO CMN, точно также можно делать с NVO CMEN. То есть вы можете внутри вашего workflow NVO CMEN с помощью API NVO CMEN взаимодействовать с вашим экземпляром NVO CMAN. External Secrets тоже опять же на enterprise плане. Environments в версии на сервере они настраиваются через консоль. Вы просто подключаетесь и настраиваете их. Воркеры тоже настраиваются. Если вы у вас NVM установлен на сервере, воркеры вы настраиваете тоже там через консоль. Комьюнитиноды. Что такое комьюнитиноды? Это специальные узлы NVCN, которые создаются коммьюнити. То есть, если вы обычный пользователь N8N, вы можете создать свой узел и загрузить его в N8N. А это не официальные узлы N8N, то есть у них там могут быть проблемы с безопасностью, ещё с чем-то, хотя очень редко это бывает. То есть пользователи, когда им не хватает функционала NCMN, они делают специальные узлы и добавляют их в Nemn, чтобы ими могли пользоваться другие люди. Также тут есть Migration Report и есть MCPSS. MCPSS - это чтобы подключать ваш экземпляр N8N к через MCP к каким-то разным сервисам сайтом, например, клоду. У меня вот предыдущий ролик про это был, можете посмотреть. Ну, здесь просто количество страниц показывается, да, если у вас много workкflow. Здесь показывается просто там сортировка и так далее, там возможность создать папку. Это просто фильтры какие-то. Самое главное, что тут есть, это workflow, это криалы, это execution, а это data tables. Здесь тоже доступно. То есть здесь мы можем создавать credential, можем создать папку и можем создать data table. Создать папку, понятно, что это я только что показал workflow. То есть здесь перечислены все ваши рабочие процессы 8N, то есть все workflow, все шаблоны. То есть workflow по факту является и шаблоном, и рабочим процессом. То есть это всё одно. По сути, он сохраняется всегда в файле jon. Криtла - это все ваши подключения к сервисам. То есть я же говорю то, что N8N поддерживает интеграцию огромного количества сервисов, там несколько тысяч их. Чтобы интегрировать NVMN с этими сервисами, нужно добавлять credential. То есть вот мы добавили, например, Open Router, оно сохранилось. То есть у нас теперь сохранён наш аккаунт Opener в N CM, чтобы нам заново каждый раз не вводить этот API ключ. Он сохранился. То есть это умный менеджер паролей. То есть про него подробнее тоже будет попозже. Executions - это выполнение внутри workflow. Это когда вы выполняете ваш workflow, у вас каждый раз сохраняется отдельное выполнение. Здесь вы можете это просматривать. Data tables - это внутренняя таблица внутренней база данных внутри N8N. Работают они на основе Postgress, то есть по факту они поставлены поверх Postgre Postg SQL базы данных, которые вы, возможно, слышали про неё. Очень известная база данных, очень популярная. тоже про это чуть подробнее будет. Давайте начнём с Workflow. То есть здесь всё понятно. Всё, что весь интерфейс вне workflow в целом разобрали. Прямо сейчас я специально обновил мен до последней версии. У меня он был просто не обновлён. А здесь всё то же самое сбоку, то есть всё то же, что я разбирал. Просто вот кнопки первый теперь нет. И настройки все теперь вот тут сбоку, но они такие же, как и были. Что касается

### Разбор интерфейса внутри workflow [33:30]

настроек внутри интерфейса N8N, смотрите, а здесь указывается аккаунт personal, тут папка, если есть, да, здесь название workflow. Его сразу можно поменять. Например, он будет называться workflow. Здесь мы можем добавлять теги. Создаёте какой-то тег, нажмёте create тег, добавляете тег. То есть, чтобы лучше ориентироваться в проектах, вот здесь он будет отображаться тег. Дальше здесь мы пишем а описание workflow. Здесь можно написать описание workflow. Описание. Зачем нужно описание workflow? Чтобы вы могли сами ориентироваться лучше в проектах. Ну, по описанию. И это нужно для того, чтобы, если вы подключаете ваш NV к какой-то там нейронке, кдуp. Про это был прошлый ролик, можете его посмотреть. Через код подключаетесь к CN и клод по описанию Workflow выбирает тот workflow, который сейчас нужно запустить. Ну, например, да. Если хотите подробнее, пожалуйста, смотрите предыдущий ролик. Дальше есть кнопка сохранить. То есть, например, делаем какие-то изменения, создаём какого-то егента. Создали. Теперь мы хотим сохранить, да? Сохраняем. Нажимаем save. Всё, версия сохранена. Здесь есть два режима выполнения. Есть тестовый, есть нетестовый. То есть тестовый режим - это когда вы прямо внутри вашего workflow что-то там пишете, у вас выполняется workflow. Ну, здесь немножко во второй версии понимали, поменяли вот анимацию. А также есть режим продакшна. То есть когда вы выкладываете ваш проект prodдакш-режим, но он выступает как, да, допустим, у вас там Telegramбот и работает через N8N. Это уже prodдаction-режим. То есть это не то же самое, что внутри интерфейса нажимать на кнопку Open Chat, либо нажимать на кнопку вот есть trigger manually, да? То есть просто жмёте Execute workflow, workflow выполняется. Сейчас он ошибку выдал, потому что мы ничего не прописали в сообщении агенту. Вот. Для того, чтобы ваш workflow был опубликован в продакшн-режиме, нужно нажимать кнопку Save. Потом вот версии 2. 0 недавно добавили пабish кнопку. Раньше было по-другому. Раньше была просто кнопка activate. Нажимаем кнопку publish. Когда мы хотим опубликовать наш workflow, когда у нас всё готово, мы хотим NM, чтобы он работал на постоянной основе. Мы его там подвязали к телеграму, подвязали ещё к чему-нибудь. Вот нужно нажать нам на кнопку Publish. Давайте вот самое банальное что-нибудь сделаем. Поставим Make Chat publicly available. Скопируем ссылку и нажмём Save. И нажмём publish. Чтобы опубликовать проект, мы напишем, а, имя версии для себя какое-нибудь, типа версия один. Опционально можно написать изменения, которые произошли в этой версии. Типа тут я добавил узел и агента, да, чтобы самому потом чтобы вы сами потом впоследствии лучше ориентировались в вашем проекте. Публикуем. А, жмём. Тут он нам показывает чек-лист, который можно пройти, не обязательно это читать. Вот проект опубликован, появилась галочка зелёная вот здесь вот. Это значит, мы теперь можем зайти в этот узел, опять же, скопировать этот URL и просто открыть этот URL в соседней вкладке. То есть сейчас мы опубликовали проект, и мы можем с ним как бы извне взаимодействовать вот через отдельную ссылку, да, можем написать: "Привет". Вот. "Привет". Как я могу помочь? То есть по факту мы сейчас запустили этот же workflow просто не внутри самого workflow, не в тестовом режиме, а уже извне. То есть он выступает у нас какэнд. Ну да, надеюсь, вы знаете, что такое. Ну и здесь, да, можно сейчас добавлять разные версии публикации. То есть, допустим, например, что-нибудь поменяем. Добавим здесь tool какой-нибудь, а, HTP request. Пропишем здесь какой-нибудь URL, не знаю, example. com. И нажмём опять же publish. Сейчас мы можем опубликовать уже новую версию версия 2. Готово. Теперь мы можем нажать, например, вот здесь вот на три точечки нажать Unpublish. Вернули обратно публикацию нашего проекта. То есть он сейчас не опубликован. И вот эта вот ссылка, которая у нас есть внутри сообщения, можем зайти обратно, и она у нас не откроется, потому что у нас сейчас проект не опубликован и она не будет работать. То есть он работает сейчас только в тестовом режиме. Потом есть кнопка вот такая вот. Это workflow history. То есть когда вы делаете изменения в вашем workflow, здесь сохраняются бэкапы. Короче, нажимаете сюда. Вот как раз показаны две наших версии разных публикаций, да, типа версия один. Тут я добавил узел и агент. Вот версия 2, то есть те версии, которые мы публиковали. Здесь ещё показываются всякие другие версии, где мы вносили изменения. Здесь автоматически проходят бэкапы. Можем сделать сразу тут какое-то действие. То есть отсюда мы можем опубликовать эту версию Workflow, опять же, чтобы она была доступна извне. Можем скопировать это в новый Workflow. Можем открыть это в новом окне, можем это скачать. Потом а есть вот такие вот три точечки. Что тут доступно? Здесь мы можем нажать duplicate. Это мы скопируем наш workflow. То есть нажимаем duplicate. И у нас теперь появляется два workflow. Вот второй точно такой же появился, скопировался. Можем скачать наш workflow. Давайте это и сделаем. Можем переименовать. То есть вот здесь вот это же можно сделать. Я не знаю, зачем тут дополнительна кнопка. Можем а загрузить шаблон из URL и из файла. И можем зайти в настройки и можем архивировать. То есть архивировать - это по факту значит удалить. Там просто как бы архивировать - это когда вы по сути переносите проект в корзину и в этой корзине можно будет потом удалить его. А теперь что самое интересное - это здесь есть настройки. Заходим в настройки. Execution Order не меняйте, это последовательность выполнения веток. Потом есть error workflow. Когда в вашем Workflow возникает какая-то ошибка, вы можете добавить error workflow, чтобы он активировался. То есть как это делается? Открываете просто опять N8N, а создаёте новый workflow. И здесь мы должны добавить error trigger. То есть он называется error trigger. Вот так вот пишется error trigger. Готово. То есть этот workflow будет активироваться в тот момент, когда в нашем изначальном исходном workрфлоу возникает ошибка. Мы должны его опубликовать. Какое-то имя даём. Всё, опубликовали. И теперь вот здесь вот в er workflow мы можем его выбрать. То есть всё. Теперь, когда у нас здесь будет возникать ошибка какая-то, например, там не настроен в openроутере, у нас будет вызываться вот этот workflow. Давайте я покажу, как это сработает. Например, сделаем что-нибудь, чтобы специально была ошибка. Добавим узел Telegram и не ведём в нём ничего, никаких данных. Теперь мы можем сделать следующее. Напишем какой-нибудь текст, а он не даёт нам активировать. Ну давайте зайдём в Telegram узел и здесь просто что-то выберем. Напишем какие-то несуществующие значения, и у нас он точно выдаст ошибку из-за этого. Вот. Хотя по факту здесь сейчас ничего красным не отображается. Теперь, чтобы активировать error в Rockflow, что надо? Надо опубликовать опять же наш проект исходный изначальный. Опубликовали перейти, допустим, в на внешнюю ссылку, опять же, навести на узел, нажать Enter, нажать Make Chat, publicly available, скопировать этот URL, сохранить. Теперь мы перешли, получается, по этой ссылке, пишем что-нибудь, любой текст, и он сейчас напишет нам ошибку. Error in workflow. Возвращаемся обратно, зайдём в Executions. Сейчас я расскажу, что это такое подробнее. У нас здесь возникла ошибка workflow. Вот. И теперь мы можем зайти, получается, в наш error workflow, который мы сделали, нажать Executions и видим, у нас вот активировался он. То есть это что значит? Это значит то, что в нашем Workflow произошла ошибка и активировался тот workflow, который мы добавили вот тут в настройках. То есть как это может работать в продакшене? У вас есть какой-то workкflow и агент Rag для вашего сайта. в нём возникает ошибка, сразу активируется error workflow, и вам с помощью этого error workflow прислается сообщение в телеграме о том, что у вас возникла ошибка в вашем рагагенте, на вашем сайте. Как-то так. И, ну, важно заметить то, что eror Workflow не работает в тестовом режиме. То есть, если вы внутри N81 что-то печатаете и активируете Workflow, он не работает. То есть его нужно активировать опять же извне, да, с помощью чата там или как-то. То есть когда у вас опубликован проект. Что ещё есть в настройках? В настройках есть таймзона, то есть узлы времени в N8N, да, and Time и так далее. И по дефолту используется America New York. Выбирайте ту таймзону, где вы находитесь. У меня таймзона Europe Moscool. Следующее. Saaved failed production executions. То есть, смотрите, failed production executions - это когда было выполнение одно и оно выдало ошибку. То есть горит красным. Зелёное - это когда успешно, оно горит зелёным, то есть всё нормально. и saved failed production executions. Это значит, мы сохраняем эти выполнения, но только те, которые были в продакшене, то есть которые мы активировали не внутри N8N, а извне, то есть из этого чата либо ещё как-нибудь. Тогда оно будет работать, да, и это значит сохранять просто ошибочные выполнения. Default save. Можно сохранять, можно не сохранять, лучше сохранять. Потом Save successful production executions. Вот эти уже можно не сохранять. То есть, если вы знаете то, что у вас Workflow успешно выполнился, не обязательно это сохранять, да? Не обязательно захломлять базу данных, в которых хранится вся эта информация. Можно это не сохранять, можно сохранять только ошибочное выполнения. А Safe manual Executions - это как раз сохранять те выполнения, которые запускаются вручную из редактора. То есть, когда мы вот внутри редактора что-то пишем, у нас пошло выполнение. У нас пошло выполнение, и оно у нас опять же вот тут в экзекюшенах сохраняется вот по времени. 1618 сейчас 1618, да, всё правильно. Вот оно по дефолту сохраняется. Save execution progress - это сохранение данных внутри выполнений. То есть вот у вас было выполнение, например, какое-то. И мы в каждом узле тогда сохраняем данные, чтобы мы могли потом восстановить те данные, с которыми произошла ошибка. Вот. Но это захламляет базу данных. По дефолту написано download save. Timeout workflow - это значит то, что workflow, например, очень большое количество времени исполняется. Например, у вас там и агент какой-то, который обращается к серверам Open AI, чтобы подвязать чат GPT, да, а ваш N8N. И эта штука зачем нужна? То есть в том случае, если ваш chт GPT очень долгое время не отвечает, то есть он отвалился, да, там на серверах Open AI, то есть он не отвечает там в течение, допустим, одного часа. И вы тогда можете настроить тайм workflow. То есть, допустим, если у вас что-то в workкflow произошло, какая-то ошибка, и ваш workflow уже не может выполниться в течение часа, вы можете вот тут это настроить. Это значит то, что он будет автоматически специально прерываться спустя определённый промежуток времени. Вот, например, 1 час. Смотрите, что такое estimated time saved. А, понятно, что мы делаем автоматизации, да, один из двух вариантов, да. Первый вариант, как я говорил, это экономия времени. Второй вариант - это заработок денег. Вот это как раз для экономии времени, для почёта времени, которое вы сэкономили, можно использовать. Допустим, у вас есть автоматизация, которая там автоматически делает транскрибацию звонка, например, и заполняет, а, это всё в поля в Google таблицы. Да, допустим, у вас так работает. У вас до этого этим занимался какой-то сотрудник и тратил там на это условно 15 минут на то, чтобы сделать транскрибацию одного звонка и заполнить это всё в Google таблицу. Вот. А теперь это всё делается заодно выполнение Workflow. И вы здесь это можете прописать, то есть количество минут за выполнение, которое вы экономите. Допустим, вы можете прописать 15 минут и сохранить. И потом у вас будет это количество времени подсчитываться в nm, и вы сможете посмотреть, какое количество времени вы сэкономили. А с настройками понятно, что у нас остаётся. Плюсик - это мы вызываем панель справа. Стики Note - это вы можете добавлять заметки, да, и они здесь пишутся в формате Markу. Не знаете, что такое формат Markу? Если вы Markдаун, спросите у чата GPT. у Perplexity, у того, чем вы пользуетесь, можете попросить его написать для вас заметку в формате Markдаdown. То есть он специально экранируется такими символами, там крупный текст, две решёточки, жирный шрифт, две звёздочки по бокам, вот, как видите, и так далее. То есть можете писать тут что угодно, заметки какие-то по workflow. Можно менять им цвет, вот здесь вот редактировать, поменять цвет, дупликат сделать, ну и так далее. И можно удалить. А здесь эта кнопка нужна для того, чтобы параметры ноды справа ставить. Ну как бы вам показать? Давайте вот зайдём в узел Telegram. Вот видите, здесь есть кнопка Expression, есть кнопка Fixed, есть вот такая штучка вот. То есть мы вот это вот поле просто перенесли сейчас вправо вот сюда вот. И здесь можем его прописывать, но я этим не пользуюсь особо. Но тем не менее такая есть штука. Дальше есть кнопка Zoom to fit. Она по центру просто выравнивает workflow. Есть кнопка плюс, есть кнопка минус, есть кнопка Ted up. - это, ну, типа прибраться. Ну, то есть мы можем прям, а, некрасиво как-то раскидать всякое. Туда-сюда можно нажать R Tedup. Вот теперь, видите, красивенько структурировал это всё внизу показаны логи. То есть можем нажать вот сюда вот на на стрелочку. У нас показывается вот чат наш. И вот тут вот всякие логи, то есть вот всё, что находится внутри агентов там и так далее. То есть логи - это как бы то, что появляется по ходу выполнения workflow. Но если мы нажмём Open chat, у нас то же самое откроется, откроются логи и так далее. Но кнопка Open Chat работает, потому что у нас здесь trigger чат. Если мы здесь уберём тригрчат и поставим тригр, а вот этот вот tтригр manля, то у нас будет кнопка уже execute workflow. Что касается горячих клавиш, как вообще это всё управляется, как тыкать, наводите на узел, нажимаете Enter, открываются настройки узла. Потом можете на каждый узел нажимать правой кнопкой мыши, и вам показывают горячие клавиши. То есть типа rename space, открыть Enter. replace R, deactivate, D, pin, P и так далее. То есть можем его деактивировать. Например, нажать кнопочку D, активировать. То, чтобы workflow выполнялся без учёта этого узла. Можем закрепить данные в этом workflow, нажать кнопку P. Не закрепляется. Ещё раз его выполним. Вот мы выполнили Workflow. Нажа можем нажать вот кнопку P навести. Это значит, что данные закрепились. Допустим, мы здесь написали какое-то сообщение. Ну вот напишем сообщение. Давайте привет. Уберём. Кстати, этот Telegram-узел. Написали сообщение: "Привет". Нажимаем Enter, заходим в узел. Вот здесь отображается чат input. Привет. И чтобы каждый раз не заходить и не писать заново привет, можем нажать P. И тогда у нас данные закрепятся. То есть у нас теперь отсюда всегда будет отправляться сообщение: "Привет" в наши в наш AI agent. Вот промт. Привет. Чтобы туда-сюда мотать, просто двигайте вперёд-назад, колёсико мышки там и так далее. Либо там на тачпаде делайте это. Приближать, отдалять. Тут можно. Я вот нажимаю Command и колёсико мышки двигаю. И давайте сейчас пройдёмся по вот этим вкладкам. Editor - это, собственно, наша главная вкладка, где всё и происходит. Executions - это то, где у нас показано выполнение каждого workflow. То есть каждый раз, когда проходит процесс, проходит выполнение. Это называется execution. Потом evaluations. Ну, я вкратце скажу, что это. Evaluations - это когда вы делаете вашего и агента, вашу автоматизацию более детерминированной. С помощью эвалюйшенов вы просто много, очень много раз, прогоняете данные через лэмку и смотрите, как она отвечает, а потом корректируете ваш промпт, исходя из этого. Executions - это получается выполнение. То есть, если оно ошибочное, подсвечивается как error. А если successful подсвечивается как зелёная, можете между ними переключаться, вот на каждого из них нажимать и таким образом переключаться между выполнениями. Также можете добавлять теги к вашим выполнениям. Вот тут можно создать какой-нибудь тег. И у нас теперь вот здесь отображается тег. По кнопкам, что тут есть? Можно удалить Executions, то есть можете OP удалить. У вас всё равно теперь не сохранено в базе данных этого выполнения. Можете нажать Zback and Editor. То есть здесь что-то произошло, мы написали: "Привет" и агент что-то нам ответил. Ну и тут произошла ошибка в Телеграме. И чтобы в этом разобраться, можем нажать debbaug in editor, чтобы точно с этими данными прогнать ещё раз и устранить эту ошибку. То есть вот здесь те же данные. То есть то же самое, что мы отправили в этом выполнении, то же самое, что и ответил нам и агент, это всё здесь сохраняется. Ну, единственное, у нас здесь нет узла Telegram, потому что мы его удалили из нашего Workflow, а тут он был, потому что тут мы его ещё не удалили. Вообще, на самом деле, очень большое количество вопросов у вас отпадут ээ по мере пользования этой программы. То есть вы пользуетесь ей, тыкаете туда-сюда и понимаете, зачем какая кнопка нужна. И огромное количество кнопок здесь познаются, ну, эмпирическим путём. То есть вы на них просто нажимаете, просто с ними что-то делаете, на них тыкайте, взаимодействуйте и понимаете, что оно делает. То есть, это проще нажать, тыкнуть и увидеть, что оно делает, чем объяснить, что оно делает. Но объяснять всё равно надо. Вот я и объясняю. А вот эта кнопочка плюсик очень важна, потому что когда мы добавляем какой-то узел, мы нажимаем на плюсик. Вот у нас добавляется какой-то узел какой-то. Get mania. Get как это вообще произносится? Get many attendencies это произносится. Я не знаю, что это за программа, что это за сервис, просто для примера, да, не забывайте подписываться на Telegram-канал мой, он полезный. Там материалы к роликам я оставляю и не только. Материалы к этому ролику тоже лежат в Telegram-канале, поэтому переходите, забирайте их и сразу подписывайтесь. А ещё подписывайтесь на этот YouTube, это тоже важно. Теперь мы

### Узлы в n8n + практика [50:38]

переходим к узлам N8N, к практике. Посмотрите, какая замечательная иллюстрация с помощью нанобана сгенерирована. Для начала мы разберём, какие есть основные типы узлов N8N. Конечно же, это триггеры, то есть те узлы, с которых, в принципе, начинается любой workflow. То, что служит спусковым крючком для запуска workflow, то, что триггерит процесс. Потом Action, все те узлы, которые как раз-таки являются интеграциями с огромным количеством сервисов, с Телеграмом, со СЛКОМом, с Gmail, с Что тут вот написано? А здесь больше ничего нет. Ну, с Google таблицами, с Ютубом, с чем угодно. Потоковые узлы и трансформация данных - это узел код, например, это узел if, это узел set, это узел switch и так далее. Сейчас покажу. AI узлы - это узлы, через которые мы добавляем, ну, собственно, AI, там лэмки и прочее. По сути, подтягиваем по API. Потом API узлы, это HTTP request и это Webхуhook для запросов API. И комьюнити узлы, это про которые я уже говорил, ну, ещё раз повторюсь, то, что это те узлы, которые создают пользователи NV CMEN. То есть они им не хватает функционала, они создают собственный какой-то узел, публикуют его, и остальные пользователи устанавливают его на свой instance NV Cm, на свой экземпляр NVN, на свой страх и риск. Ну, там есть некоторые риски просто. Но тем не менее есть ещё и проверенные комьюнити узлы, которые тоже отображаются в NCMN. Про это тоже подробнее расскажу. Начнём с триггеров. Будем рассматривать Telegram trigger, manual trigger, skedle trigger, chatтриг и Webhook. Давайте начнём с Telegram триггера, потому что Telegram очень часто используется в N8N. Нажимаем на кнопочку, нам предлагают выбрать триггеры. Вот они все эти триггеры. То есть мы пишем здесь Telegram, пожалуйста. И в Телеграме а мы выбираем на что реагировать. Самое частое - это on message. Есть разный триггер. Есть триггер на Shipping delivery, ой, на Shipping query. Есть на edit message, на редактированное сообщение, на пост в канале, на кнопки и так далее. Но на сообщение Telegram triтриг - это обычный onage. Готово. Когда вы нажимаете на этот узел, здесь у вас ничего нет. Нам нужно добавить credential. Где взять credential? Что такое credential и так далее. Нажимаем create new credential. Здесь нам нужно ввести API token для нашего Telegram бота. Где мы его берём? Мы заходим в чат и пишем бот father. Открываем botра. Лучше открыть диалог с ним, так будет проще. Есть приложение, конечно же, через которое можно создавать и редактировать ботов. Нажимаем create new bot. Даём ему какое-нибудь имя. Estстбот, например. Даём ему username. Пишем, например, full guide к N8N bot. Важно, чтобы ссылка на бота заканчивалась на бот, на слово бот. Нажимаем create бот. Можно выбрать картинку и так далее. И вот нам даётся его опять ключ. То есть мы его копируем, заходим обратно к нам в N8N, вставляем этот API ключ, видим, горит зелёненьким. Значит, всё активировалось. Теперь нам нужно открыть этого бота. То есть вот у нас ссылка на него. Нажимаем, нажимаем чат. Мы его открыли. Теперь что мы делаем? Возвращаемся в Telegram и можем нажать save. Возвращаемся в 8N, точнее, и можем нажать Execute Workflow. То есть мы сейчас в тестовом выполнении активируем наш Workflow. Активируем Workflow. И сейчас у нас Telegramтриг, наш Telegramбот, ждёт сообщения, которое ему кто-то должен отправить. Чтобы отправить сообщение, достаточно нажать на кнопку начать, потому что когда нажимается кнопка начать, отправляется сста. И как видим, workflow executed successfully, то есть он выполнился. И давайте посмотрим, что отправилось. Нажимаете на узел Telegram, нажимаете Enter. И мы видим то, что отправилось вот от Владимира и автоматизации видим то, что отправился текст сстарт. То есть сшстарт мы отправили. Вот так работает Telegram triтригрыer. Дальше вы можете активировать там, к примеру, AI эжента, как я показывал, и таким образом выводить этого AI эжента обратно в Telegram. То есть видели вы, наверное, огромное количество всяких чатов GPT внутри Телеграма. Они именно так и работают. Ну, только не через N8N, а через код это делают обычно, потому что там нагрузка большая. Теперь разбираем manualтриг, его можно убрать. То есть вот нажимаете на плюсик, нам предлагают выбрать триггера, выбираем триггер manля. Но если мы нажимаем на плюсик в тот момент, когда уже какой-то триггер есть, то нам показываются уже немножко другие значения, другие поля. Можем нажать and trigger и вот заново покажут триггера. Manual trigger очень простой. Что он делает? Он просто активирует workflow по нажатию вот этой кнопки Execute Workflow. Здесь ничего, собственно, больше и нет. Нажимаем Execute Workflow. Пожалуйста, активировалось. Этот триггер используется очень часто, потому что когда вы собираете ваш workflow, вам очень много раз надо будет его прогонять в тестовом режиме. То есть всё, что всё то, что делается в Nm, когда вы активируете триггер напрямую в N8N, вот таким образом, да, это тестовый режим. Продакш режим - это когда оно уже само на фоне происходит. Потом идёт триггер. Schedle trigger - это триггер активации по времени. То есть нажимаем опять на плюсик. И вот у нас есть on escadle. То есть здесь мы можем выставить значение, когда этот триггер должен активироваться. То есть, допустим, выбираем seconds и seconds between triggers, например, пть. И возвращаемся обратно. Можем, конечно, нажать Execute Workfall, тогда он активируется, но он сейчас должен каждые 5 секунд автоматически самостоятельно активироваться. То есть поняли, в чём суть? То, что это триггер, который активируется в определённые промежутки времени. То есть мы можем выбрать каждые 5 часов, каждый час его активировать, каждые 5 секунд, каждый месяц, каждую неделю, каждые 2 месяца. Можем прописать кастомные значения, можем прописать значение активировать каждые 5 минут и активировать каждые 2 минуты. То есть вот, то есть мы можем добавлять правила каждые 5 минут, каждые 2 минуты. Ну давайте вот покажу каждые 2 секунды. Например, ставим активироваться каждые 2 секунды. Единственное, он работает, естественно, только в продакшн-режиме, то есть его нужно опубликовать, а нажать publish, нажать Gaded. Теперь, если мы зайдём в Executions, мы будем замечать то, что тут добавляются новые выполнения. Пожалуйста. Раз добавилось, два добавилось. Проходит ещё там 10 секунд, ещё два выполнения добавилось, потому что мы поставили, чтобы он активировался каждый, а, каждые 2 секунды мы поставили. Ну да, то есть каждые 2 секунды новое выполнение. Ну, здесь пока что у нас ничего нет дальше, но условно с помощью скед триггера вы можете сделать себе, не знаю, новостную рассылку по тому, что произошло в мире и за там за день, и оно будет отправляться вам каждый день в 9:00 утра автоматически в Телеграме. Вот такое вы можете для себя сделать, к примеру. Ну, вариантов использования огромное количество. То есть Skandle Trigger очень полезная тема. Теперь идёт чат триггер. Чаттриг я уже показывал, как работает. Ну, давайте ещё раз покажу. Нажимаем и вот он Onat Message. Когда вы собираете иагента и планируете подключать к нему Telegram, либо вывести этого ИИ-агента на ваш фронт-endнд на вашем сайте, да, то есть на, ну, буквально на ваш сайт, ну, давайте на примере Telegram. Вам не обязательно, когда вы делаете вашу автоматизацию, каждый раз что-то писать в Telegram. Это просто неудобно. И чтобы не писать каждый раз что-то в Telegram, но при этом продолжать делать workflow, когда вам нужен, а, триггер на сообщения, есть вот такая вот штучка. Здесь вы можете открыть чат внутренний ввоn, написать сообщение. Готово. Да. И мы видим, что у нас отправляется. Пишется сообщение. Также с помощью этого триггера, как я показывал, вы можете сделать чат publicly available, то есть публично доступным, скопировать URL, опубликовать его, естественно, надо для этого. И теперь вставлять эту ссылку в соседнем окне в браузере. У вас появляется специальная преднастроенная страница от разработчиков NCMN. Вот такая вот. И вы, кстати, её можете кастомизировать тоже вот отсюда изнутри, вот здесь вот через параметры выбирать значения. И с помощью этой страницы кто-то может взаимодействовать с вашим workflow. Потом идёт webhook. Зачем нужен триггер Webhook? Если что, это можно просто в поиске вбивать там, если там сложно что-то найти просто. Вот он находится вкратце. В чём его суть? Вот мы был сейчас у нас Telegram триггер. Такой же триггер может быть WhatsApp триггер, может быть триггер в ВК и так далее. А, хотя вк триггера, естественно, нету в N8N. Суть в том то, что каждый из этих триггеров, каждый из триггеров, который привязан к какому-то сервису, там триггер из-за почты Google Mail, например, вам приходит сообщение на Google Mail. Вот, давайте покажу его. Вот Gmail. И вот есть триггер Onage received. То есть этот триггер, а, активируется в тот момент, когда к вам на почту Gmail пришло сообщение. Суть в том то, что каждый этот триггер и Gmail и Telegram триггер, и любой триггер, который привязан к какому-то сервису, он по сути является вебхуком. И с помощью вебху мы можем воспроизвести абсолютно любой триггер э какого-то сервиса. То есть нету, допустим, Яндекса в N8 поддержке. Ну нет Яндекса. Вот можем зайти и написать там, я не знаю, Яндекс. Ну нету Яндекса. Можем на русском написать Яндекс. Нету. А вы хотите добавить, чтобы он реагировал у вас на добавление файла в Яндекс-Диске? Что тогда делать? Его можно настроить через этот вебху. Про это сейчас всё подробнее расскажу попозже, потому что это, ну, тема отдельного свитка, так сказать, который идёт дальше. Потом у нас идут Action inap. А какие у нас есть Action in? Конечно же, у нас есть сначала Telegram. Пишем в поиске Telegram и выбираем actions. Давайте выберем Send a text message. На самом деле все эти экшены, которые они указаны справа, можете на любой из них нажать и всё равно потом настраивать это здесь внутри. То есть, видите, здесь можно настроить, например, send message, sender. И точно так же это всё отображается здесь в панели справа. Вот. Send text message, senter. Вот. То есть можно выбрать один узел, по сути, и через этот один узел уже дальше всё настраивать. Смотрите, чтобы отправить сообщение в телеграме, что нам надо сделать? То есть нам нужен чат ID. А чтобы конкретному пользователю отправлять сообщение, нам нужен текст, соответственно, текст сообщения. Здесь мы выбрали credential. добавили. Я только что показывал в Telegram-триггере. Это значит, от лица какого бота мы будем отправлять сообщения. Где нам взять чат ID? Ну давайте я вот так покажу. Чтобы узнать ваш чат ID, можно сделать следующее. Можно зайти сюда, опять же, найти Telegram Trigger on Message и ещё раз его активировать. Нажать Execute Workflow. А мы пока не можем это сделать. Смотрите, если он горит красным и не даёт вам ничего сделать, вы можете ввести здесь абсолютно любые значения. Он выдаст ошибку впоследствии, но, по крайней мере, он нам позволит выполнить предыдущий узел. Что нам и нужно сделать? Нажимаем Execute Workflow. Опять же возвращаемся в Telegram, пишем сообщение любое. Сообщение отправляем. Он пришёл, выдал ошибку. Всё правильно. Но зато мы теперь знаем наш чат ID. Вот он написан ID. А мы его можем скопировать. и поставить здесь дальше вот так, например, мы можем перенести динамическое выражение. Тоже про это будет подробнее дальше. В Nos данные передаются в следующем формате. Они работают как JavaScript выражение. Ничего в этом сложного нет, на самом деле, не пугайтесь. То есть у нас есть вот какая-то информация. Мы можем вместо того, чтобы копировать значение и вставлять само значение, вот чат ID, мы можем перенести вот ID вот сюда вот. И получается у нас вот, видите, выражение активируется. Что это значит? То, что нам напишет другой пользователь в этого же бота, будет уже другой чат ID в триггере отображаться. И, соответственно, будет другой чат ID. И здесь он тоже поменяется. То есть это динамическое выражение, которое позволяет таким образом удобно этим всем управлять, менять значение. И текст какой-нибудь мы тоже можем отправить здесь, например. Ну, давайте фиксированный напишем просто. Привет. Готово. Ну и активируем наш workflow. То есть сейчас мы должны отправить сюда какое-то сообщение, и он нам в ответ напишет привет. Например, мы пишем. Вот, пожалуйста, написал привет. И вот this message send automatically with N8N. Чтобы это убрать, можем зайти в Telegram, а, который отправляет сообщение, нажать Addfield, нажать Appenton 8 attribution и отключить его. И сделать то же самое ещё раз. Execute workflow. Тест. Привет. Всё отлично, мы настроили нашего бота. Давайте сразу ещё вот как сделаем. Добавим сюда между AI эта. И здесь мы добавим чат моду, который мы добавляли Openроутера. В этом, ну, я показывал ранее. Выберем, ну, давайте GPT41 min пусть будет. И здесь добавим по дефолту здесь стоит connected chat trigger note, то есть, но мы выберем здесь значение под названием define below. И в значение define below мы перенесём текст. Вот он наш текст, который мы отправили. Тест. Вот так вот его перетаскиваем. Всё. Значит, теперь здесь будет отображаться то, что мы отправили, потому что тут у нас стоит динамическое выражение в AI Agent. Сейчас будет приходить наши сообщения с Телеграма. Давайте я покажу, как это будет выглядеть. Нажимаем Execute Workflow. Пишем привет. Всё активировалось нам. AI agent активировался. Он сразу нам что-то ответил: "Привет, как я могу помочь? " Ну как могу помочь? Но у нас произошла ошибка и наша и сообщение от бота не отправилось в Telegram. Почему произошла ошибка? Потому что output AI эта он называется немножко по-другому. Он называется теперь вот так вот. Output. То есть нам вместо статического текста нужно поставить вот это выражение, чтобы у нас не просто одно и то же сообщение всегда отправлялось, а сообщение отправлялось динамически, в зависимости от того, что нам ответил AI agent. Ошибка ещё в чат ID произошла, потому что, а, до этого у нас вот этот узел был сразу перед этим узлом, сразу он был прямо присоединён. И в таком случае выражение было одним. Но если мы добавляем между ними какой-то узел, вот между узлом Telegram и узлом Telegram, добавляем какой-то узел, не обязательно узлы Telegram, это с любыми узлами работает. Если мы между узлами добавляем какой-то узел, либо два узла, либо три узла, это уже не имеет значения, то у нас динамическое выражение меняется. То есть, если у нас Telegram-тригр подсоединён напрямую сюда, то у нас вот это вот выражение, оно горит зелёным, оно активное. Но если он присоединён уже через какой-то узел, между ними кто-то стоит, то это выражение, оно немножко меняется. Как оно меняется? Можем просто открыть вот здесь вот Telegram Trigger, найти опять же чат ID. Это мы просто уберём и перетащить сюда вот чат ID. Всё, видите, вот таким образом оно меняется. Не будем сейчас вникать, как именно. Вот таким образом оно меняется просто. Теперь можем сохранить. Можем нажать Execute Workflow, зайти обратно в Telegram и написать ещё раз: "Привет, кто ты? " И теперь нам отвечает уже чат GPT. Мы только что вывели чат от GPT в Telegram. Я вас поздравляю. Привет, я чат GPT, виртуальный помощник на базе искусственного интеллекта. Помогаю отвечать на вопросы, объяснять сложные вещи, помогать с учёбой, работойдеми и просто общаться. Чем могу помочь? Ничем. И чтобы вам каждый раз не приходилось нажимать кнопку Execute Workflow и отправлять сообщение в Telegram, есть паблиish mod, да, про который я говорил. Вы просто публикуете ваш проект, прописываете здесь версию, нажимаете паблиish, а горит зелёненьким кнопочка. Всё, ваш проект опубликован. Это значит, вы можете вообще закрыть N8N. Ну и здесь теперь вы можете общаться с вашим ботом. Я прямо сейчас гайд записываю. Все остальные узлы, то есть вот Google щит, Google календарь, Gmail, Google Диск, они работают похожим образом. То есть вы добавляете эти узлы, вот они есть в поиске. Google Drive, например, вы добавляете и тут выбираете любое действие, допустим, файл, допустим, delete, download, move и так далее. То есть можете что-то делать с этими узлами. И, ну, вам нужно, естественно, подключить credential вот здесь вот сверху. Чтобы подключить credential, Google там чуть посложнее это всё делается. Я сейчас не буду про это рассказывать, я забыл это подготовить, на самом деле. Ну, неважно. Ну, можете в Ютубе поискать либо спросить у чата GPT, чтобы добавить Google Credential. И таким же образом можно подключать абсолютно любое сервис ваш NVO CMEN. Потом идут потоковые узлы и трансформация данных. Давайте здесь же добавим onch message, например, и покажу, что такое потоковые узлы, трансформация данных. Допустим, узел if. Что такое узел if? Это узел, который позволяет нам определять значение true или значение false. Ну, например, заходим внутрь узла if и прописываем определённые правила. Например, давайте сначала просто что-то напишем, какое-нибудь сообщение. Мы написали какое-то сообщение. Открываем узел. И теперь у нас вот тут вот слева отображается то, что мы написали. Чтобы удобно было перенести, мы сразу берём и перетаскиваем вот сюда динамическое выражение. И давайте здесь что-нибудь пропишем. То есть, а, выбираем здесь string из equal to. Про это тоже будет подробнее дальше про типы данных, но сейчас не об этом. Сейчас краткое знакомство. Json chat input изqu. Изqu чему? Чему равняется jon chat input? Допустим, мы пишем. А если наше сообщение из equal to привет, то это значение будет равняться true. И смотрите, что происходит. То есть мы, допустим, пишем: "Привет". И видите значение true. Оно пошло в вот эту полосочку, в путь true. Но если мы напишем что-то другое, то онос, потому что вот здесь оно отображается. Видите, наше значение равняется аа, а не привет. И поэтому оно идёт в значение false brch. Если мы пишем привет, то оно идёт уже в true brangch. Вот видите, оно равняется привет из equal to привет. Значит, всё правильно. Где это используется? Да где угодно. Ну, пишет вам в Telegram кто-нибудь. А, допустим, у вас есть Telegramбот, и вы не хотите, чтобы его мог кто-то активировать, кроме вас. У вас есть чат ID в Телеграме, он у всех индивидуальный. Вы можете просто поставить здесь такое значение. То есть, если пишет пользователь там с чатом ID вот таким вот, то тогда это true. Давайте я вот даже это продемонстрирую. Вернёмся к нашему workflow с AI agent. Добавим вот сюда вот узел if и сделаем следующее. Давайте для начала его просто активируем. А он у меня опубликован. Давайте его, а, unpubбish сделаем, деопубликуем, так сказать. Нажмём Execute Workflow. Опять же напишем что-нибудь сюда в бота. Написали, он у нас активировался. Зачем я это сделал? Чтобы здесь отображались данные, чтобы удобнее было работать. Теперь здесь нажимаем на плюсик и добавляем узел if. Что мы прописываем в узле if? Берём наш чат ID, вот он, и ставим его вот сюда. Вот сюда вот его ставим вверх. То есть получается, если наша здесь выбираем значение, теперь уже а number. Почему number? Потому что, видите, вот здесь вот чат ID, а, видите значение решёточка. Если решёточка, то это число, если т, то это строка. Тоже об этом подробнее будет. Выбираем number и выбираем тоже язык to. Такой же, как и в строке. Только строка - это буква, number - это числа. Язык. И прописываем наш чат ID. Прописали. То есть, что мы сейчас сделали? Если я пишу в этого бота конкретно с этого аккаунта, то это будет работать, потому что у нас А, видите, узел if определяет, что значение тру, то есть он видит то, что вот это вот наш чат ID равен а чату ID, который можно пропустить. Но если бы чат ID был другим, например, вот таким вот, да, что произошло бы? То есть нам бо что-то ответил. Теперь мы можем опять нажать execute workflow, написать какое-нибудь слово, ну, букву, и он уже нас не пускает, потому что мы здесь поменяли чат ID и всё. Таким образом мы блокируем доступ всех недоброжелателей, от всех тех, кого мы не хотим пропускать к нашему и агенту, да, например, или любой автоматизации. Также здесь можно добавлять ещё дополнительные условия, то есть add condition, либо end, либо or. То есть, если мы хотим, допустим, дать доступ к нашему Telegramботу, чтобы он был у нас и у наших друзей, то мы здесь прописываем наш Telegram ID, значение Telegram ID нашего друга, там ещё одного нашего друга. Вот. И а ставим везде тут значение or между этими штуками, то есть or. Вот. То есть в случае, если нам напишет пользователь с таким ID либо с таким ID, то мы их пропускаем. Если со всеми другими, то не пропускаем. Также можем прописать значение end. То есть, допустим, если нам пишет пользователь с таким вот ID end, и он пишет слово, давайте вот возьмём текст, то есть мы принесли сейчас значение пише текст привет, только тогда мы ему ответим. То есть, смотрите, здесь должно выполняться два условия, чтобы был пользователь с правильным ID и писал правильные слова. Если пользователь будет с неправильным ID, но писать правильные слова, это не сработает. Если пользователь будет с правильным ID и писать неправильные слова, то это тоже не сработает. Но давайте сейчас покажу. То есть вот мы ему пишем, например, то есть ID у нас сейчас правильный, но мы ему напишем букву А, и оно не сработало. Но если мы ему напишем слово привет, то нам ответит, потому что мы здесь в значении if это всё указали. Дальше мы разберём узел switch. Смотрите, в чём смысл уза. А узел Switch похож на узел if, но выполняет немножко другую функцию. Здесь пишем switch. Что делает узел switch? А здесь надо сначала добавить несколько правил. Давайте вот от rule добавим и ещё одно roting rule. И поставим везде чат input. Здесь чат, здесь часть chatт input. И пропишем слова. Здесь мы пропишем привет. Здесь мы пропишем ок. А здесь мы пропишем е нормально. Если мы пишем слово о, ничего не происходит. Он не выбирает ни один из путей. Если мы пишем слово привет, он выбирает первый путь, потому что мы здесь указали вот здесь вот слово привет. Потом, если мы пропишем слово ок, он выберет второй путь. Если мы напишем слово я, он выберет третий путь. То есть вот что он делает. То есть он просто в зависимости от того, ну, какое условие вы поставили, выбирает один из путей. Здесь этих путей можно выбрать просто бесконечное количество. Ну, не бесконечное, но очень большое. То есть вот очень много можно их добавить. И просто в зависимости от того, что пришло, какое сообщение или не только сообщение, там что угодно может быть, любое же условие можно сделать. В зависимости от этого направляете уже по нужному пути. Узелфильтра, что он делает? Он фильтрует айтемы. Пишем фильтр. Вот у нас есть узел фильтр. Нам, например, что-то приходит, какие-то данные. Ну давайте всё-таки chat message поставим. Пишем что-нибудь. Опять же здесь мы можем фильтровать данные. То есть, например, если чат input равен вот этому, то есть тому, что мы написали, вот df, то тогда данные проходят. То есть, например, пишем, а если мы пишем вот DF, данные проходят. Если мы пишем что-то другое, данные уже никуда не проходят. Вот. И вы скажете: "А какой в этом смысл, если автоматизация просто стопорится, останавливается? " Ну, во-первых, это можно, кстати, использовать, а, вот здесь вот вместо узла if, а, чтобы фильтровать доступ к e-агенту с определённым ID значением, только чтобы доступ к нему могли получить только те люди, у которых есть определённый Telegram ID. Здесь, кстати, можно тоже несколько условий добавить, как возле if, но он всё-таки нужен для фильтрации. То есть, видите, сейчас тут показывают один айтем. Но если бы айтемов было несколько, и у этих айтемов были бы разные значения. Допустим, в первом айтеме они одновременно передаются. В первом айтеме будет значение привет, во втором значение деф. То есть будут на входе два айтема, а на выходе останется только один айтем. И про это подробнее тоже чуть позже поговорим. Узел Edit Fields. Ой, очень люблю этот узел. Очень полезный. Вот он. Data transformation Edit Fields. Ну, он очень простой, но я его очень часто использую. То есть нажимаете на кнопку, и сейчас мы можем задать какие-то данные. Например, можем написать данные, вот данные, выбрать здесь тип, то есть там строка, число и так далее, и нажать Execute Step. И видите, что произошло. Вот у нас мы создали какие-то данные. Данные и значение вот данные. То есть вот лей данные, значение вот данные. Отлично. То есть он, в принципе, для этого и нужен. Что дальше идёт? Дальше идёт узел код и узеллиit. Ну давайте узеллимиit сначала разберём. Узеллимиit нужен для чего? Давайте мы всё-таки узел editви сюда поставим, а пропишем тут что-нибудь, любые значения и зайдём в settings и добавим duplicate item. То есть мы сейчас сделаем дубликацию айтемов. У нас был один айтем, мы сделали дубликации. Можно в table подробнее посмотреть или в Jсоony. Вот у нас их несколько стало. Давайте для простоты не скобочку напишем на слово какое-нибудь. Слово привет. Пять раз мы скопировали, получается, айтем. Короче, вот мы сделали дупликацию айтема и лимит. Вот как раз про айтемы чуть позже станет понятнее, когда буду разбирать конкретно блок про данные. И лимит как раз ограничивает эти айтемы. То есть вот мы можем, например, ограничить первыми тремя. Сейчас мы можем опять что-то написать. Активировать наш workflow. Видимо, то, что было на входе пять айтемов. Осталось три айтема, потому что мы выставили ограничение в три айтема. Можем выставить ограничение там в четыре айтема. и активировать. Вот останется их четыре. И, естественно, code. Uzle code - это как раз способ кодить внутри N8N. Пишем узел Code. Вот он. Здесь вы прописываете JavaScript код, если вам это надо. Опять же, как я обычно это делаю? Я захожу в clк, в чат GPT, в какую-нибудь нейронку, которой я пользуюсь, вообще, пользуюсь я клодом, и прошу его прописать здесь какой-то JavaScript код, чтобы мне что-то там сделать. Ну, например, давайте я покажу, как это можно сделать. Вот зашли мы в код, и я напишу: "Дай мне JavaScript код для узла код VN8N, результатом работы которого будет три айтема со значениями имя и будет три разных имени". Криво, конечно, написал, но это неважно. Я думаю, он меня поймёт. Вот нам отправляет он код. Копируем этот код, заходим в N8N, ставим его и смотрите, что происходит. Мы его активируем. Можно, кстати, активировать, я не сказал, нажимать Execute Step сверху. Тогда мы активируем конкретный узел. Вот у нас появляется три айтема. Вот если нажмём table, у нас всё он отображается. То есть он нам создал три айтема с разными именами. И не только это можно делать. Узел код можно использовать много как в N8N. Ну, то есть это расширение возможности N8N с помощью кодинга. Потом идут AI узлы. Давайте это уберём. Триггер есть какой-то. Мы нажимаем на плюсик и нажимаем на AI. И тут у нас появляются AI узлы. Например, можем добавить узел Open AI, можем добавить узел, а, Google и так далее. Есть разные AI узлы, чтобы делать какие-то AI штуки. На самом деле почти все эти узлы заменяются узлом AI Agent. Вот он узел AI Agent. Но можно всё-таки использовать всякие преднастроенные AI узлы. Например, если вы хотите сгенерировать изображение с помощью Гугла или сгенерировать видео, вы можете использовать узел Google Gmini там или Open Aю. Ну, то есть с помощью этих ай узлов можно делать много что. Вот, например, а текст classifire есть, да, узел. Можем добавить сюда модель какую-то, как мы добавляли Open Router. Зайти сюда внутрь и добавить текст для классификации. Давайте всё-таки добавим Onch Message trigger. Откроем его и напишем что-нибудь. А выдаёт ошибку. Короче, вот здесь вот просто красненьким горит. Нажмём любую букву. Он сейчас опять выдаст ошибку. Ну, по крайней мере, первый узел у нас активируется. Раз у нас первый узел активировался, значит, мы можем отсюда вытащить чат input и поставить сюда. И здесь добавить категории. То есть мы можем здесь добавить несколько категорий. Допустим, здесь категория птицы, здесь звери, здесь люди. И здесь пропишем, а, описание для нашей лмки. То есть выбери этот путь, если речь о птицах. Здесь мы пишем: "Выбери зверях". А здесь, если речь о людях, ну, смотрите, что мы сделали. Мы восстановили узел Switch. Я только что вам показывал узел Switch, который выглядит вот так вот, с помощью которого мы могли выбрать какой-то путь, да, для нашего а workflow. Здесь мы делаем то же самое, только возле свич там были фиксированные значения, а тут семантические значения. То есть мы пишем какое-то сообщение. Так как у нас здесь подключена языковая модель, там, допустим, чат GPT подключена, она определяет, в какой из путей больше подходит наше значение. То есть допустим, мы пишем орёл. Написали орёл, он сейчас поймёт то, что это лучше подходит к птицам. Видите, он написал к птицам. Напишем мы, например, медведь, он направит к зверям. Напишем мы там человек, он отправит к людям. На самом деле тут никакой магии нет. Здесь всё очень просто происходит. То есть по факту к нашему Openроутеру отправляется текст, да? Вот по факту вот отправляется текст, системное сообщение, оно автоматически пишется здесь, типа, please classify the text. Короче, пишется сообщение типа чату GPT. А, привет. Классифицируй, пожалуйста, сообщение от пользователя. Вот пользователь пишет сообщение, и нужно выбрать, какой из трёх категорий это подходит. И в своём ответе должен использовать только, ну, определённый формат вывода jсо. Ты можешь написать только три сообщения в своём ответе: либо птицы, либо звери, либо люди. Вот и всё. Он что-то пишет, что-то отвечает, и потом а этот узел активируется. Понятно, что самый популярный узел AI - это же, конечно же, AI agent, который вот только что показывали. Давайте вот так сделаем. Давайте вот сначала то, что есть. А то, что видно по дефолту. Вот есть мемори. Зачем нужна мемори? Дело в том, что и агент не помнит вообще историю диалога с нами. Он вообще её не помнит. У него не, ну каждое сообщение наше чату GPT, оно сепарировано от остальных. Оно отправляется отдельно. То есть как это работает, когда вы общаетесь с чатом GPT просто в интерфейсе. Вы отправляете ему сообщение. Первое, допустим, оно отправилось. Отправляете второе сообщение. Когда вы отправляете второе сообщение, по факту под капотом что происходит? Берётся ваше первое сообщение, ответ чата GPT и ваше новое сообщение. И вот это всё уже отправляется в чат GPT. И таким образом создаётся иллюзия того, что он что-то помнит. На самом деле он ничего не помнит. И чтобы создать эту иллюзию, мы добавляем к нему память. Здесь мы прописываем, то есть сколько сообщений он может читать. Давайте тут напишем пять. Да, давайте сначала её отключим, я покажу, как это работает. То есть мы отключили память, заходим в Telegram и пишем: "Эй, он нам отвечает: "Привет, чем могу помочь? " Ещё раз активируем и пишем: "Привет, какое было моё прошлое сообщение? " А он не знает. Он что скажет? Я не знаю. Привет. В этом чате это твоё первое сообщение. Вот. Потому что у него, ну, это сепарированные запросы. Но если мы добавим меory и добавим memory, получается пять штук. Только единственное, нам надо здесь немножко поменять. Надо нажать вот тут session ID, define below и указать. Ну, давайте ID укажем. Чат ID. И отправим ещё раз. Нажмём Execute Workflow и напишем привет. Он написал привет и записал сообщение в память. И теперь мы можем отправить ещё раз написать: "Привет, какое было моё предыдущее сообщение". И он нам скажет то, что твоё предыдущее сообщение было: "Привет, пожалуйста". Потому что мы добавили память. Что ещё есть у иагента? Есть тулы. То есть мы можем подключать сюда какие-то тулы. Почти у всех нужно вводить какие-то криеншилы, но вот есть тул калькулятор. Тут ничего вводить не надо. То есть здесь всё сразу готово. Есть тул Википедия. Здесь тоже водить ничего не надо. То есть он сразу может искать по Википедии. Чтобы он обращался к тулам, нужно это прописать в системном промте. Смотрите, что такое системный промт. Есть сообщение обычный промт, то есть usемедж обычная, когда мы к нему обращаемся. А есть системный промт. Системный промт - это когда мы даём ему какие-то системные инструкции, то есть главные инструкции, на которую он ориентируется в первую очередь. Там мы пишем обычно, как он должен себя вести, кем он должен себя представлять, какие должен давать ответы и прочее. Нажимаем на кнопку, выбираем здесь systemдж -e. Это естem. Тут мы можем прописать что-нибудь типа: "Привет на любое сообщение пользователю. Говори, что ты, не знаю, Наполеон пусть будет". Но при этом отвечай на вопрос внятно. Вот такое мы пишем. И у него есть тулы, подключены тулы. И чтобы он ими оперировал, нужно это прописать в промте. То есть мы пишем, если пользователь просит тебя что-то посчитать, используй узел калькулятор. Как он здесь называется? Он называется калькулятор. Можно его переименовать. Можете сюда нажать, нажать rename и тут написать что-то. Ну давайте так оставлю. калькулятор используй не узел, а используй тул калкулькулатор. Если пользователь спрашивает что угодно, используй Tool Wiкипеedia. Теперь давайте посмотрим, что будет происходить. Давайте отключим Telegram, чтобы было проще. То есть мы сделаем вот так вот. Отсоединим Telegram и добавим чатмедж сюда. Вот. Но так как мы добавили новый триггер, нам нужно теперь поменять динамические значения, потому что они меняются. Давайте уберём вообще эти узлы Telegram. Всё готово. Откроем чат, напишем что-то, он выдаст ошибку, потому что у нас чат инпут поменялся. То есть у нас динамическое выражение теперь уже называется по-другому, потому что у нас триггер другой. Вот. И в памяти нам тоже надо это поменять, потому что в памяти раньше мы записывали исходя из чата ID, а сейчас будем записывать, давайте, исходя из session ID, потому что у нас триггер поменялся, поменялись данные, которые передаются из этого триггера. Теперь можем написать ему: "Привет". Вот мы ему сказали: "Каждый раз при любом сообщении пользователя обращайся к Википедии". Как было видно, он обратился к Википедии. Он говорит: "Я Наполеон, приветствую тебя, рад твоему приветствию". Словно солдат на параде перед императором. Чем могу быть полезен? Словом, знаниям или стратегией? Вот он вжился в роль. Так это, кстати, и работает. То есть эффективная тактика написания промтов - это давать роль вашей лэмке. Говорить ему: "Играй такого типа, играй такого типа". Пишите ему, хотите узнать что-то про физику, говорите ему: "Играй физика, играй Эйнштейна". Там, например, хотите узнать что-то про юриспруденцию, пишите ему типа: "Играй, представь, что ты Солма", да, например. Вот. И тогда он будет вживаться в роль и реально отвечать лучше. Отлично. Он воспользовался Википедией. Теперь мы можем ему написать: "Посчитай 3 + 15". Он, конечно, и сам может посчитать без тула калькулятора. Это эффективно, но мы дали ему тул калькулятор, пусть он воспользуется им. Вот он посчитал. Я Наполеон и приказал арифметике повиниться. Повиноваться она починилась. Вот он обратился к калькулятору. Можно видеть, да, он написал 18. А если мы напишем, кто такой Илон Маск, он пошёл в Википедию, нашёл информацию и ответил нам. Что-то вытащил из Википедии и ответил нам. Хотя внутри чата GPT, который мы подвязываем через Open Router, есть знания о том, кто такой Land Mask, но тем не менее можно подключать внешний тул для этого. Но мы в качестве тулов для иагента можем подключать таких же и агентов. То есть мы пишем вот здесь буквально их agent tool. Мы подключили в качестве тула для иагента ещё одного иагента. Зачем это надо? Чтобы создавать мультиагентные системы. Допустим, у вас есть какой-то главный и агент, агент-менеджер. У него в качестве тулов есть дополнительные иагенты, там и агент по Google календарю, Mail, иагент там по Телеграму, какие-то, короче, разные и-агента. И он ими может управлять. То есть иагент может решать, кому дать задачу. Он передаёт это следующим иагентом. Эти иагенты уже дальше сами выполняют эту задачу. То есть вот так тоже можно делать. И есть ещё такая штука, как MCP. Три тула подключили. В целом неплохо, но если вы хотите подключить большее количество тулов, то есть там четыре-5ять и так далее, технически вы это сможете сделать. Но по факту и агент будет очень сильно путаться и работать плохо. И чтобы этого избежать, существует такая штука, как MCP. То есть такой MCP Tool. Это мы можем убрать, добавить вот здесь вот MCP Tool, MCP, MCP client Tool. Вот. И с помощью этого MCP вы создаёте MCP server Trigger в отдельном workflow N8N и подвязываете уже большее количество инструментов. это будет работать эффективнее. Тоже тема отдельно большая. Я её тоже затронул впоследствии в ролике, но у меня есть вообще ролик на час, по-моему, про MCP. Тут где-то высветится. Нажмите на него, посмотрите полезный ролик. Вам, я думаю, пригодится. Есть ещё комьюнити-ноды, как я говорил, как они работают. Ну, например, есть коммьюнити-ноды, которые, а, официально одобрены разработчиками NCMN, то есть они были созданы не разработчиками N8N, их создало сообщество, потом их проверили разработчики N8N и официально добавили в N8N. То есть как это работает. Вы можете написать, например, квадрант. Видите, подсвечивается галочкой. Это значит то, что этот узел, видите, он изначально не предонастроен в Nem, то есть его нету изначально в NVM, его нужно установить, но он отоплен разработчиками N8N, то есть можете нажать Install Note и его установить. То есть это проверенный узел. Вот видите, verifi здесь с ним всё нормально, всё, вы можете его использовать. Но если вы хотите установить какие-то узлы, которые не проверены, а их большинство, делается это как делается? Это через настройки. Заходите в настройки, а вот community notes. И здесь прописываете какое-то название, да? Жмёте install. Вот видите, он тут тоже установился. Но, например, жмёте install и устанавливаете нужный для вас узел. Какой узел, например, можно установить? А, например, вот есть узел N8NE MCP. Где вообще их брать? Вы смотрите комьюнити N8N. Вот он, кстати, показывает уже Brows. Можете нажать. Вот здесь есть разные комьюнити узлы, которые выкладывают, а, получается пользователи N8N. И чтобы их установить, вы нажимаете на любой из них, копируете вот это название N8N Notes 11 Labs, например. Возвращаетесь обратно и жмёте галочку и жмёте Install. И тогда у вас установится этот узел. По-другому это никак не сделать. По-другому в интерфейсе по умолчанию они отображаться не будут. Их нужно именно выискивать как-то, брать их название и устанавливать. Всё, теперь оно есть. Смотрите, теперь как это работает. Возвращаемся обратно и ищем 11 Labs. Мы только что установили. Вот. Вот то, что мы установили, видите, подсвечивается кубиком, это значит, что это community node. Вот мы установили комтины, но это мы разобрали, естественно, не все узлы в NN, потому что их много. То есть нативных узлов в NN их 57 где-то там штук, может быть 60. Это не считая экшн DP, то есть не считая вот этих вот action, то есть преднастроенных интеграций. Почему мы их не считаем? Потому что каждый из этих action and DEP можно восстановить с помощью узла HTP request. Основные найтины узлы, с помощью которых можно сделать, ну, 99% всех автоматизаций. Их где-то 57 штук. У меня есть подробный разбор каждого из этих узлов в моих закрытых материалах под названием узел дня. Чтобы вы понимали, в этих узлах дня 10,5 часов материалов. То есть, если вы хотите прямо очень хорошо изучить NВО CN, можете купить доступ к этим материалам. Это вам, правда, поможет. Вот как это выглядит. То есть вот Telegram-канал и здесь у меня видео по каждому из узлов. Также здесь есть простой Telegramбот. Нажимаете вот сюда вот нажимаете сстарт, и у вас открывается следующее меню. То есть надо вам что-то узнать про узел в N8N. Нажимаете узлы N8N, нажимайте AI узлы, например, да, нажимаете узел AI Agent, и вам даёт короткое описание и ссылку на пост. Вот тридцатиминутный разбор узла AI Agent и ещё дополнительные 2-4 минуты тоже настроек самих LLM. В своём канале я опубликовал отзывы на эти узлы. То есть вот, можете почитать отзывы позитивные. Негативные отзывы мне не оставляли, по крайней мере, пока что надеюсь, не оставят. И если вам, ну, вообще не поможет эта информация, то есть она окажется для вас бесполезной, вы поймёте то, что вы это всё знали и так напишите мне, и я верну вам тогда деньги за вашу покупку. Переходите по ссылке в описании. Спасибо, покупайте. И на Telegram-канал подписывайтесь. А теперь

### Установка n8n на свой сервер [1:32:12]

мы переходим к установке СМ на свой сервер. Изначально хотел показать два способа установки, но решил то, что лучше оставить один самый, э, эффективный. Чтобы установить Nosm на свой сервер, мы воспользуемся следующим репозиторием. С автором этого репозитория я списывался. Автору репозитория Респект, он мне ответил на вопросы касательно установки всякие. Вам нужно арендовать сервер. Где мы берём сервера? Нужен какой-то сервис, который позволяет арендовать сервера. Я пользуюсь бигетом. что угодно можно взять. Вообще любой сервер. Не обязательно биет. Ну просто вот привычно мне использовать Begget. Нажимаем на биет либо любой другой. Проходите регистрацию, создаёте аккаунт и так далее. Переходите в вашу панель управления. Нажимаете создать виртуальный сервер и выбираете а вот здесь вот Унту 2404. А здесь выбираете конфигурацию сервера, то есть количество CPU ядер, количество оперативки и память на сервере. Минимальная конфигурация для установки этого репозитория - это 2 CPU, 4 ГБ оперативки. Вот здесь можно выбирать, ну, настраивать самостоятельно. И 30 Гб дискового пространства. То есть, ну, вот можно выбрать минимальную конфигурацию, выходит там 23 руб. в день. И дальше вы нажимаете вот тут можно задать пароль. Если вы не будете его задавать, он автоматически всё равно задастся какой-то вам пришлётся на почту. Нажимайте создать виртуальный сервер. Создаём сервер Сунunту 2404. Можем ему сразу название поменять. Какое-нибудь такое 8N8N. Если что, не переживайте, у вас указана почта в Бегете. Если вы не запомнили пароль или что-то от сервера, вам придёт вся информация об этом сервере на ту почту, которую вы указали. Почему вообще устанавливаю через этот репозиторий сразу? Потому что, когда вы устанавливаете N8N, вам со временем, рано или поздно понадобятся другие всякие дополнительные сервисы, которые тоже надо будет устанавливать на сервера. Например, вам понадобится квадрант, да, для векторной базы данных, вам понадобится йк - это графовая база данных, вам понадобятся ещё какие-то сервисы и Supase, например. И этот репозиторий, он включает простую установку сразу всех вот этих вот сервисов, которые обычно устанавливают рядом с N8N. для и автоматизаций. Вот их можно выбирать, какие устанавливать, какие нет. Поэтому я сразу рекомендую устанавливать через этот репозиторий. Если эта установка вам покажется слишком сложной и вы хотите просто установить NM на свой сервер, у меня было видео про это, как установить N CNN на сервер Biget. Там вообще максимально простая установка, там вообще ничего сложного. Вот оно где-то тут будет. Нажмите, посмотрите и установите. Сервер у нас есть. Теперь к нему надо подключиться. Сервер- это получается мы арендовали, можно сказать, такой же локальный ПК, как у нас, только где-то там далеко в Питере. Ну или где, где мы поставили сервер, да, мы же выбрали регион, там Москва, Латвия, Казахстан или Питер. Ну да, и он работает постоянно круглосуточно и не падает. Ну падает, но очень редко. Дальше ищете в Гуглер эта штучка, чтобы подключаться к серверам, можно подключаться напрямую через терминал. Если вы не знаете, что такое терминал, и просто делайте так же, как я. Скачиваете программу. Вот нажимаете, ищете в Гуглерс, просто устанавливаете её, а, выбираете вашу операционную систему, логинитесь, регистрируйтесь и скачиваете термиус. Здесь бесплатной версии будет достаточно для всего, что нужно нам реализовывать. Потом открываете термиус, нажимаете New Hostт вводите следующее значение. Вам нужно ввести IP сервера. Где указано IP сервера? Вам на почту всё это пришло в сообщении, но также IP указано вот здесь. Вот. Вот у вас IP сервера, но у меня это пришло в сообщении, поэтому можно вот здесь скопировать IP сервера. Вводим сюда, потом вводим usernрame. Username будет root, оно у всех одинаковое. И вводим пароль. Пароль указывался при установке, и пароль пришёл к нам на почту. Можем его скопировать и поставить. Всё, вводим и нажимаем connect. Нажимаем add continue. Всё, мы подключились к серверу через консоль. То есть мы сделали сейчас уже много что сделали. Круто. Поздравляю вас. Теперь нужно добавить домен к вашему серверу. Заходите в Biggetет, опять же листаете вниз. Вот тут есть доменны по домину. Нажимаете регистрация доменов. В регистрации доменов вводите любой домен, какой хотите. Например, Full Guide NCman. Ну вот такой пусть будет. Нет, давайте вот fullgnv. ru, потому что он дешевлет. ru стоит 179 руб., онлайн 100 450 руб. И выбираете срок на 1 год он будет работать. Нажимаете продолжить. Дальше вот такая страница. Тут показываются ваши данные. И нажимаете зарегистрировать. Листаете вниз, нажимаете зарегистрировать. Готово. У вас появился домик. Теперь, что мы делаем? Заходим обратно в панель на других сервисах, где размещаются сервера. Там это примерно так же работает. Тоже там есть можно купить домен, можно направить сервера на домен, точнее домен на сервер и так далее. Надо добавить под домен. Нажимаем домены и под домены. И вот здесь вот листаем тут до нашего домена, который мы только что зарегистрировали. Нажимаем вот здесь вот и жмём добавить под домен. Теперь вот тут сверху у нас появляется возможность добавить под домен. И мы добавляем здесь звёздочку, вот таку вот звёздочку, точка и наш домен, который идёт дальше, и нажимаем добавить домены. Домены всё. То есть у нас листаем вниз обратно, видим вот у нас основной домен и есть поддомен. Это нужно, чтобы открывать разные сервисы, которые у нас будут установлены на одном сервере. Готово. И теперь опять возвращаемся в главное меню. Нажимаем на DNS. Опять же вот здесь выбираем наш домен. И вот, а, и к нашему домену в азаписи мы добавляем IP-адрес нашего сервера, который мы только что зарегистрировали. Сохраняем. Его можно посмотреть опять же либо в сообщении, либо вот он тут указан. Вот он наш сервер. Вот домен. Добавили это во запись к нашему основному домену. И теперь мы добавляем это же к нашему поддомену. Вот здесь нажмём на карандашик, жмём а запись и редактируем. Направляем этот же IP. Всё, теперь у нас здесь IP направлен и здесь. Теперь мы ждём от нескольких часов до там двух дней где-то, так это, по-моему, ожидается. И тогда у вас домен направится на ваш сервер. Потом, как я показал, мы подключаемся через термис к нашему серверу и делаем следующее. Дальше всё просто. Открываем наш репозиторий. Ну не наш, а вот этого автора, авторускт. Листаем вниз. И вот тут есть установка. Вот она. Run install. Просто копируем эту команду, открываем термиус и ставим всё. Зачем мы это делали всё с поддоменами, чтобы, ну, потому что так надо по инструкции установки, чтобы разные сервисы открывались по разным поддоменам. А теперь мы просто ждём. Теперь у нас высвечивается как раз вот эта вот штука, куда мы вводим наш домен, который мы зарегистрировали. То есть мы вводим обе звёздочки. Я сейчас ввожу другой домен, потому что я устанавливаю уже на тот сервер, куда у меня домены направлены, чтобы не ждать несколько дней. Вот нажимаем OK. А нажимаем yes. Типа он спрашивает, это primary domin или нет. Потом он просит ввести нас email. Здесь вы вводите ваш email-адрес. Он будет использоваться в установке. Только вводите реальный mail-адрес. Да, всё, вводим и так далее. Но главное ввести настоящий mail-адрес. А теперь мы выбираем, собственно, программы, которые мы можем установить. Как я говорил, а по ходу развития в N8N вам понадобятся ещё всякие дополнительные программы. И вот почему мы делаем это через этот репозиторий устанавливаем, потому что здесь можно очень просто их добавлять. Как это делать? Нажимаете на стрелочки на клавиатуре вот эти вот. Как бы показать? Вот видите? И что тут происходит? Крутая, кстати, клавиатура. Рекомендую. А чтобы выбрать программу, нажимаем на пробел. Чтобы убрать выделение, нажимаем тоже опять на пробел. И здесь мы можем выбрать нужные для нас программы. Но давайте для начала выберем только N8N. Вот квадрант можно выбрать, а, для мониторинга всяких программы. Короче, нажимаем ОК. Всё. А здесь нас просят ввести Open AI API ключ. Это опционально, написано Optional, то есть это не обязательно, но вот для таких сервисов, как Supase и Craw for AI, у них есть внутри AI assistent, который поможет разобраться в этой программе. Supase - это такая программа, которая поверх Postgrкess SQL базы данных устанавливается. То есть это, чтобы, ну, короче, это база данных, можно сказать. Очень, грубо говоря, там внутри есть AI ассистент. И чтобы он работал, нужно здесь ввести ваш Open AI опя. Если вы не хотите этого делать, можете нажать ОК. Но у вас тогда и не будет никакой ассистент работать. Но, честно говоря, это не особо и надо. Здесь он нам предлагает загрузить 300 готовых NN шаблонов, что может занять около 30 минут. Выбираем, либо да, либо нет. Я не хочу этого делать. Но если вы хотите не выискивать какие-то N8N шаблоны, а сразу взять готовые хорошие шаблоны, можете нажать yes. Шаблоны, я уже объяснял, что такое шаблоны 8N, но я выберу, потому что я не хочу ждать 30 минут. Здесь мы выбираем количество воркеров N8N. Это надо для подготовки продакшну. Сейчас я в это вникать не буду. Просто нажмите enter. Ок. А если вам реально уже нужны воркеры вво, то вы и без меня знаете, что такое воркеры. в N8N. Ну, теперь просто ждём. Зажигаю спичку. Такое у меня развлечение антистресс. Вот у нас устанавливается, ну, то есть процесс установки просто показывается. Вот зелёненьким что-то горит. Docker compose, контейнер N8N, контейнер Кадия и так далее. Готово. Вот так красиво нам высветилось то, что у нас всё установилось. Так как мы выбрали только N8N, нам показывают только данные здесь для N8N. Кстати, здесь появилось welcome URL. Вот нажимаем на него, скопируем его просто и откроем в браузере. Вот он открылось. Нужно ввести имя пользователя, пароль. Вот чуть выше указано наше имя пользователя и пароль. То есть имя пользователя - это наша почта. Копируем и вставляем. А теперь входим. Вот у нас такая панелька. Вот ссылка на N8N. Postgress Radies - это всё, что ставится вместе с N8N. Ris и Postgress Вот нам дают инструкцию по квикстарту и всякие команды. Прикольно, реально круто. А, нажимаем вот сюда на ссылку. У нас открывается N8N. Здесь мы регистрируем аккаунт любой. Вводите любой email. Вводите любое имя. Владимир. Уладимир и любой пароль. Готово. Вот он ваш N8N появился. Теперь что мы должны сделать? Теперь нажмём Settings, нажмём а usage and plan, нажмём unlock. И здесь будет автоматически введена ваша почта, либо введите её ещё раз, либо введите другую почту. И нажмите send me a free license key. Вот мне приходит на почту код. Мы его копируем. Ну либо нажимаем activate license key. Открывается наш N8N. И всё, у вас теперь community edition. То есть у вас теперь активированная Community Edition. Бесплатная тут активация. Поздравляю, вы установили 8N на сервер. Единственная тут проблема, да, это то, что надо подождать, пока доми направится на сервер. Пока он у вас не направится, у вас ничего открываться не будет. То есть придётся ждать несколько дней. Опять же, если эта установка кажется вам сложной, долгой и так далее, есть у меня видео про установку на BGT более простую. Посмотрите его. Теперь в этой же панели, кстати, отличная welcome панель. Можете её тоже сохранить, ссылку на неё. А здесь, по-моему, указано, как нам обновить system and services. Нажимаем Make Update. То есть, если вы хотите обновить N8N, и там обновляется не только N8, сразу все программы, которые есть, обновляются до последних версий. Заходим опять же в терминал, а в терминус, точнее, и вводим следующую команду Make Update. А очень важно то, что мы её вводим в папке CDN8N Install. Сейчас я покажу именно, что это значит. Ну, сейчас нечего обновлять, потому что мы и так всё самое новое установили. Но тем не менее, если было что обновлять, всё бы обновилось. И не переживайте, никакие данные на сервере в момент обновления никуда не исчезнут. Всё сохранится. Все ваши шаблоны invment сохранятся. Всё, что лежит в ваших базах данных в Postgrк SQL и так далее, оно сохранится. За это не стоит переживать. Вот, кстати, если вы хотите добавить на ваш сервер какие-то новые программы, сервисы, например, вы поняли, что вам нужен квадрант, вы опять же делаете обновление, потому что во время обновления можно будет выбрать вот дополнительные сервисы, которые установить на ваш сервер. Вот. Но имейте в виду то, что при установке дополнительных сервисов вам потребуется более мощный сервер. И в Бегете там можно увеличить конфигурацию сервера, то есть добавить ему мощность и при этом ничего не удалится на сервере. То есть всё сохранится, все данные останутся на сервере и так далее. Сейчас всё то же самое, что было во время установки, мы вводим. О'кей. Окей. И так далее. Всё, поздравляю. Мы обновили наши не только N8N, а всё, что есть на этом сервере. Все остальные сервисы тоже. Вот здесь можно на welcomeм pageйдже это всё посмотреть. А единственное, что я забыл упомянуть, обновление. Команда обновления работает только в папке 8N Install. То есть по дефолту как работает. По дефолту на сервере у вас будет открыта вот такая вот э строчка. То есть здесь никакой папки сейчас не введено. То есть, если вы введёте Make Update, вам скажут то, что rule to make target update. То есть ничего не сработает. И чтобы оно сработало, вам нужно перейти в папку, где у вас установлен N CM на внутри вашего сервера. То есть как у вас на компьютере есть папка, вот, например, да, какая-то папка на компьютере, вы в неё переходите, вы то же самое делаете внутри вашего сервера, но вы делаете это через терминал, через команду. Как это сделать? Просто вводите CD N8N тире install. конкретно через этот репозиторий эта папка называется так. Всё, видите, мы сейчас перешли в эту папку. Видите, тут вначале показывается, а потом вы уже вводите команду Make Update. Тогда всё сработает. Сейчас я её вводить не буду, чтобы не показывать второй раз апдейт, потому что я только что его сделал. Поздравляю, мы установили NV CMN на сервер. Мы разобрались, как его обновлять, и мы, по сути, разобрались, как устанавливать дополнительные сервисы к вашему NEN. Это тоже важно. Опять же, подписывайтесь на Telegram-канал, там все ссылки, материалы к ролику. И покупайте, да, материалы по узлам дня, чтобы лучше разобраться в N8N. Но они реально качественные, они реально хорошие, они реально вам помогут, они того стоят. Ну и в любом случае, если прямо не понравятся вам, не окажутся они прямо для вас полезными, вы сможете деньги вернуть. Поэтому вы ничем не рискуете, ничем. Теперь у нас идёт

### Свиток 2. JSON [1:46:31]

второй свиток. Это был свиток под названием, как я его назвал, знакомство с N8N. Теперь у нас идёт свиток про Jon. Переходим к Джейсону, к формату данных под названием JSON. Зачем он вообще нужен? Почему про него стоит разговаривать в контексте NVO Cman? А вот смотрите, NV CN пропитан Jсоном. NVman использует Jon для передачи всех данных между узлами. Великолепная иллюстрация от Nan Pro про то, что такое Jon, зачем он нужен. Что такое Jon?

### Что такое JSON? [1:47:07]

JavaScript object notation. Так он и расшифровывается. Это текстовый формат для хранения и передачи структурированных данных в виде пар ключ значения или ke value. Записывается он вот так. В кавычках ключ, двоеточие, в кавычках значение. Jon - это стандартный способ записывать данные в понятном для программ виде. Очень популярный, универсальный формат и очень удачно, что он используется в N8N. И когда мы делаем опять запросы, куда бы то ни было, нам почти всегда в 90 там 9% случаев отправляются данные в формате JSON. Сделали вы запрос в Open AI для того, чтобы подтянуть чат GPT, чтобы он отвечал на ваши вопросы. На самом деле он отвечает нам в формате JSON. Я только что показывал и агента, там этого видно не было, но это под капотом происходит, и знать это важно, чтобы освоить программу N8N. Ну и тут перечислены преимущества. Он читаемый людьми. можно прочитать глазами. То есть он выглядит просто. Сейчас я это тоже продемонстрирую. Он понятен машинам. Все языки программирования его понимают. То есть понимают и люди, и машины. Он лёгкий, занимает мало места, он универсальный, работает везде. Все популярные языки программирования имеют поддержку JON, а PI возвращают Jon, как я уже сказал. Ну давайте покажу, где в N8 находится формат Jon. Вообще везде. Ну давайте я покажу, например, вот так. Возьмём тригр manли. Возьмём узел Edit Fields для того, чтобы сделать какие-то данные. Ничего здесь сложного нет, вы просто прописываете данные. Как раз-таки вот он и есть JON. Когда мы пишем name, мы прописываем по факту key, то есть вот ключ. Когда мы пишем value, мы прописываем значение. Вот как это выглядит. Всё просто устроено. То есть как мы делаем? Просто пишем типа ключ. Здесь пишем значение, например. И дальше мы нажимаем Execute Step. Как я говорил, если вы нажимаете Execute Step, то вы выполняете конкретный узел, а не сразу весь workflow. Ну, можно выполнить весь workflow сразу. Вот, обратите внимание, а самый понятный формат отображения данных ввачков - это схема. То есть когда вы видите схему и понимаете, ну, здесь всё просто, то есть вот ключ значения, да? Но здесь у нас есть ещё формат отображения данных table, про который мы тоже поговорим. И есть вот он Jon. Вот он и есть наш JON. То есть на самом деле по факту здесь везде под капотом JON. То есть везде это записывается как JON. А N8 Man уже специально для нас отображает это в формате схемы, чтобы нам было проще просто в этом ориентироваться, чтобы это выглядело, ну, более приятно, несмотря на то, что JON всё равно выглядит, ну, понятно, да? То есть понятно, что здесь происходит, понятно, что это ключ, а это значение. То есть сгенерировали данные, они сгенерировались в Jсоне. То есть так всегда работает, когда вы скачиваете какой-то workflow, как я показывал. Вот, нажмём download. Скачали. Заходим в загрузки. Вот у нас workflow. Если вы нажмёте на, ну, на маки на пробел, если вы откроете этот файл, просто посмотрите его, как видим, здесь записано всё в формате JSON. Пока что это может показаться сложным, на самом деле здесь ничего особо сложного нет. А давайте я его открою специально в V-коде. Visual Studio CД - это IDE, это называется. Это программы, которые используют программисты, кодеры для того, чтобы кодить. Вам не нужно это устанавливать. Это я ради демонстрации просто показываю. Вот то же самое я открыл в эс-коде. То есть это абсолютно тот же файл, как можете видеть. Просто тут уже удобно оно подсвечивается и так становится гораздо понятнее, о чём идёт речь. То есть вот тут ключи подсвечиваются таким голубым цветом. Это же голубой, а значение подсвечивается таким каким-то блекло-коричневым. Не знаю, какой это цвет. Всякие синтаксис Jсона обозначается тоже удобно, всякие скобочки и так далее. Ну то есть вот он Jon формате JSON в N8 Man абсолютно всё происходит. Workflow записывается в формате JSON. Данные среди workflow передаются в формате JSON. То есть везде формат JSON. Вот ключ, вот значение. Что вообще значит ключ значения? Вообще, надеюсь, вам это стало понятно, но если не понятно, давайте покажу. Ещё один узел Aditfields. Добавим. А ключ значения. Ключ у нас используется как лейбл для нашего значения. Ну давайте более простой пример какой-нибудь сделаем. Давайте не ключ значения сейчас добавим, а здесь добавим что-то более прикладное, например, имя. И напишем тут Володя, потому что я Володя. А добавим ещё одно имя и напишем тут Владимир. Вот так сделаем имя два. То есть у нас будет имя, имя два. Два айтема, потому что если будет одинаковое значение ключа, то он не создаст просто два айтема, он сост создаст только первый. Вот у нас это не два айтема, на самом деле. Видите, подписан один айтем, просто две строки. Давайте вот так скажем. Две строки внутри одного айтема. Смотрите, что такое ключ. Ключ - это лейбел для нашего значения. То есть имя. Какое может быть имя? Какое угодно, но в данном случае это Володя. То есть когда мы перетаскиваем что-то вот сюда вот мы можем взять и перетащить. Кстати, то же самое можем сделать в формате JSON. То есть мы можем здесь нажать вот и table тоже оно также перетащится. или Jon тоже можем вот так взять, оно перетащится. Результат отображения этих данных всё равно будет Володя, а имя - это как бы лейбл, как бы этикетка, которая клеится поверх этих данных. То есть это не само, не сами данные, это обозначение этих данных, чтобы мы могли понять, что это вообще такое. То есть условно, если бы не было ключей, было бы только, например, Володя, чай N8N, не было бы понятно, о чём идёт речь. А если мы к каждому из этих значений добавляем ключ, то есть типа имя, Володя, любимый напиток, чай, специализируется N8N, теперь становится понятно обозначение этих данных, потому что мы на них клеим этикетку. А так бы это понятно не было, поэтому существуют ключи, именно для этого они и нужны. Прикольное, кстати, изображение. Это, по-моему, я с помощью частота GPT загенерировал ещё того старого, какой там GPT Image 1, который ещё был, по-моему. Типы данных, которые

### Типы данных в JSON [1:53:10]

поддерживает Jon. И они же используются в N8N. Каждый обозначается специальным значком в N8N. Какие это типы данных? Это string строка, это number число, это логический тип данных, то есть правило, это object объект и это array массив. String, number, bullan, object k value, n array. Как они выглядят в jon string строка - это зачастую какие-то, а, буквенные значения, когда мы что-то слово какое-то записываем. Number - это число. Оно пишется без кавычек. Пустота - это нул. То есть, когда у вас пустые данные, это отдельный тип данных - это нл. Булн - это правило, либо true, либо false. Object - это объект. То есть внутри объекта могут содержаться строки, могут содержаться числа и могут содержаться пустоты. И були он тоже может содержаться. И array. Array - это массив. Внутри массива тоже может содержаться строки и так далее. А как выделяются эти типы данных? То есть строка выделяется кавычками, число ничем не выделяется, просто число пишется. Нул тоже ничем не выделяется, булин там либо true, либо false. И объект выделяется вот такими вот кривыми скобочками, а массив выделяется квадратными скобочками. А

### Синтаксис JSON [1:54:27]

синтаксиis jon. Правило написания JON. Как правильно его писать? Если не соблюдать синтаксис, то ничего не сработает просто. Это, кстати, правда. Ну да, просто он не будет работать. Во-первых, двойные кавычки. У ke vales, у ключа и значения мы всегда прописываем двойные кавычки. Кстати, в N8N jon можно показать вот здесь вот. То есть мы можем опять же зайти в edit fields узел и прописывать не через такую формочку, а прописывать jonпрямую. То есть мы можем вот здесь выбрать не manual maping, а jon. Вот видите, сразу нам показывается формат Jon. Можем это убрать и оставить только одну строку. Вот видите, my field 1 value. То есть вот это вот и происходит под капотом вот этого. То есть мы тоже здесь можем прописать my field, можем прописать value. По факту, видите, такой же результат. Ключ всегда выделяется кавычками. Значение не всегда. Значение выделяется кавычками, если это строка. Если мы пишем вот так вот, всё работает. Если мы пишем что-нибудь такое уже или вообще без кавычек, то оно просто не сработает. Вот смотрите, я пропишу, уберу, например, кавычки. Смотрите, я, кстати, этого не ожидал. Я здесь убираю кавычки, но JSON всё равно срабатывает. Почему так происходит? Потому что в N8N есть встроенная коррекция Джейсона, то есть встроенное исправления. Ну, они рассчитывают на то, что пользователи будут совершать некие ошибки, когда будут писать JSON, и поэтому они это исправляют. Но вообще это невалидно JSON, то есть он не должен исполняться. Важно знать то, что это N8 CN исправляет это под капотом, потому что по факту вот если мы возьмём Jon, здесь будут кавычки отображаться. Он просто их добавляет, он и делает коррекцию. Ну давайте добавим какой-нибудь странный символ. Вот, например, такой. И видите, он сразу говорит, что ошибка. Пробуем исполнить. Он выдаёт ошибку, говорит: "Нет, не получается". Два иточи. А всегда нужно писать двоеточие между и value. То есть вообще всегда, если мы откроем наш workflow, который мы только что скачали. А, точно, я испугался, у меня будильник зазвонил. Жесть. Ну ладно. А двоеточие везде, везде в Джейсоне используется двоеточие. Это очень важная тема. Вы пишете ключ, двоеточее значение. Везде, абсолютно везде используется двоеточие. Вот демонстрация этого вво пишем двоеточие. Если мы убираем двоеточие, он выдаёт ошибку. Он не понимает. Без кавычек он ещё понимает, хотя это неправильно. Строки. Стринг всегда выделяется двойными кавычками. Что такое строки? Ну вот, например, да, строка My Workflow выделяется двойными кавычками. Это тоже выделяется двойными кавычками. А здесь, то есть по идее вот так вот делать нельзя, потому что это строка, то есть буквы. Если есть какие-то буквы в значении, то есть ke value keва, ну ke - это ключ, value - это значение. Может это не понял. Строки всегда выделяются кавычками. Здесь оно сработало без кавычек, потому что N8N автоматически фиксит, но строки всегда выделяются кавычками. Дальше бульн. Булн - это либо true, либо false. И оно всегда пишется без кавычек. Здесь пропишем сейчас, ну, давайте останется my field, и мы здесь пропишем значение true. Вот что получается. Видите, оно уже другим цветом подсвечивается, потому что это другой тип данных. И также бун есть значение false, то есть там два значения, либо true, либо false. Если мы сделаем false h, то он говорит уже, что нет, это неправильно. Видите, выдаёт ошибку. Если мы возьмём значение, например, true, выделим его кавычками, что тогда произойдёт? На самом деле ничего не сломается. Просто это будет уже не булен, то есть это будет не правило, это будет уже строка. Это может показаться, конечно, шизовым. то, что казалось бы, убираем кавычки, слово true, при этом это другой тип данных. То есть по сути то же самое, но это уже другой тип данных. Если мы добавляем кавычки, то это становится строкой. Ну вот смотрите, например, в схеме, в отображении у нас, если есть кавычки, отображается как строка. Но если мы кавычки убираем, то у нас уже, видите, отображается как такое, ну, квадратик с галочкой. То есть это уже булян, это тип данных другой. То же самое касается и чисел. То есть числа пишутся без кавычек. Если написать с кавычками, то это уже будет не numberр, аст. Ну вот такая странная логика, да, действительно, только что про это сказал. То есть мы здесь можем написать, например, пять. И видите, отображается уже решёточка такая. Решёточка всегда означает числа. Если мы добавим кавычки, то это уже строка. То есть по факту остаётся та же пятёрка, но в другом типе данных. То есть пятёрку можно записать как строку и число. И это будут разные типы данных. Это реально странно. Я тоже не понимал сначала, зачем это надо, но тем не менее, если бы это не было необходимым, Jсоon бы так бы не спроектировали. То есть его бы просто по-другому сделали. Всё-таки Jсон-то люди создавали. Дальше у нас идёт запятая. Между элементами, но после последнего элемента запятая не нужна. То есть, если у нас идёт несколько элементов, то мы должны ставить между ними запятую. Например, да, вот имя Володя, возраст 23. Давайте это и сделаем. Вот здесь пропишем имя. Здесь напишем Володя. Потом, если мы хотим добавить ещё один элемент, видите, у нас сейчас один элемент, а мы хотим добавить ещё один. Ставим enter и прописываем здесь опять кавычка какой-нибудь ключ, например, возраст, двоеточие. И здесь пишем 23, потому что это число. То есть здесь у нас будет строка, а здесь будет тип данных число. Поэтому мы кавычками не выделяем. Видите, выдаёт ошибку. То есть он сейчас не сработает. Почему не сработает? Потому что если два элемента идут друг за другом, то нужно их разделять запятой. В конце этой строки мы ставим запятую, но запятую ставить не надо. То есть в конце последней строки запятая не ставится. Сейчас по факту он опять же это исправил, но на самом деле в конце последней строки запятая не ставится. То есть вот так оно выглядит в Jсоне. По итогу мы откроем опять же Jon Workflow, который мы скачали, и видим то, что тут везде оставится запятая. То есть вот идёт элемент запятая, идёт следующий элемент запятая, запятая, запятая. Но в конце последнего элемента запята не ставится. Пока что мы это разобрали на примере строк и чисел. Это также может быть на примере бульона. То есть, если мы напишем здесь, например, true или давайте false, потому что true уже было. Вот здесь тоже нужна запятая. То есть уберём запятую, работать не будет. А вопрос ещё, что такое элементы? Ну вот, по сути, вот это вот является элементом. Это тоже является элементом. Можем добавить ещё одну строку, она тоже будет являться элементом. Вот элемент двоеточия. Двоеточие ещё лучше писать всегда слитно к слову, а значение после пробела. То есть стати пробелы, дальше что-то прописывайте. По-моему, это ни на что не влияет. Я на самом деле не в курсе, потому что я всегда прописываю именно так. И в любом случае оно по итогу отображается тоже так. То есть здесь двоеточя слитно, потом идёт пробел. Поэтому, ну, просто проще так записывать. Сразу запомнить, что лучше записывать так. То есть это элемент, это элемент и это элемент. Но также элементы может быть массив либо объект. И после него тогда тоже нужно ставить запятые. Сейчас об этом расскажу поподробнее. Теперь ещё нул. Нул - это пустота. Он пишется без кавычек, обозначает пустоту. Бывают ещё пустые строки, но это не то же самое, что нул. Сейчас покажу, о чём идёт речь. Вот смотрите, мы здесь можем прописать вот так вот нул. Вот видите, он тоже отображается отдельным значком выносим. То есть квадратик с минусом таким. Ну используется в джейсоне для обозначения пустоты, то, что там ничего нет. Допустим, мы по API что-то вызываем, обращаемся по API к базе данных, она нам возвращает элементы, и какой-то из элементов он пустой, и она тогда напишет то, что он равен нул, то есть он вот это вот в ответе отправит. Нул. Есть ещё пустая строка. А пустая строка - это одна кавычка и вторая кавычка. Всё. Вот видите, пустая строка. То есть тут ничего нет. То есть это ключ, но с пустым значением. с пустой строкой. Если мы даваем одну букву, то уже будет какая-то буква. То есть нул и пустая строка - это не одно и то же. Понятно то, что это всё может показаться сейчас ирациональным, как я уже сказал, каким-то странным и шазовым, но так устроен Джейсон. Здесь немножко другая логика работает. Если бы это было бесполезно, то Джейсон просто не был бы таким. Но он таковым является, значит, у этого есть прикладной смысл. Остаются два типа данных, но они уже более сложные. На самом деле не такие уж они сложные. сложны, потому что они включают в себя и другие типы данных. Объект. Объект - это то, что внутри вот таких вот скобок, именно вот таких вот, потому что есть вот ещё квадратные скобки. Это уже будет массив. Вот, например, объект, имя, Володя, возраст 23 и так далее. И прикол в том, то что в Джейсоне всё записывается в формате объекта. То есть открываем наш JSON нашего workflow, который мы скачали. Где у нас тут объекты? Вот, например, объект. Но это пустой объект, тут ничего нет, потому что скобочка открылась, скобочка закрылась. Но при этом, а, весь наш JSON тоже выделяется как объект. То есть вот в самом начале скобочка, в самом конце скобочка. Как тут и написано то, что прикол в том то что в JON всё записывается в формате объекта. Где ещё тут есть объекты? Вот, например, объект. Начинается объект, а, и вот он заканчивается, по идее. И вот как видно, когда мы вот это всё записывали, у нас тоже, то есть, мы не записывали это без кривых скобочек, вот так, потому что вот так оно бы не сработало. То есть мы всегда это записывали с кривыми скобочками. Любой JON всегда заключён внутрь объекта, то есть всегда внутри кривых скобочек он находится. Но при этом объект а может быть ещё внутри другого объекта, ещё и внутри другого объекта. Вот сейчас покажу тоже, что тут написано. Мы написали в N8N, то есть что такое объект. Как видите, у нас любой JON выделяется как объект. То есть вот у нас главный объект. И внутри этого объекта находится вот ещё один объект. Объект - это такая штука, которая может содержать в себе как бы другие типы данных. То есть вот мы написали объект, а, написали кривую скобочку, написали ещё одну кривую скобочку в конце и внутри объекта прописали имя Володя, возраст 23. И вот у нас получается в формате схемы он отображается вот так. Можно его скрыть, можно открыть, получается вот имя Володя, возраст 23. То есть это некое значение, внутри которого может быть строка, число, правило, объект может быть тоже внутри объекта и массив объекта. Забыл, кстати, сказать про перенос строки. Вот тут, где мы разбирали, то что запятая нужна между элементами. По факту Jon можно записывать всё весь в одну строку, очень длинную. Вот так вот. Всё в очень длинную строку можно записать, но так не делает никто, потому что это нечитаемо и очень неудобно. Ну, можно так записывать. машина- это всё равно компьютер будет это всё равно понимать. Но чтобы нам легче было, это для нас это было визуально легче, оно переносится. То есть каждый раз, когда ставится запятая, переносится строка. Вот, например, запятая перенеслась строка. Здесь тоже перенеслась строка. Вот запятая перенеслась строка. Можно было бы это и вот так вот записывать, то есть прямо вот так вот и так далее, но это было бы очень неудобно и нечитаемо. Поэтому все просто переносят строки. В этом случае я строки не переносил, я ставил как есть. Но можно их тоже перенести. То есть можно вот после запятой сделать вот так. Ну и вот и исполнить это execute step. Оно тоже сработало. Перенос строки делают ещё не только после запятой, но и когда есть вот такие вот символы. То есть когда появляется кривая скобка, тоже можно перенести строку. И здесь тоже переносим строку, потому что тут тоже кривая скобка. Вот так. Оно выглядит просто реально более читаемо. То есть гораздо проще на это смотреть. То есть всё должно быть обрамлено этими кривыми скомбками. То есть вот так, да? То есть не просто вот так вот объект записывается. На самом деле он записывается вот так вот. А, ну и вот я про это пишу, кстати. Или вот так. Это то же самое, просто выглядит приятнее. Так обычно записывается везде Jon. Ну да, я только что про это говорил. То есть он не пишется в единую строку, он пишется всегда с переносами строк. Переносы строк идут там, где есть запятая, либо там, где есть а кривая скобка, либо квадратная скобка. То есть по факту тут объект внутри объекта. Да, это действительно так. Объект внутри объекта. Ну и всё, что я показывал выше, было без этих кривых скобок. Хотя это неправильно, чтобы было проще понять, о чём идёт речь, да? То есть вот здесь вот было тоже без кривых скобок, вот здесь тоже без кривых скобок и вот здесь без кривых скобок, но ведь на самом деле они везде нужны. И каждый раз, когда это показывал вам внутри N8N, кривые скобки оставлялись. Теперь речь идёт про массив. Array массив - это то, что внутри вот таких вот квадратных скобок. Это уже немножечко по-другому. Давайте вот возьмём какой-нибудь из них. Ставим вот как выглядит массив. Массив - это уже не объект. Он выглядит немножечко по-другому, но это тоже такой тип данных, внутри которого могут находиться все остальные типы данных. То есть внутри массива может находиться строка, может находиться объект, может находиться число, и бульон тоже может находиться правило. Вот. То есть мы его вводим и активируем. Но, видите, он уже работает немножко по-другому. То есть здесь обозначается он вот так вот массив вот таким вот значком в N8N. Но я не упомянул, кстати, забыл это прописать, то, что массивы не содержат ключи. Везде JSON у нас содержал ключ значения пару. А ключ значения ключ значения, но массив внутри себя не содержит ключей. То есть, если мы внутри массива пишем строку, число, либо правило були, либо нул, они не содержат ключей. То есть можно просто их писать как значение. Квадратные скобки и пишем значения. Можем добавить ещё вот, например, число какое-нибудь. Вот. Потому что ключ здесь добавляется автоматически. То есть у нас ключ добавляется вот это сам массив. Ключ пишется как array, а здесь пишутся уже array 0, rray1, ray2. То есть ключи добавляются сами в массиве всегда. При этом внутри массива мы можем всё равно прописывать ещё один массив и всё равно можем прописывать ещё объект какой-нибудь внутри массива тоже. Ну то есть это как матрёшку получается. Внутри одного массива можно прописать другой массив, внутри того массива ещё один массив и так далее. И то же самое касается объектов. Внутри объекта можно прописать другой объект. Внутри того объекта ещё один объект. И внутри каждого объекта можно прописать массив. И внутри каждого массива можно прописать объект. Вот здесь, например, массивы. Видите, здесь а вот идёт массив опять же с переносом строк. То есть по факту, что было проще воспринимать конкретно в этом случае, можно сделать вот так. То есть ноль и ноль и закрывающая скобка. То есть вот у нас массив указывается только значение, ключи не указываются. Или вот тоже Но при этом у нас вот ещё идёт массив, например. Вот давайте эту строку упрощу для понимания. То есть вот я упростил, да, для понимания. Хотя, по идее оно записывается в таком формате, в котором оно есть, как раз, чтобы нам было проще читать. Но конкретно в этом случае вот, да, проще сделать вот так. То есть у нас идёт массив, внутри которого ещё идёт ещё один массив. То есть, видите, вот жёлтые скобочки - это один массив. Потом идут розовые скобочки, тоже квадратные - это другой массив. Внутри одного массива ещё один массив. И внутри этого массива розового идёт уже объект. А внутри объекта уже прописываются пары ключ значения. То есть внутри массивов не Внутри объектов прописывается это. Ну вот как-то так. Можем сейчас обратно откатить. На самом деле не обязательно вот сразу сейчас всё осознать, как именно оно работает. Здесь очень многое реально познаётся эмпирическим путём. То есть вы просто тыкаете, просто работаете в N8N и больше всё больше и больше понимаете, как устроен Jon, как устроен этот формат передачи данных. будете тыкать, тыкать, а потом посмотрите это видео ещё раз, этот момент и такие: "А, ну так теперь вообще абсолютно всё понятно". Давайте я покажу на примере вот ещё N8N, то что у нас есть массив и внутри этого массива мы можем записать какой-нибудь, например, объект. Ставим пробел, ставим кривую скобочку вот такую вот. Давайте на весь экран откроем, нажмём вот сюда вот внутри этой кривой скобочки пропишем какое-нибуд значение, типа там строка. двоеточя, Володя и закрывающая скобка. И закрываем, естественно, квадратной скобкой. Вот. То есть по факту вот у нас идёт массив. Вот у нас массив. Внутри этого массива три элемента. То есть первый элемент - это строка, второй элемент - это тоже строка, а третий элемент - это вот видите объект. То есть внутри объекта идёт уже и ключ, и значение. А здесь было только значение и здесь было только значение. То есть здесь ключи не надо указывать. По факту объекту тоже ключ прописывать не надо. Никакому из типов данных. внутри массива не нужно прописывать ключ. То есть, видите, у нас вот есть просто готовый объект. То есть мы не прописываем здесь ему дополнительное значение, типа ключ. То есть мы вот так вот не делаем, потому что внутри массивов так делать не надо. Мы прописываем по факту вот без этого, без значения ключ мы прописываем объект напрямую, просто цельный объект. А вот внутри объекта мы уже можем указывать дополнительно какие-то там строки или числа, но тогда они уже записываются в формате ключ значения. Нажимаем на кнопочку. И сейчас оно сработало. Вот как это выглядит. То есть вот у нас идёт массив. Вот он. Внутри массива у нас три элемента. Первая - это строка, вторая - это ещё одна строка и третье - это объект. И внутри объекта у нас уже идёт ещё одна строка. Вот. И видите, они отображаются по-разному. То есть вот массив отображается вот так, таким значком. Строка буквой Т, объект вот таким вот квадратиком. И ещё одна строка тоже буквой Т. Можем добавить тут ещё что-нибудь, например. Давайте, кстати, перенесём, да, что было, потому что вот так Jсонon, я говорю, он нигде не записывается, иначе это будет очень длинная огромная строка, да, поэтому он всегда переносится. То есть переносится там, где идёт скобка, запятая, тоже, где идёт запятая. И тогда здесь тоже переносится, потому что здесь скобка идёт вот, вот и вот. То есть обычно он как-то вот так записывается, да? Он так и отображается по итогу вот здесь вот вкладки Jon. Вот у массива же есть же тоже ключ, да? В данном случае мы его назвали array, но здесь мы можем написать что-нибудь типа элементы какие-нибудь. Ну да, элементы. То есть у массива тоже есть ключ, этикетка. Вот она тут отображается. И теперь она отображается и везде. И поэтому, где мы прописываем массиву ключ, мы потом после этого прописываем двоеточие и после этого мы прописываем скобку. И в этом случае мы скобку не переносим. То есть здесь оно здесь скобка остаётся в этой строке, в строке не типе данных, а именно в строке вот в этой полоске. Вот так мы вот так не делаем. Теперь новый прикол. Всё должно быть обрамлено не только кривыми скобками, да, как мы только что делали, а ещё и квадратными поверх кривых скобок. Вот так. Вво так и работает. То есть, ну, когда мы прописываем прямо внутри здесь, вот возле Edit Fiels, прописываем здесь, а, нам не нужно писать квадратные скобки, на самом деле. То есть здесь можно начинать всё с кривых скобок, но по факту, как вы могли заметить, в N8N, а оно везде сами добавляются квадратные скобки вот поверху. То есть вот у нас идут кривые скобки, вот как у нас здесь и записано. А квадратные скобки везде сами добавляются, потому что в N8N, внутри N8N всё передаётся в массиве объектов. То есть массив объектов - это получается вот у нас сверху массив. Ну, как бы вот у нас всё внутри массива и внутри массива идёт объект, потом ещё какой-то объект, ещё какой-то объект. То есть, ну, как-то так. Это в NMN такая особенность, то, что всё записывается внутри вот именно квадратных скобок, внутри массива. Но по факту а вот чистый JON, он записывается всегда а внутри кривых скобок. Вот. Но в NVN они между узлами всегда ставятся автоматически, потому что так работает в Nem. Всё. Вот такое объяснение. Здесь данных нету внутри, но вот отображаются квадратные скобки и кривые скобки. Хотя здесь как бы есть айтем, но он пустой. А внутри массива объекта могут быть кто угодно. Строка буля number, объект, массив, nл. То есть об этом я уже говорил, да. Вот я попросил клод написать какой-то прямо кучу разных данных. Вот, например, да. То есть по факту, как обычно и выглядят данные внутри cn. Допустим, вы там по что-то подтягиваете. Ну, API - это как бы способ передачи данных в интернете. как бы вы взаимодействуете с приложениями, они вам передают данные какие-то, да, супербольшое количество данных, да, как они обычно и приходят по IPI. По факту, может быть, вы думаете, что это выглядит сложно. Вот так они выглядят, да, по итогу вот в формате JSON, да, например. На самом деле, ничего тут сложного. Если вы начнёте вникать, вы начнёте понимать, что всё тут просто. Главное сложность Jсона, наверное, это в том, то, что здесь формат матрёшки. То есть всё вложено во всём. То есть вот как бы главный у нас объект. Внутри главного объекта у нас вот идёт массив. А внутри этого массива у нас один элемент строка. Второй элемент - строка. И третий элемент - это а ещё один объект. А внутри этого объекта находится ещё одна строка. Потом идёт ещё одна строка, ещё одно число. Число, а булевое значение. True. Ну, ну, булевое значение имеется в виду правила true false, то есть булин. А массив ещё один идёт, ещё один объект идёт внутри этого объекта. Ещё тут строка, число и email тоже как строка записывается всегда, потому что я нету формата данных email и так далее. То есть здесь просто всё вложено во всём. То есть вот это главная сложность Jсона, то, что так оно работает. Но это очень удобно, потому что так можно записывать что угодно. Но это очень популярный формат передачи данных. То есть он не только в NN поддерживается, он очень много где поддерживается, и он на самом деле очень понятный. А, но они, кстати, сворачиваются. Каждый массив и каждый объект в NCMN можно свернуть. Если вы что-то не поняли, пересматривайте это видео просто много раз, и всё. И будет

### Форматирование JSON [2:15:55]

понятнее. Форматирование Jon. Про это я, кстати, тоже рассказал. Ну вот закрепляем. Тоже, кстати, отличное изображение от наны бананы. А в одну строчку есть форматирование. Давайте я, кстати, покажу, почему так никто не делает. Потому что мы вот это вот всё можем написать в одну строчку. Давайте так и сделаем. Да. Вот я попросил код это сделать. А теперь напиши этот JON в одну строчку. Так, оно выглядит проще, на самом деле, чем если бы это было в одну строчку. Так он читаемый. Понятно то, что сразу вам будет непонятно, как только вы узнали вообще, что такое JС, но по мере работе с Джейсоном вы начнёте ориентироваться в этом гораздо лучше. А если это записано в одну строчку, то есть вот так вот, оно, конечно, тоже будет работать, но согласитесь, так вообще ни хрена непонятно. То есть что, кто тут, где тут массивы, где тут объекты. Здесь просто надо всматриваться и читать, но при этом оно всё равно это рабочий Jжейсон. А если сделать вот так вот, ну, что-нибудь такое к вам придёт, как вы тут разберётесь в Jсонеone? А никак. Именно поэтому никто в одну строку его не записывает. Ну, по факту, да, оно записано в одну строку, просто из-за того, что у меня экрана не хватает, он переносится. Вот, кстати, я правила переноса в строк, оказывается, прописал. Уже забыл про это, потому что я ролик долго готовил. Я это давно прописывал. Правила переноса строк. После открывающейся скобки фигурной или квадратный переносишь строку. После каждой запятой переносим строку, да? Делаешь отступы, два или четыре пробела для каждого уровня вложенности. Вот это я, кстати, не упоминал. Здесь, да, нужно делать отступы. То есть вот это вот у нас идёт первый уровень вложенности. Давайте я их исполню. Вот. Вот он первый уровень вложенности. Он вот так выглядит, по сути. Вот. Но когда у нас в первом уровне вложенности появляется дополнительный массив, тут уже появляется другой уровень вложенности. Давайте лучше объект покажу пользователю. Вот видите, уровень вложности меняется. То есть был вот такой вот, а сейчас он уже вот такой. То есть если мы сделаем вот так, то он выдаст ошибку. Поэтому нужно делать вот так. То есть нужно дополнительный уровень вложенности добавлять. Я уже говорил это, но ещё раз акцентирую на этом внимание. То, что а внутри массивов и объектов у нас а ставятся запятые между элементами. То есть вот запятая, вот у нас идёт массив. Вот первая скобочка, вот закрывающая скобочка. Ну объект это точнее, да. Здесь ставится запятая, потому что идёт дальше ещё один элемент. дальше идёт ещё один элемент. Но в последнем элементе массива или в последнем элементе объекта запятая не ставится. Она ставится только между элементами. Вот тут, например, тоже запята не ставится, хотя это вот конец массива. Ну как раз, да, конец массива, но запятая тут не ставится уже. Можем добавить вот запятую и добавить здесь, в этом уровне вложенности ещё какой-нибудь объект. То есть сделаем вот так вот. объект, поставим двоеточие. То есть, когда мы прописываем, пишем скобочку, она остаётся на этом же уровне, но дальше мы уже переносим на следующий уровень. И следующий уровень вложенности - это не вот этот вот и не вот этот вот, это дополнительный пробел. То есть это как раз вот отсюда дополнительный пробел. По дефолту он сам выставляется. То есть по дефолту я отсюда переношу строку и он переносит меня в нужный уровень вложенности. И тут мы можем прописать новые значение. Например, ключ. Вот видите, если кавычками не выделяю, он не подсвечивается. Выделяю, сразу подсвечивается. Синеньким ключ. Здесь напишем значение. Поставим запятую. Добавим ещё один какой-нибудь элемент. Давайте внутри ещё один объект какой-нибудь добавим. Объект два. Вот так сделаем. Поставим двоеточие. Добавим ещё одну кривую скобку, поставим Enter. И вот тут ещё напишем какие-то значения, типа ключ. Ещё значение ещё запятая число двоеточие два. А, ну вот тут я, кстати, забыл поставить двоеточие. Всё, например, то есть мы сейчас внутри одного объекта сделали ещё один объект и внутри того объекта мы сделали ещё один объект. То есть, ну, понимаете, как это работает. Я надеюсь, понимаете. Теперь это исполним. А что-то я неправильно сделал. А, я забыл закрыть этот объект. То есть, видите, вот, вот у нас объект начинается вот тут заканчивается. Я внутри него добавил вот ещё один объект. Но я его не закрыл. И нужно его закрыть. Сейчас нужно поставить скобочку. Ставим скобочку, приносим строку. Вот. Да, видите, она автоматически исправилась. Вот оно подсветилось. Видите? Поставили скобочку и подсветилась эта скобочка сразу же, потому что они взаимосвязаны. Вот теперь должно сработать. Нет, не сработало. Вот матрёшка. Это реально самое сложное. Вот этот принцип матрёшки в этом Джейсоне. У нас вот этот объект открылся. Есть квадратная скобка, но нет закрывающей квадратной скобки. Ну, кривой скобки. То есть вот тут есть кривая скобка, она открывается, вот она закрывается, но вот здесь вот закрывающей нет. И нужно её добавить вот на этом уровне. То есть мы делаем перенос сейчас и добавляем вот тут ещё одну скобку. Всё, видите, она подсвечивается. Вот скобка. И вот скобка подсветилась. Готово. Теперь должно сработать. Да, теперь сработало. Объект пользователь кубиком подсвечивается объект. Внутри него какие-то значения, внутри него ещё один объект, внутри которого ещё один объект. Ну и так далее. Если вам нужно написать какой-то JSON, делайте это с помощью клода. С помощью клода можно писать JON, там говорить ему: "Мне нужен JSON для N8N для узлафi fields". Он вам напишет, да, чтобы в этом проще разобраться и проще ориентироваться. Но всё равно понимание, как это работает, вам необходимо. Это как вайпкодинг, да? Типа вайпкодинг - это круто, но круто это когда вы понимаете, как работает код. А чтобы понимать, как работает код, нужно уметь его писать. То есть в этом-то и прикол. То есть, если вы не знаете, как работает код, вебкодинг для вас будет достаточно сложным. Это же, кстати, касается и шаблонов внутри ново. То есть, как бы есть способы генерировать с помощью клода. Есть в облачной версии, там я не тестил, кстати, генераторы шаблонов. Когда вы пишете пром, то он вам сразу готовый шаблон делает. Это, конечно, прикольно, да, это можно использовать, но всё равно понимать, как работает NM, вам надо, чтобы генерировать шаблоны, потому что вам надо будет потом что-нибудь исправить, а вы не сможете ничего не исправить, а неронка вам нормально это не исправит. То есть она пока что ещё не настолько способная, чтобы всё это досконально понимать и хорошо исправлять. Она всё равно галлюционирует, выдаёт какие-то ошибки. Поэтому понимать, как работает N8N, надо. Ну и, думаю, впоследствии тоже надо будет понимать. Хотя я не знаю, куда там эти нейронки улетят. Может, они вообще суперумными станут. И про нейронки, кстати, про суперрумные нейронки в этом ролике в конце, правда, но мы будем про это говорить. Про IGI и ICI, Artificial General Intelligence и Artificial Super Intelligence. Прикольно, интересная тема. Что я не упомянул, это то, что вы можете сочетать внутри вашего Джейсона и переносы строк, и не переносы строк. То есть, например, вот у нас идёт по факту объект. Вот он идёт. Вот у нас один, даже больше он, по-моему, да? Вот до сюда он идёт. То есть она вот здесь открывается. И на этом же уровне, где у нас находится ключ этого массива, она на этом же уровне закрывается. Но тут мы переносим строки. Мы написали тут тдд, запятая, перенесли строку, но не обязательно везде переносить строки. Например, у нас есть объект вот снизу, да? То есть тоже вот идёт объект, но он идёт в одну строку. Мы его можем записать, конечно же, и вот так. То есть нажать здесь пробел и нажать вот здесь пробел и сделать пробел вот тут. перенос строки, точнее, там, и там. Кстати, вот здесь вот в схеме Jon в N8N, когда мы что-то исполняем, этот формат отображения Джейсона, он всегда переносит строки. То есть он везде, где можно перенести строку, он всегда её переносит. Нам не обязательно везде писать переносы строк, везде их делать. То есть, например, вот здесь мы только что добавили переносы строк, но мы можем их и не делать, можем и убрать, то есть как хотите. Переносы строк - это чисто визуальное облегчение. То есть это никак не корректирует Jon. Компьютер этот Jon воспринимает так же, как он его и до этого воспринимал. для него ничего не меняется. Ну, тут простое правило: после каждой запятой, каждой открывающей скобки приносишь строку и добавляешь отступ. Да, про это я сказал. Я, конечно, уже показывал одну интеграцию, но так как ролик большой, сделал ещё одну небольшую. То есть вот они узлы дня. Хотите разобраться в каком-то узле, в узле Webook, в узле МР, в узле ift и так далее, то есть разобраться в нативных узлах N8N, которые используются в 99% автоматизации, эти материалы вам помогут. если не помогут, если вы их вот купите их откроете и такие: "Ну что-то тут какая-то фигня. Ну не для меня эти материалы, не принесли они мне никакой пользы. Можете мне написать и сказать: "Мне это не принесло пользы. Верни деньги". Я скажу: "Ладно, возвращаю деньги". Слушайте, здесь, оказывается, идёт объяснение всего того, что я сейчас рассказывал. Зачем я это записывал, я не знаю. Или зачем я это рассказывал, если я это записал впоследствии, тоже не знаю. А вот так бы это выглядело в одну строку. Разверни в одну строчку, а то сейчас оно сжато. Да. То есть так я это и задумал, чтобы сделать вот так. Блин, только оно на белом фоне не видно. Какой в этом смысл? Моя задумка не удалась. Ладно, пофиг. Гораздо более непонятно. Правда, ничего непонятно. Кто в кого вложен, кто здесь кто и так далее. Гений. Я это только что сказал.

### Что такое item? [2:25:05]

А теперь немного про подноготную N8N. В Nos существуют айтемы. Показываю, что такое айтемы. Это сейчас был Jon. Показывал я вам Jon, но Jon рамках одного айтема. Видите, написано один айтем, один айтем. Если бы здесь, в принципе, был только один айтем, вряд ли бы они это писали в интерфейсе. Раз они это пишут, значит, подразумевается, что айтемов может быть несколько. Это всё в рамках одного айтема, но айтемов может быть несколько. Мы можем, например, в узле Edit Fields нажать Settings. Кстати, эти настройки каждого узла у меня тоже в моих закрытых материалах разбираются. Но в любом случае есть такая кнопочка duplicate item. То есть мы можем сделать сейчас дубликацию айтемов. Можем написать один. Если мы напишем один, то у нас будет один дубликат. Ну и сложится с тем, что было в оригинале. Получится два айтема. Нажмём Execute Workflow. Вот видите, получилось два айтема. Сейчас по факту уже два айтема. Только эти два айтема, они идентичные, они одинаковые. Сейчас я их покажу. Вот, например, в формате table, да, они отображаются. Вот это один айтем идёт в строку, а вот это уже второй айтем, но они просто одинаковые. В Jсоне это выглядит вот так вот. Идёт один айтем, вот, вот, вот до сюда один айтем, видите? элемент биохакинг. И вот отсюда уже начинается второй тоже элемент NV8 биохакингing. В NN всё передаётся в массиве объектов, как я говорил, да? То есть когда у нас чистый Gon показывается, у него он обрамляется всегда вот такими вот кривыми скобками. И здесь мы тоже прописываем тоже кривые скобки. Но в N8N он всегда обрамляется вот такими вот квадратными скобками. Давайте я, наверное, его сокращу, чтобы было понятнее. Вот так сделаем. Вот видите, уберём пока что дупликацию айтемов. Вот. То есть у нас, по идее, можно было бы оставить вот так. Было бы так же, как мы здесь прописали, или и в любом другом Jсоone, где он обрамляется вот такими вот кривыми скобками. Но в NN у нас всегда всё а обрамляется ещё квадратными скобками дополнительно, чтобы был массив. То есть в NVM всё передаётся между узлами внутри массива объектов. То есть вот он массив, массив объектов, потому что вот идёт массив, и внутри массива вот объект. Вот, кстати, пишут они вот тут зачем-то два айтема, чтобы нас запутать, потому что тут один айтем, тут два айтема. Зачем это надо? Ориентируйтесь только на то, что написано здесь, один айтем или вот здесь верху один айтем. Но если мы делаем дубликат этого айтема, то есть добавляем ещё один такой же идентичный, как это выглядит в рисоне? А вот так это выглядит, то, что у нас уже эти два айтема идентичных, то есть эти два объекта отдельных, вот, вот один объект, вот он, и вот один такой же объект тоже вот он. Они уже обрамляются, а, квадратными скобками поверх этого, то есть обрамляются массивом. И в таком случае вот это уже считается как отдельный айтем. И вот это тоже То есть давайте так, как бы, чтобы запомнить, в N8N всегда сначала идёт квадратная скобка. Квадратные скобки обрамляют всё. И потом идут кривые скобки, которые тоже всё обрамляют. Если только две кривые скобки, которые всё обрамляют, то есть если только вот так вот всё выглядит, то тогда у нас айтем один. А если добавляются ещё одни кривые скобки, которые всё обрамляют, вот раз и вот два, то тогда айтемов два. Но если у нас внутри вот этого объекта уже идут какие-то дополнительные объекты и так далее, то это не влияет на количество айтемов. То есть айтем - это как бы вот это отдельный айтем и вот это тоже отдельный айтем внутри NM. Это так работает. Вообще, когда мы что-то пишем возле Edit Fields, мы работаем только с одним айтемом. То есть мы не можем работать сразу с несколькими айтемами. Мы не можем тут создать сразу несколько айтемов отсюда. Мы можем это сделать только вот благодаря дубликации, да. Но если мы хотим сделать разные айтемы, то тут уже надо будет использовать узелкод. Ну, естественно, сам я прописывать ничего не буду. Узломкод я всегда пользуюсь с помощью клода. Вот заходим в узел код в NVM, выбираем это всё, ставим то, что написал нам. Вот. И как видно, тут уже через узел код мы можем создавать вот три разных айтема у нас получается. Тут уже у них разные значения. То есть в этом айтеме написано а элементы inventaccking, строка Володя, а здесь написано элементы workflow автоматизация, строка Алексей. Здесь строка привет мир, здесь строка добрый день. То есть, видите, здесь уже разные значения внутри этих айтемов. До этого мы делали дубликаты. Вот я показывал в edit fields. Мы делали дубликаты. А вот через узел код мы уже можем создавать через код несколько сразу разных айтемов. Вот они отображаются, три айтема. Каждый айтем ввомен содержит следующие данные: JSON, binary, paired item. То есть каждый item ввомен выглядит на самом деле вот так вот. Например jon возраст 10. Это данные, которые передаются между узлами в формате JSON. То есть это то, что мы видим. То есть, ну вот, например, да, это то, что мы видим. Вот. Но на самом деле, а это не все данные, которые передаются между узлами, потому что передаются ещё, а binary бинарные файлы, бинарные данные - это файлы, то есть это картинки, файлы, видео и так далее. Сейчас покажу это тоже внутри. Давайте добавим какой-нибудь бинарный файл. Самый простой способ добавить бинарный файл - это сделать вот так. Это взять Triggeron Forum submission. Вот он. сделать какой-то тайтл, там, какое-то описание, добавить форму элемент и поставить здесь файл. Вот тут что-то написать. Всё. Теперь мы можем сделать следующее. Тем более мы можем нажать просто execute workflow. У нас высветится дополнительно окно с нашей формы N8N. И тут мы можем добавить какие-то файлы. Давайте сделаем файл какой-нибудь скриншот. Вот это заскриншотим. Сейчас он ко мне в загрузке сохранится. Теперь мы можем нажать выбор файлов и вот выбрать этот скриншот, который я только что сделал, и загрузить его. Всё. Вот так вот мы его добавили в NN. Сейчас закрепим его, наведём и нажмём на кнопочку P. Вот тут, кстати, отображается вот бинарные файлы вот так выглядят в N8N. Вот видите, если это какой-то именно файл, отображается вот так. Можно его посмотреть, можно его скачать и так далее. И бинарные файлы, они записываются в отдельную строку. То есть у нас есть по дефолту схема table и jon, но когда у нас есть бинарный файл, у нас добавляется вот binary. И тут у нас передаётся между узлом ещё бинарный файл. Вот об этом идёт речь. И передаётся ещё pared items. Здесь содержится информация о связи узлах между собой. Это тоже находится под капотом. Вот это находится под капотом binary и per item находится под капотом. Из банари мы видим только сам файл. Мы не видим Jon строку, которая по факту сопутствует этому файлу, хотя она тут есть, но она скрыта, да, чтобы нам проще было воспринимать. Вот это мы тоже не видим, но по факту в N8N между узлами передаётся ещё информация о их связях. То есть, видите, здесь содержится информация о связи узлах между собой, потому что узлы между собой как-то связаны, они как-то соединены, они как-то перекидывают данные. Это тоже передаётся между узлами эта информация, но мы её не видим. Как эти же данные по факту выглядят в NMA? То есть JON выглядит вот так. Бинарные файлы выглядят вот так. Я только что это показал. Если у нас четыре айтема, то это выглядит вот так. Про айтемы я только что вам рассказывал. Ну и вот, э, бинарных данных тоже может быть несколько. Ну, бинарные данные не обязательно должны быть в каждом айтеме. То есть бинарные данные могут быть в одном айтеме, может быть их, может их не быть в другом айтеме и так далее. В узле Edit Fields в формате JSON надо записывать без квадратных скобок, а внутри кривых скобок. Да, я про это говорил. то, что у нас по факту оно отображается, всё записывается в квадратных скобоках. Но когда мы выбираем здесь формат jon возле edit fields и что-то прописываем, мы здесь пишем кривые скобки. Поверх не нужно писать квадратные скобки, они потом сами добавятся. Но данные между узлами передаются, да, вот в квадратных скобках. Квадратные скобки и так по факту существуют, потому что на входе в любом случае будет айтем просто пустой. И уfield может работать только с одним айтемом, если мы хотим закинуть в него новые данные. Да, для обработки данных вот вN существует много узлов. И у меня как раз есть закрытый материал под названием узел дня. Да, ещё раз напомню, там есть разбор узлов, которые как раз нужны для обработки данных разными способами. Тоже напомню это. Покупайте закрытые материалы, чтобы прокачать ваше понимание и свой левел работы в NVN.

### Форматы отображения данных. Schema, Table, JSON [2:33:25]

Форматы отображения данных вво. Вот, наконец-то, переходим к ним. Показывай на том примере выше. Ну, я, наверное, на другом примере покажу. Table JSON схема. Основные форматы. Понятно, что есть ещё бинарный формат, но тут ничего сложного, просто вот можно показать, можно скачать. Схема, понятно, показывает данные. Это мой любимый формат, потому что он проще всего выглядит. Если айтемов несколько, но кис в этих айтемах одинаковые, то в режиме схема покажет только один айтем, самый первый. А, ну да, давайте я покажу на примере. Вот мы прописали в узле код JavaScript. Как видно, в Jсоне у нас вот давайте вот так сделаем. У нас вот несколько айтемов. Откроем самый первый. У нас кейс одинаковый. То есть, видите, кейс обозначаются просто белым цветом, чтобы проще было нам понимать. Разработчики на 8 устроили ключ элемента. Здесь ключ строка, здесь ключ строка. Это в одном айтеме. Во втором айтеме у нас тоже ключ элемента, ключ строка, ключ, строка. И в третьем айтеме у нас тоже ключ элемента, ключ строка и ключ строка. То есть структура этих айтемов одинаковая, просто разная именно значения, которые тут прописаны. Как видно, если айтемов несколько, но ключи в этих айтемах одинаковые, то в режиме схема покажет только один айтем, самый первый. То есть, смотрите, особенность режима схема в том, то, что он не показывает все айтемы. В том случае, если у нас структура айтема такая же, то есть у нас есть три айтема, как я показал, и у них структура одинаковая, он нам покажет только самый первый айтем. Он нам показывает только NCman Bхакинг, Володи, привет, мир. Вот видите, самый первый айтем. NC биохакинг Володя, привет. Мир. Он нам не показывает workflow, автоматизация, Алексей и так далее. При том, что одинаковая структура, абсолютно одинаковая, но значения разные, но он показывает нам только эти значения, но при этом он отображает список всех возможных полей из всех items. То есть айтемов может быть два. В первом пять полей, во втором шесть полей. Пять полей обоих совпадают, но первое поле не совпадает. Тогда схема покажет шесть полей. Первые пять полей из первого айтема и одно поле из второго. Ну, тут точно пример нужен. Это действительно правда. нужен пример. Давайте я покажу. Ну, например, как я сказал, э здесь структура данных одинаковая, но мы можем здесь добавить что-нибудь ещё. То есть мы зайдём сюда внутрь и добавим тут следующее. Добавим тут джейсончик. Давайте вот тут добавим запятую во втором айтеме. И добавим ещё один элемент. Назовём его океан его. Назовём океан двоеточия тихий. Смотрите, что теперь происходит. добавляется ещё одно значение. Теперь у нас структура среди айтемов не идентичная, потому что во втором айтеме у нас помимо всего остального, то есть всё остальное совпадает, но у нас добавилось ещё одно ещё один элемент. Это вот мы добавили элемент под названием океан тихий. Строку добавили, да, океан тихий. Так как у нас элемент элементы здесь и здесь совпадают, и в этом тоже айтеме совпадают, у нас элементы берутся из первого айтема. То есть вот они N8N биохайкинг. Потом строка тоже и тут, и тут, и тут совпадает. Поэтому, ну, ключ, да, вот этот совпадает и тут, и тут, да, ключ значения формат Jon, не забываем. Поэтому берётся из первого айтема значение и прописывается Володя. И остаётся ещё строка дополнительная, да, вот ещё одна строка. Здесь написано: "Привет, мир". Здесь есть такая же строка, написано: "Добрый день". И написана: "Как дела? " Так как они одинаковые, и тут ключ, строка, и тут ключ, строка. Так как они одинаковые, берётся значение с первого айтема, то есть берётся и прописывается в схеме привет мира. Вот мы дошли до этого. Но здесь во втором айтеме есть, мы только что добавили элемент океан со значением Тихий. И так как тихи есть только во втором айтеме, то есть его нету ни в первом айтеме, ни в третьем, а только во втором, он всё равно добавляется в схему, потому что схема отображает не просто весь первый айтем, она отображает все возможные данные, которые передаются сейчас между узлами. Надеюсь, понятно, о чём идёт речь. Но если этот элемент будет в первом айтеме, давайте мы его добавим в первом айтеме. Вот первый айтем, вот второй, а вот третий. Добавим его вот сюда вот в первый айтем. И океан напишем какой там северный. Я не знаю, я вообще не шарю в географии. Ну, пусть будет Северный океан. Теперь, так как у нас эти элементы повторяются и в первом, втором айтеме, у нас возьмётся значение из первого, потому что первому всегда даётся приоритет. Видите, океан северный. Что касается формата таблиц, который мы ещё вообще не разбирали, это формат, который показывает данные в виде таблицы, где строки - это записи, а столбцы доступны атрибуты этих записей. Это же самое в формате таблицы. Вот у нас строки - это записи, строки - это values, - это значение, а столбцы - это ключи ke, то есть вот они по факту ключ, например, элемента и вот он столбец, ключ элемента. Особенность таблицы в том, что он показывает нам сразу все айтемы. То есть схема, она не показывает нам сразу все айтемы, она показывает все элементы, которые есть в этих айтемах. А вот таблица уже показывает всё подряд. То есть вот это первый айтем, это второй, это третий, как видно вот здесь вот, да, например, вот у нас первый айтем, например, показывается элементы NCM, Bхакин строка Володя. N8, биохакинг, строка Володя, да, и привет мир северный. Вот, вот ещё тут можно посмотреть, да, вот элементы N8N Bхакинг Володя, привет мир северный. Всё это показывается в формате таблиц. То есть вот он весь наш айтем, он отображается. Вот второй наш айтем. То же самое, да? Workflow, автоматизация. Алексей, добрый день, тихий. Ну и как видно, здесь уровни вложенности тоже работают. Почему, например, а вот эта строка отображается как столбец, внутри ячейки этой таблицы? Тут написано Мария, а здесь написано как дела, потому что строка как дела находится на том же уровне, что и элементы. А вот строка Мария уже находится внутри элементов. Поэтому строка Мария, она как раз остаётся внутри элементов. Вот элементы подписаны, она остаётся вот здесь вот внутри. Вот. Надеюсь, понятно. Но обращаю ваше внимание, то, что в таблице отображаются все возможные элементы. То есть у нас есть элемент океан, он есть в двух айтемах, но его нету в одном айтеме. Тогда он отображается как отдельный столбец. То есть вот он отображается здесь, здесь. Но если его где-то нету, то он уже отображается как undefined. То есть он его не отображает, он пишет то, что его нету. Вот тоже прикол такой есть. Мы, например, можем убрать значение океан из первого айтема и оставить вот так вот. И тогда в таблице вот что произойдёт. У нас значение океана, оно всё равно останется, но оно будет отображаться только во втором нашем айтеме. Вот океан тихий. В остальных нету никакого значения океан, но оно всё равно отображается в таблице. Оно просто здесь будет отображаться как undefined. Но по факту здесь нет этого значения. Это просто особенности отображения table, формата table таблиц. Но если мы его тут уберём, то есть его сейчас нигде нет, океана нигде нет сейчас, то его и нигде и не будет. Всё, он убрался, в принципе. Если бы мне это в своё время кто-то рассказал, я бы, конечно, быстрее разобрался гораздо. Ну и остаётся JON. Ну, про Jon только что всё рассказывал. Это просто формат отображения данных, который показывает данные так, как они есть, с условностями, ну, по сути, да, такими, какие они есть. А схемай таблица уже преобразует для нас, чтобы нам было проще в этих данных ориентироваться. Вот, кстати, данные для демонстрации форматов отображения данных. Сам себе записал данные для отображения формата данных, но мне это уже не надо. Подписывайтесь на Telegram канал, там все ссылки и материалы к ролику, ребята. Это правда. Подписывайтесь на Telegram-канал, у меня там все материалы ко всем роликам лежат. Будет для вас это полезным. И не забывайте покупать узлы дня. Тоже скажу про это ещё раз. Хотите дополнительные 10 часов материалов по NV CN, чтобы вообще точно разобраться, покупайте узлы дня. Теперь на практике

### Drag & Drop. Условия в узлах if и switch [2:41:04]

ввокат drag and drop, mapping данных между узлами условия и пиннинг данных. Drag and drop - это имеется в виду вот такая штука. Ещё один fields добавим. Как видите, я очень люблю этот узел. Мы можем вот просто вот так брать и перетягивать данные. Всё, это и есть днроop. То есть, ну, сейчас выражение не перетянулось, а сейчас перетянется. Про выражение сейчас тоже буду рассказывать. Всё. Ну, есть два формата. Вот есть fixed отображение, есть expression. Вот у нас, например, есть выражение JavaScript выражение. можем нажать fixed, тогда оно будет неактивно. Тогда у нас буквально данные вот такие вот отправятся. Вот. Но если мы нажмём expression, то у нас это выражение будет выполняться и будет здесь написано уже John doя. Видите, вот пининг данных для тестирования тоже про это говорил. Вот закрепили данные, да? То есть можем нажать букву Пи, и тогда у нас данные закрепятся, да, чтобы каждый раз не исполнять эти данные, они будут сразу закреплены, а результаты выполнения узла мы сразу закрепили. Как видно, кстати, возле Ved ITFS, вот мы можем здесь выбирать тип данных, то есть можем выбирать строку, можем выбирать number, bull, un array, object и binary data, то есть всё то, про что я сейчас рассказывал. То есть выбираем number, пишем число пять, у нас отображается number. Выбираем string, пишем число пять, оно отображается как строка. Ну и так далее. Пишем, например, true, оно отображается как строка. Вот true. Но если мы здесь выберем бун, то теперь отображается как значение, правило бульво значения. Иногда так говорят, но мне чуть не нравится, как это звучит. А условия: equals contains, greater than, less than, much regress, length of array. По условиям. Вот узлы if и узлы switch. В них есть такие условия, вот эти вот все условия. То есть когда мы определяем, когда у нас значение правдивое или значение неправдивое. Давайте здесь поменяем. Вот так сделаем. Как мы определяем, какое здесь значение правдивое там, а какое неправдивое, да, в узле if. Что вот это всё значит? Перетянем, например, имя. И здесь напишем тоже имя. Смотрите, есть значение из equ. То есть в том случае, если то, что у нас написано здесь, равно тому, что написано здесь, тогда у нас будет true. Видите, true branch. А false branch ничего нет. То есть мы нажимаем, наводим на строку, потому что мы работаем сейчас со строкой и выбираем значение заквалту. Давайте их все по порядку разберём. exist. Что значит значение exist? Если такое значение в принципе существует, то тогда будет true. Но если его в принципе нет, например, мы сделаем какой-нибудь named named, его уже не существует. Нажмём execute step, и у нас будет уже false. То есть false branch идёт вот сюда вот, видите? False branch. Ну да, и передаются два айтема. Но если одно и то же условие разное для разных айтемов, то один пойдёт на true, другой на false. Потом есть does not exist. То есть в том случае, если этого значения не существует, то у нас будет true. Если оно существует, то будет false. Всё, exist значит существует. Потом есть из empty. Если это значение пустое, то тогда будет true. Если оно не пустое, то будет fфse. Так как оно не пустое, у нас fфse. Но если мы сделаем вот так, то у нас, видите, undefined по сути оно является пустым, поэтому оно идёт теперь в true branch, а не в false branch. Теперь есть значение изemp, то есть если оно не пустое, то оно идёт в true branch. Если бы оно было пустым, пошло бы false branch. То есть потом из equлту из квату мы разобрали. Потом - это значит содержит. То есть, например, имя содержит имя, но также имя может содержать, например, букву и, тогда это условие тоже сработает. А если мы напишем, например, иб, ну, не знаю, как не так, иб, то оно уже не будет содержать это в себе, поэтому это будет флse. Но если мы напишем им, то тогда оно в себе содержит, это будет true. А если мы напишем, например, а из equ, то будет уже fф, потому что из equ считывает, насколько вот эта строка полностью равна вот этой строке. Теперь то, что касается starts with, то есть начинается с, ну, я думаю, понятно, какая логика. То есть, если мы пишем я, то оно будет флс, потому что оно не начинается с я. Но если мы пишем, например, и, здесь же начинается с i, тогда оно будет true, а здесь будет false. Или ему пишется им, то будет тоже true. Если даже напишем имя, тоже будет всё правильно. Does not start with. То же самое, просто в обратную сторону. Если оно начинается с имя по факту, то всё, теперь будет fф, потому что мы выбираем does not. Теперь, то же самое, только концовочка, то есть если мы напишем им, то будет false. Но если мы напишем мя, то будет true, потому что он заканчивается действительно на does not and if. То же самое, но наоборот. Matches rejects - это специальные выражения. Эх проще делать через неронки. То есть если у вас тамдчат GPT, Perplexity, можете новый чат начать и попросить его. написать какой-нибудь reject. Ну, например, я прямо вот так сделаю. Сделаю вот так. Заскриню ему всё и скажу. Напиши Reject. Reject расшифровывается как regular expression. То есть это не JavaScript expressions, то, что вот это вот, это не то же самое, это regular expression, это немножко другие штучки. Короче, Rejects, Matches Rejects нужна для того, чтобы делать какую-то фильтрацию там в true либо false. Но если ни одного из этих значений вот тут вот нету. То есть, допустим, вы хотите, как он здесь прописал, сделать фильтрацию, то, что если здесь есть только буквы, тогда это будет true. Но если здесь кроме букв ещё появляется какая-то цифра, то тогда это будет фс, например, да. Вот делаем сейчас это true. Давайте тогда мы не выражение пропишем, а пропишем вот так, буквально имя. Так тоже можно сделать. Вот сейчас это true. Но если мы сюда добавляем бу цифру, то оно уже фс, потому что мы сделали специальный regular expression, которая понимает то, что если здесь только буквы, тогда это true. Если есть ещё цифра, то это уже фalse. И таких сценариев может быть огромное количество. Буквы с пробелами, там, имя, фамилия, да, минимум два символа. То есть, если будет меньше двух символов, а здесь мы напишем, например, один символ, это будет false brch. Если два символа, то это будет true brangch. То есть, ну, я думаю, вы поняли логику. То есть можно сделать с помощью этих regular экpressionш с помощью клода там или чата gpt. Вот тут вообще разбираться не надо. Просто вот надо вам что-то сделать. Просто клода написать вам выражение, да, вот, например, email формат для того, чтобы отсеивать, пришёл ail или не ail. Например, вы делаете заполнение формы какое-то и хотите проверить, что написал пользователь, реальный email или нет. И с помощью вот таких вот Regular Expression это можно делать. Не знаю, что тут ещё рассказывать, но regular expression периодически встречается в N8N. На них нужно знать, но понимать, как они работают, вообще не надо. Просто пишите к лоду. Ну и то же самое есть does not mat rejects, то есть то же самое, но наоборот. Теперь number. А смотрите, какая особенность number, то, что сюда мы переносим строку, и он нам выдаёт прямоугольник красный, потому что для строк это не работает. Это работает только для чисел. Ну вот, например, у нас есть вот мы открыли код in JavaScript, а решёлточка, значит это число, значит здесь это сработает. Видите? Всё нормально, но если мы переносим строку, то это не работает, потому что это строка. Ну и то же самое здесь есть, как и в строках в целом. Exist does exist empty notempt равен не равен. Ну вот есть тут is greater than. То есть, например, у нас есть число. То есть если оно число вот это вот 28 больше, чем 35, тогда это true. Но оно не больше, поэтому false. То есть greater than - это значит больше или less than значит меньше. Но смотрите, какая особенность, кстати, если мы нажмём здесь table и нажмём вот здесь вот code in JavaScript и вот тут вот пропишем, например, 30. То есть у нас есть два разных айтема, как я показывал. В одном H28, в другом 32. В одном H меньше, чем 30, а в другом больше, чем 30. Что тогда произойдёт? Нажмём Execute Step. Тогда у нас айтемы разойдутся по разным веткам, как я говорил. Вот одна в true пошла, одна false. Ещё есть is greater than or equal. То есть больше либо равно, либо меньше либо равно, как в математике было. Может, помните, с датами есть то же самое. То есть существует, не существует, пустой, не пустой, равен, неравен и так далее. После этой даты, до этой даты, после либо равно и так далее. С правилами также. Правила - это true либо фолs, то есть там существует, не существует, пустой, не пустой, правдивый, неправдивый и так далее. С объектами тоже существует, не существует, пустой, не пустой, содержит, не содержит. Length greater than или less than, то есть длина массива, длина массива. Здесь про массивы речь. И с объектами вот существует, не существует, пустой, не пустой. Ну, касательно массива, единственное, я бы добавил то, что вот есть lengв. Что такое длина массива? Длина массива - это количество элементов в массиве. Ну вот, например, давайте вот здесь покажу вот этот вообще. Уберём узел тогда. Вот он есть массив у нас. Вот он элементы здесь. 1 2 3. Три элемента в массиве по факту содержится. Что получается? Мы можем взять array и поставить length less then. То есть мы берём наш массив. Вот у него длина получается 3три, потому что количество элементов в массиве - это есть длина. То есть можем сейчас выбрать length у массива, например, length greater than, то есть если длина больше двух, то это будет true. То есть, как видно, true. Но если длина больше пяти, то уже фс, потому что длина нашего массива три.

### Expressions в n8n. Как работают javascript выражения [2:50:27]

Теперь, наконец-то, переходим к выражениям JavaScript 18n. Смотрите, это всё то, что находится вот внутри скобок. Нажимаем Expression. Вот есть fixed режим, есть expression. Fixed режим можно вообще никогда не использовать. Не знаю, зачем он нужен. Вот, вот это есть выражение. То есть это то выражение, которое что-то выполняет. Вот написан result N8N, потому что вот выражение выполнилось. Вот его результат. N8N. Вот, например, N8N тоже result написан. Техническое руководство по интерфейсу. Интерфейс узла. Кнопка FX для активации выражений. Синтаксис выражений. Вот это прикольно, кстати. Нанобана сделал. Техническая иллюстрация. Утверждено 1923 год. Забавно. А Expressionn - это способ вставить данные из одной ноды в другую или сделать вычисление прямо в параметрах. Сам это определение придумал. В целом это так и есть. То есть мы вставляем данные из одной ноды в другую, пожалуйста, это выражение 2n. Либо вычисляем что-то в параметрах. Сейчас про это тоже расскажу. Вот мы делали только что dr androp, у нас автоматически создавалось выражение Expression, которое задействовало данные с предыдущего узла. Ну да. То есть вот мы делаем dr and drop, то есть мы перетаскиваем, у нас автоматически создаётся выражение, которое задействовало данные из предыдущего узла. Выражение вно можно писать где угодно, и это очень круто. Есть ещё метод fixed, но я не знаю, зачем он нужен. Вот, вот про этот метод я говорю. Вот видите, fixed либо expression. Вот метод fixed почти никогда не используется, да, вообще никогда не используется. Expression используется регулярно, потому что если вы в режиме Expression напишите не Expressionшн, а просто что-нибудь вот так, например, оно всё равно будет работать. Поэтому режим fixed, ну, очень редко используется. Как они работают? А в выражениях всегда нужно писать две кривые скобочки в начале, в конце и значок доллара. То есть вот так. Если мы хотим сделать выражение, выбираем режим выражения, пишем две кривые скобочки, и автоматически добавляются в конце две кривые скобочки. И нам сразу предлагают вот тут вот разные выражения сан. Например, мы можем выбрать now. Вот это нам текущую дату время показывает он текущую дату время, учитывая то, что мы выставили в настройках. Вот здесь вот workflow. Вот часовой поязд New York. Давайте поставим Musкул, по что у меня Musкул время, да, теперь оно правильно показывается. Выражение всегда начинается с доллара. То есть, если мы внутри этих скобочек уберём доллар, он пишет undefined. То есть он не, ну, видите, просто выдаёт undefined, то есть он не распознаёт, что это такое. Но если мы напишем доллар, то дальше мы можем сделать какие-то выражения. Например, если мы хотим задействовать данные из предыдущей но, мы пишем, а, jon. Мы хотим, а, сделать, достать данные с предыдущей нод. То есть можем взять строку и перенести. Можем просто её перенести. Ну, давайте разберёмся, почему она вообще работает. То есть мы пишем опять же две кривые скобочки, пишем значок доллара, пишем jon, пишем, видите, написали jon объект отображается, но можем написать точка и можем написать вот нам предлагает сразу строка, потому что вот у нас слева тоже показывается строка. Пишем строка. И теперь мы подтянули вот эти вот данные вот отсюда. Строка, видите? Привет, мир. Можем, конечно же, это просто перетащить. А можно и это и вот так делать, то есть через квадратные скобочки и вот такие вот кавычки. Тогда оно тоже сработает, потому что JavaScript выражение можно писать по-разному, но получать один и тот же результат. Если мы хотим вытащить данные из конкретной ноды, то мы пишем уже по-другому. Мы пишем нода, название нода, джисоны и данные. То есть, смотрите, а вот это всё убираем, оставляем значок доллара, но пишем вот так нада. В скобочках мы должны писать кавычки. Здесь прописать edit fields. Вот видите, у нас сейчас задействовалась вот эта вот наша нода. И потом мы можем прописать точка jon данные, которые мы хотим достать. То есть теперь мы здесь пишем точка JSON и те данные, которые хотим достать. Точка строка. Вот как-то так. Видите, теперь достаётся "Привет, мир. " Казалось бы, зачем такие сложности, если мы сейчас то же самое, ну, тот же самый результат получали, ну, гораздо проще, но мы достаём данные из конкретной ноды. А когда я показывал вам вот это выражение jon данные, либо когда мы просто перетаскивали, у нас активировалось выражение именно для предыдущей ноды. Но, например, мы можем здесь поставить ещё какой-то узел, и для него вот эта вот нода уже не будет предыдущей, потому что эта нода предыдущая является только для этой ноды. Ну, это логично в целом. И есть просто многие JavaScript выражения, которые работают именно для предыдущей ноды. Но если между нодами есть несколько других нод, то надо уже конкретно указывать название. Например, вот у нас есть on submission, тут какие-то данные. Если мы здесь что-нибудь перетянем, например, вот это вот, видите, здесь в скобочках указывается уже название нода, тоже on form submission. Немножечко по-другому, потому что можно по-разному писать эти выражения, но в целом это тоже работает. Просто это важно понимать, потому что в своё время я тоже из-за этого тупил, то, что у меня выражения в каком-то узле работали. Ну вот есть два узла, выражение работает, я между ними добавлял узел какой-то, они переста переставали выражение работать. Я не понимал, почему. А потому что JavaScript выражения так работают. То, что есть выражение именно для предыдущего узла, конкретного узла. Есть ещё input, да, например, input all. Давайте пропишем input точка. Это что такое? Точка all. И вот так вот. То есть мы берём сейчас просто запихиваем сюда внутрь весь вот этот массив, который у нас отображается. Давайте лучше вот сюда вниз поставим. Здесь напишем что-нибудь. Вот. В итоге у нас весь этот массив просто отображается сейчас как одна строка. Так тоже можно делать. То есть можно в Джейсоне прописать по факту одну строку. Здесь одна строка, но в значении этой строки находится массив, который не активен внутри Джейсона. Есть выражение now, нау, чтобы узнать текущую дату время. Я его только что показывал. То есть можете поставить Jonllar now, можете поставить today. Вообще, если вам интересно, можете просто прописать доллар и вот так вот полистать. Здесь же now, if, empty, edit fields, form submission и так далее. То есть огромное количество выражений. Здесь очень их много. Хотя нет, тут не все указаны, но вообще их много. То есть если вы начнёте писать, что-то прописывать, вам будут предлагаться разные выражения. То есть выражений очень много. Надо показать на практике. Oneмен что-то из этого только что показал. Это, конечно же, уже идёт JavaScript cд вообще, да, это идёт уже JavaScript код, то есть небольшое

### Javascript выражения на практике [2:56:46]

программирование. С помощью выражений вво можно сделать почти что угодно. Эти выражения могут заменять вам узлы для преобразования данных. В следующий раз, когда вам надо будет так или иначе преобразовать данные ввоen, сделайте следующее. Скопируйте исходное выражение, зайдите в чат GPT clД Perplexity, куда угодно, и попросите прописать вам выражение для NVC man. Только что я показывал, например, узел if. А там было значение, например, из equal to. Вот. узел if значение из equal to, то есть равен. Мы то же самое можем делать через выражение JavaScript, то есть мы огромное количество узлов N8N для преобразования данных можем менять с помощью выражений. Как это делать? Ну вот, например, у нас есть выражение вот, результатом которого является вот слово Володя, вот оно. Мы можем его скопировать, зайти в клод, отправить ему это выражение и написать. Поставьте три чёрточки. Это чтобы лучше промт писался. Ну, то есть, чтобы как бы визуально разделять для нейросети это выражение из N8N. Сделай из него, пожалуйста, обязательно пишем такое, которое будет проверять на равенство слову Володя. Если равен, то, если нет, то false. Вот он нам отправляет выражение. Вот, например, берём самое первое, потому что дальше идут вариации, и ставим. И он нам показывает значение true результат. То есть, что здесь сейчас происходит внутри. То есть выражение проверяет, чему оно равно. Если оно равно слово володе, то обража то отображает true. Если не равно, то будет отображать false. Ну, мы можем здесь поменять Волде, например, на волот, и тогда будет фSE, потому что вот это вот не равно Володя, оно равно волот. То есть, понимаете, прикол? С помощью JavaScript выражения вы можете огромное количество всего делать. Давайте теперь сделаем следующее. А теперь посчитай количество символов и прибавь 23. Вот. ставим сюда. Смотрите, что получается. Он посчитал количество символов в нашем слове. 1 2 3 4 5 6. Прибавил к нему 23, получилось 29. Вот что он сделал. Мы с помощью выражения только что посчитали количество символов и добавили к нему какое-то число, и он нам выводит какой-то результат. То есть вы с помощью выражений JavaScript можете делать вообще что угодно. И они есть везде. Они доступны везде. То есть узел Edit Fields, узел, я не знаю, любой, даже узел там HTP request какой-нибудь возьмём. Везде есть. Вот оно отображается. В каждом поле, где можно что-то вести текстом есть fixed, есть expression. Если нажимаете Expression, вы можете тут вести любое JavaScript выражение. Есть, например, узлы вот data time, узел data and time. Вот он, абсолютно весь функционал этого узла. Get current date. Get time between date. Dat, округлить дату и так далее, получить текущую дату. Абсолютно весь его функционал можно заменить этими JavaScript выражениями. То есть это очень крутая штука. Учить, как самостоятельно писать эти выражения смысла нет. Я вот не пишу их сам. Я всегда это делаю через нейронку. Это правда. То есть вы можете их писать сами, но я не вижу в этом смысла, потому что когда мне нужно прописать какое-то выражение, я захожу в код и говорю: "Клод, а сделай мне какое-нибудь выражение, которое сделает следующее". И он пишет мне это выражение. И это супер полезная тема. Вы, ну, начните пользоваться выражениями в N8N. Это очень важно и это очень полезно. И со временем вы начнёте видеть закономерности в этих выражениях. Ну и вот есть ещё примеры выражений. То есть вы можете с помощью трим убрать пробелы в начале конце строки. с помощью to lower case изменить регистр текста. То есть, допустим, у вас заглавные буквы в тексте есть, а вы всё до обычных опускаете. Либо кейс, наоборот, capslock включаете. Replay, заменить текст или паттерн, spлит, разбить строку на массив, joint, склеить массив в строку. То есть вы можете даже массив и строки менять с помощью выражений. МАП. Преобразовать каждый элемент массива. Фильтр, отфильтровать элемента. Условное выражение. А, извлечь часть строки. Проверить наличие подстроки. Преобразовать в jon строку, получить длину строки, логические операторы, суммирование, округление чисел, что угодно можно делать с помощью выражений. Не вижу смысла я разбирать, как именно они работают, потому что я и сам, честно говоря, не знаю. Ну, только чуть-чуть. Если вы думаете, а можно ли сделать это или это с моими данными, скорее всего, можно. Попробуйте использовать для этого выражения в NVOn. Теперь, что такое data

### Data Tables в n8n [3:00:52]

tables в NVOn? Data tables - это таблица внутри NVN. Это то же самое, что и Google Sheets, но работают на том же сервере, что NVMN, и под капотом у них Postg SQL. Кстати, если вы не знали, Google Sheet где-то хранят данные, делают это они на серверах Гугла в облаке. Вот есть вот встроенные data table с таблицы специальные внутри, которые хранят данные на том же сервере, где у вас стоит, то есть на вашем сервере, да, если у вас на вашем сервере установлено. Ну и работает это на пост, на базе Postgrгс. По факту все эти данные хранятся внутри базы данных Postgress. Смотрите, как это на практике выглядит. Нажимаете personal и вот у нас есть сверху мы разбирали Executions, но не разбирали data tables. Вот можем нажать create data table. Можем, кстати, импортировать из CSV формата, кстати, что удобно, но можем создать новую типа таблица. То есть это обычная таблица, то есть мы можем вот добавлять какие-то значения. Добавили вот ID, когда создано, когда обновлено и так далее. Можем добавить ещё какой-то столбец, например, имя. А, ну на русском, кстати, нельзя. Ну, давайте на английском напишем name. Вот, например, добавлю столбец name. Добавим столбец какой-нибудь типа H. Имя столбца должно начинаться с буквы и может содержать строки, буквы или вот такие вот нижние подчёркивания. Это то, что мы добавили, можем удалить. Вот это мы уже не удалим никак. То есть это по дефолту всегда записывается, когда создано, когда обновлено. А, и ID тоже всегда остаётся по дефолту. Вот. И тут мы можем внутри что-то прописывать, какие-то значения, то есть что-то прописывать, что-то добавлять. Удобно. Если мы что- не прописали, по дефолту пишется нул. Мы, кстати, разбирали тип данных nл. Помните это? Ну зачем это вообще надо? То, что мы это можем использовать внутри workflow. Вот у нас есть workflow, и мы хотим тут подтянуть данные из таблицы. То есть у нас есть специальный узел data table 8N. Вот он, data table. В скобочках recommended написали. Раньше было в скобочках бета написано. И теперь мы с помощью этого узла можем доставать узлы из нашей базы данных. Вот здесь показывается наша таблица, которая была создана. Допустим, операция get есть, да? Можем достать отсюда какие-то там значения. Вот у нас есть коumн, выбираем столбец, например, name и выберем что-то типа из над empty. То есть, если значение name is над empty, то он достанет эти значения. Execute step нажимаем. Вот видите, достал те значения, которые мы записывали в таблицу. Ну, здесь немножко сложнее работать. То есть здесь, во-первых, можно добавить несколько условий. выбрать, чтобы соответствовало всем условиям или любому условию. Но когда условие одно, то разницу между этими нет. Между all conditions и any condition. И чтобы не доставать все данные из таблицы, мы выбираем столбец, например, H. И давайте я его покажу. Давайте нормальное значение пропишем. Вот 13. Что-то мало. Давайте там 45. Нурмально. Имена. Володя. Пусть будет Даша. Матвей. Пусть будет. Рост пропишем. Давайте напишем 300 см. Здесь напишем Даш у нас будет полметра, а Матвей у нас будет не особо высокий. Теперь у нас будут нормальные значения показываться. Ну и чтобы достать эти значения, мы, например, выбираем H. И чтобы не доставать всё подряд значения, хотя можно так сделать, можно нажать изнат, и тогда достанутся те значения, которые не пустые. Вот видите, всё досталось. Вся наша таблица, которую мы прописали. Ну, мы можем прописать какие-то условия, например, equal. Если equal Володя, то он достанет именно строку с Володь. Вот видите? А если, допустим, над equal Володя, то он достаёт строки, которые не равны Володе. Вот. И тут можно выставить ограничение, типа возвращать 50 айтемов или возвращать все айтемы, да? Убрать этот тумплер и прописать ограничение. Там возвращать только 102 айтема или только пять айтемов, например. Это нужно, чтобы сильно не грузить ваш сервер этими операциями. Это мы доставали сейчас данные. Можно с помощью также удалять их из таблиц. То есть можно управлять не только вот отсюда из этого интерфейса. Можно с помощью этого узла управлять вашей базой данных. А можно insert, то есть добавлять новые столбцы, да, в базу данных. Допустим, нажать insert, добавить тут name николай 57 там, я не знаю, 138 пусть будет. Вот сейчас мы добавили и теперь у нас обновим вот здесь таблица. Обновим страницу с этими таблицами. Вот добавился у нас Николай. То есть когда вам надо будет что-то делать с вашими данными, куда-то их записывать, в какие-то таблицы, вот делайте это в таблице N8N, а не в Google таблицу. Хотя можно и в Google таблице в целом, как хотите. Ну вот прописаны операция. Исёр добавить новые строки. Есть get, получить данные с фильтрами, как я показал. Есть апдейт, обновить существующие строки, обсеs обновить, если есть, или создать, если нет. И delete, удалить строки. Ну и да, более подробный разбор есть в узлах дня. Да, там я делал подробный разбор абсолютно всего этого узла с таблицами в N8N. Переходите в Telegram, читайте информацию про эти узлы дня, читайте отзывы. Это прокачает ваши навыки работы в NN. Там есть информация про Data Tables и подробнейший разбор каждого из этих пунктиков. И подписывайтесь на Telegram-канал, там все ссылки и материалы к ролику. Да, два свитка мы

### Свиток 3. API [3:05:45]

разобрали. Теперь у нас идёт третий свиток. Что такое API? API - это

### Что такое API? [3:05:51]

аббревиатура. Расшифровывается она как Programming Interface. Программный интерфейс. Короче, давайте на примере ресторана сначала разберём, как работает API. Представьте, вы в ресторане смотрите меню, заказываете блюда через официанты, и вам приносят готовую еду. Вам не нужно идти на кухню и знать, как это готовится. API работает также. Это посредник между программами. Одна программа через API запрашивает данные или функцию другой программы и получает ответ. А простой пример. Приложение Погоды на телефоне не измеряет температуру самостоятельно. Оно через API запрашивает данные у метеослужбы и показывает их вам. То есть вот как это работает. Ваш телефон, приложения Погода делает API запрос. То есть вот API запрос он делает к серверутеослужбы и метеослужба отправляет вам обратно данные, то есть ваше приложение само ничего не измеряет. То есть API - это такая штука, чтобы обмениваться данными между разными серверами. Да, давайте расскажу ещё раз, что такое сервер. Сервер - это любой компьютер. То есть ваш компьютер по сути является сервером. любые сервисы, которыми вы пользуетесь в интернете, я не знаю, YouTube, э, те же маркетплейсы, там приложение банка, оно всё находится на серверах, на каких-то серверах. И каждый раз, когда вы в Ютубе или в приложении банка нажимаете на кнопку, с вашего телефона отправляется API запрос на сервера, получается, банка или сервера Ютуба. Например, вы нажимаете на кнопку, чтобы открыть какое-то видео в Ютубе. Отправляется опять запрос на сервера Ютуба. он вам отправляет обратно видео. Вот примерно, что такое API. Это способ передачи данных между серверами. Просто удобный, очень популярный способ, который и используется в N8N. Зачем это нужно? Программы могут обмениваться данными и использовать готовые функции друг друга, не зная, как они устроены внутри. Например, кнопка "Войти через Google" на сайтах работает через API гугла. Вот вы, допустим, делаете какой-то свой сайт, и вы хотите добавить там авторизацию через Google. Вам не нужно знать, как именно работает авторизация через Google. Вам просто нужно это подвязать по IPI. То есть так это и работает. Когда вы делаете условно в ресторане заказ официанту, вам не нужно знать рецепт блюда, вам не нужно идти на кухню, вам нужно просто сделать заказ. А то, что происходит дальше, вас это не касается. Точно так же с погодой. Телефон запрашивает, делает опять запрос к серверу метеослужбы, и вам не нужно знать, как эта погода измеряется, как это вообще происходит. Это дело всё метеослужбы. Ну, если вы приложение погоды. Ваше дело просто получить обратно данные о погоде. Например, отправляем запрос на сервера Open AI. Вот у нас есть Open AI API, то есть мы делаем запрос на сервера Open AI. Если вы не знали, да, Open AI - это компания, которая делает чат GPT. любой чат GPT, который как бы есть в интернете, когда вы его хотите подвязать, он подвязывается через API. То есть, например, мы делаем запрос изза N8N. Вот запрос: "Привет". И мы прописываем, какую модель мы хотим вызвать. Прописываем свой апи ключ. Про аключ тоже будет подробнее. И отправляем это на сервера Open AI. На серверах Open AI проверяется наш а ключ, то есть, э, чтобы не могли все подряд отправлять запрос и получать ответы, есть специальные апи ключи, про которые я уже говорил. Вот на openроутере, да, показывал, на котором лежат какие-то деньги. Каждый запрос стоит денег, да, считается по токенам, чтобы идентифицировать пользователя, есть проверка апи ключа на серверах Open AI. И потом уже нам отвечает GPT: "Привет, чем могу помочь", например? Да и приходит к нам в NV CM: "Привет, чем могу помочь". Ну, так резюмируя, NVCEN отправляет запрос с текстом, указывает имя модели, добавляет апи ключ для авторизации. Open AI принимает запрос, сервер обрабатывает и генерирует ответ. API возвращает текст ответа. Для нас не имеет значения, что происходит на серверах Open. AI нам не важно, как именно работают их лэмки. они генерируют нам ответ. Нам не важно вообще ничего знать, как они работают. Нам важно то, что мы можем просто отправить запрос и получить ответ. То есть мы пользуемся сразу готовым продуктом. Может это вообще там человек сидит, отвечает. Мы не знаем. Мы просто получаем ответ. И вот сейчас я покажу это же HTTP requкст. Вот смотрите, вот у нас интерфейс N. Чтобы сделать опять запрос, давайте добавим, а, тригр manual, чтобы активировать вот так по нажатию на кнопку добавим HTP request. Узел специальный как раз для HTTP запросов. Вот. А почему узел не называется API request, а HTP request? Потому что API - это как бы вид HTTP запроса. И чтобы делать API запросы, нам нужен узел HTP request. Вот смотрите, нужно нам сделать запрос на сервера Open AI. Мы, конечно, можем просто сделать вот так, написать в поиске там Open AI. и сделать вот message model. Да, за нас уже всё заранее преднастроено. По сути, тут остаётся только добавить credential AP ключ. Естественно, нам нужен API ключ Open AI. API ключ - это метод авторизации для API, как я уже сказал, потому что есть много разных людей, у каждого свой аккаунт, и чтобы как-то определять, кто из них какой делает запрос, есть опять ключ. То есть просто метод авторизации, как бы логин и пароль, да, условно говоря, только в виде одного длинного ключа. Я сейчас возьму опять ключ опяй. Но если вы не можете оплатить за доллары, можете с сервиса Opener взять опять ключ либо с пользы AI в целом реализовать то же самое. Там немножко будет отличаться документация, но сейчас по ходу ролика, я думаю, вы разберётесь, как это делать, как делать эти запросы. Но там принцип такой же, там очень мало различий. Мы, конечно, можем просто сюда добавить опять ключ, где у нас сразу всё преднастроено. То есть вот у нас сразу появляются модельки какие-то. Можем любую нажать через узел Message model Open AI. Но по сути, по сути всё, что тут происходит, то же самое можно реализовать через HTPS. По сути, вот этот узел - это точно такой же HTTP, просто заранее специально преднастроенный под, а, конкретные запросы на сервера Open AI. А здесь нам, ну, надо будет всё самостоятельно восстанавливать, да? Смотрите, я зайду в клод и напишу ему запрос, потому что мне лень самому всё это восстанавливать. Я напишу ему: "Дай мне CUR для запроса API в Open AI. Вот он дал нам CURL для базового запроса. Просто копируем, заходим обратно в N8EN, нажимаем вот здесь вот справа сверху возле HTP request import URL. И это вставляем и жмём импорт. И произошла магия. У нас автоматически всё велось, что надо. Сейчас мы вот это вот всё будем тоже всё разбирать, что если вы взлетест. Но пока что, так, пока что демонстрация здесь URL. Мы прописываем то, что мы обращаемся на сервера Open AI, обращаемся к чату, потом отправляем headers. Здесь у нас идёт авторизация, то есть здесь мы прописываем наш API ключ. Вот здесь вот после слова barer нужно прописать ваш API ключ. Вот я свой прописал. Потом отправляется бази, да? И видите, мы отправляем наш HTP запрос, опять запрос в Jсоне. Мы только что узнали, как писать JSON, и, пожалуйста, вот мы его сразу используем. Какие тут базовые настройки? Можно выбрать модель и прописать сообщение. А выбрать роль, то, что мы пишем от лица юзера и контент, сообщение, которое мы пишем. Вот давайте повторим, что я тут написал. Привет. И GPT5 активируем. Вот вместо контента здесь пропишем привет. Давайте модель выберем GPT 5,2 даже. Да. Как я её выбрал? Я просто зашёл в документацию Open AI. Тут вот написано стоимость. И вот тут у них есть кнопочка, чтобы скопировать модель. Такие же кнопочки есть и на сайте пользы AI, и на сайте OpenRouter, поэтому можете тыкать вот здесь вот. Прописываем. Прописали. Название модели. В целом это всё. То есть у нас есть API ключ, у нас есть URL, куда мы отправляем запрос, у нас есть какой-то контент, то, что мы пишем ему привет. А теперь нажимаем Execute Workflow, и у нас вот делается запрос. Готово. Очень быстро ответил. Вот он нам отвечает: "Привет, чем могу помочь? " Как видите, тут очень много всяких разных данных отправляется. Ну и, как я говорил, вот примерно так и выглядят API ответы. Они тоже приходят в Jсонеoney, но мы-то теперь умеем их читать, правильно? И вот в схеме, как это выглядит. Он нам кучу данных отправляет. Сколько токенов было использовано, сколько было кэшировано токенов, сколько, ну, несколько в данном случае, что нам ответила мотелька, какая у неё роль, а, ID, ну, и так далее. То есть очень много всякой информации нам отправляется попй помимо самого ответа модели. Вот, то есть мы сделали запрос, получили ответ. То же самое мы можем сделать вот через этот узел. То есть просто его открываем. Здесь у меня уже выбран аккаунт Open. Я там сразу введены через, ну, вот этот специальный менеджер пароли через shше N8N. Выбираем здесь resourceтек, message model. Выбираем model GPT 5,2 такую же. Ну вот оно, собственно, такое же название. Выбираем type user и пишем ему то же самое. Привет. И жмём Execute Step. Всё готово. Нам приходит ответ. Но смотрите, в чём тут разница, то, что здесь данных чуть меньше отправляется, потому что N8N, когда мы отправляем через такие вот преднастроенные узлы, он для нас специально маскирует некоторые данные. Да. Вот, кстати, эта кнопочка для упрощения аутпута, она включена, но если мы её выключим, то нам сейчас придёт ответ такой же, как нам приходил вот в этом узле. Тоже настолько же объёмный, да? Вот видите. Но если нажимать Simplified Put, то тогда не отправляется информация, например, про использованные токены. А это может быть важно, чтобы подсчитать стоимость, да, вашего среднего запроса. Вы, наверное, подумайте, раз, ну, вот это и вот это одно и то же, почему же в этом узле настолько много всяких разных параметров? То есть здесь вы можете ещё сообщения добавить, выбрать роль, можете сделать simplify put, можете добавить какой-то лol, можете добавить какие-то опции. тут разные, огромное их количество. Где же это всё происходит, если мы делаем это через узел HTP request? А возле HTTP request а эти опции вы добавляете сами. То есть вы читаете документацию Open AI, а потом прописываете это в Jсоне. Вы по факту просто увеличиваете свой JON. То есть сейчас, например, мы не указали температуру. Температура - это параметр, который регулирует креативность модели. Насколько у него необычные ответы. Ну, грубо говоря, мы это про это тоже поговорим попозже. В этом гайде по дефолту стоит определённое значение температуры. И если вы здесь его не прописываете, оно остаётся таким, как оно, какое оно есть по дефолту. Но если вы хотите его поменять, тогда нужно здесь прописать ещё значение, температуру, ну и так далее. То есть здесь надо будет уже самостоятельно это всё добавлять. Не то, чтобы я вас призываю всегда пользоваться HTP-реквестами, а вот этими узлами не пользоваться. Нет, наоборот, стоит этими узлами пользоваться, потому что это проще. Но сейчас мы разбираем принцип работы HTPв, потому что нужно, чтобы вы умели через HTPвест сделать любой запрос, который вам нужен, потому что есть какой-нибудь Битрикс, например. Битрикса нету в NCman 1S, прости, Господи, нету в NCAN. Их придётся подвязывать через HTP реквесты в NEN, поэтому нужно знать, как работают эти реквесты. Напоминаю, мы делаем API запрос через HTTP request, потому что API запрос - это вид HTTP запроса. Request с английского значит запрос. HTTP запрос был. Опять запрос. Вот у нас

### HTTP запрос [3:16:56]

HTTP запрос. Сообщение между компьютерами. Отправить HTTP запрос можно откуда угодно. Из терминала, то есть из с вашего компьютера буквально. Из браузера вы можете отправить HTTP запрос, можете отправить с N8 Men, можете отправить с приложения. Вот, например, HTP запрос для какого-то магазина. Отправляется на сервера. com. Что такое httpзапрос? HTTP запрос - это сообщение, который один компьютер, устройство, программа или сервер. Устройство и является сервером, а программа в любом случае лежит на сервере. Поэтому проще говорить сервер. Ваш компьютер - это тоже сервер. Давайте сообщение, которое один сервер отправляет другому серверу через интернет, чтобы получить данные или выполнить какое-то действие. Да и опять запрос является частным случаем HTTP запроса. Ещё раз повторю. И как раз для таких запросов нужен HTTP request в N8N, который мы только что мы на него только что смотрели. Но такие запросы можно делать с чего угодно, хоть с терминала на вашем ПК. Показываю пример отправки запроса с терминала в Google J Mini. Давайте я лучше покажу в OpenI отправку того же запроса. Вот абсолютно тот же, который мы только что делали через NV CN. Вот я вам показал то, что запросил у клода CL для этого запроса, а потом зашёл в NV CN и просто его сюда вставил через импорт CRL. тоже очень удобная штука. Пользуйтесь этим. Точно такой же запрос мы можем сделать напрямую с нашего компьютера. Открываем терминал. Вот он терминал. И мы прямо с него можем отправить HTTP запрос. Но единственное, что нам здесь нужно указать наш опять ключ, потому что тут он не указан. Нужно вот скопировать этот. Можете не пытаться у меня украсть этот ключ, если вы хотели. Ну мало ли, потому что я его удалю в любом случае. Копируем API ключ. У вас он будет свой, да? Потому что вы сделаете свой, нажмёте Command V вместо API ключ и всё. Теперь вот этот вот весь CURL запрос можно скопировать. Мы вставляем в терминал наш CURL запрос. То есть то же самое, что мы делали только что через NVM. То есть вот он, а, URL идёт, а хедеры, content type, наш BR ключ, модель та же. Messenges, вот можете видеть роли usеer, content hello. Мы отправляем, пишем enter. Что произошло? Нам ответила модель в точно таком же Jсоony, как отвечала нам в NVAN. Ответила вот content Hello what can I help you with today? Envoy man - это по сути обёртка, это программа. То есть HTP запросы там делаются также. Тоже по сути отправляется такой же HTP запрос. Просто NCM у нас у меня на отдельном сервере лежит. Ну и по сути я бы мог на том же сервере открыть какой-то терминал и тоже сделать запрос. Но зачем, если это делать проще через N8N? Объясняю, что такое сервер дополнительно такая красивая иллюстрация от наны бананы PRO. Сервер - это компьютер, который постоянно работает и отвечает на запросы от других компьютеров, предоставляям данные или услуги. Вообще, сервер не обязательно должен постоянно работать, но когда вы в обиходе слышите слово сервер, обычно имеется в виду как раз какие-то компьютеры, которые где-то там находятся, их можно арендовать, они постоянно работают. Например, сервер сайта хранит файлы сайта и отправляет их тем, кто заходит на этот сайт. Сервер API обрабатывает запросы и отправляет ответы. Если вы не знали, абсолютно весь интернет лежит на серверах. То есть оно физически где-то находится на каких-то компьютерах. Я раньше думал, что оно где-то в нереальности лежит. И это, кстати, правда. Я раньше не вдумывался в это. Вот, например, пользовался Ютубом сколько времени, пользовался какими-то соцсетями, например, Телеграмом. вообще об этом не думал. Я думал, оно где-то там в невесомости лежит. Но по факту каждое сервис, которым вы пользуетесь, все эти данные, все эти видео в Ютубе и так далее, оно всё лежит на реальных физических компьютерах. И эти реальные физические компьютеры называются сервера. Ну и каждый узел Action inep N8N можно заменить HTTP реквестом и вебхуом, потому что они по сути являются запросами. API запрос - это один из вариантов HTTP запроса. Реквесты значит запрос с английского. Также можно, например, загружать веб-страницы в браузере. Это тоже HTTP запрос, но не опять запрос. То есть, когда вы загружаете любую страницу в браузере, вот я загружаю страницу Open AI. Я сейчас сделал по факту под капотом HTTP запрос на сервера Open AI. Я сделал им запрос с просьбой вернуть мне HTML, чтобы отобразить интерфейс страницы. Ну

### Из чего состоит HTTP запрос? URL, headers, body, params [3:21:22]

и смотрите, из чего состоит HTTP запрос. Наконец-то доехали, да? И в нашем случае опять запрос. Метод это что хочешь сделать? что хочешь сделать, getpost, delete и так далее. URL - это адрес, куда мы отправляем. Заголовки headers, это дополнительная информация, тип данных, ключи доступа, куки и так далее. И тело запроса Body - это те данные, которые вы отправляете в том случае, если вы вообще отправляете данные, потому что не всегда это надо делать. И показываю в N8N сразу этого в HTTP requкст. Ну и вот картинка тоже великолепная, с помощью нано бананы сгенерирована. HTTP запрос, метод getpost, URL, заголовки и тело запроса BДИ. Отправляется HTP запрос на сервера. Здесь обрабатывается, и нам отвечает сервер обратно нам на компьютер. Как это работает? Мы отправляем HTTP запрос, сервер его получает, обрабатывает, отправляет HTTP ответ обратно. В двух словах, HTTP запрос - это способ попросить сервер дать тебе что-то или сделать что-то через интернет. Это основа того, как работает весь интернет. Обмен данными между программами. сайты так и работают. А теперь покажу в N8N - это вузле HTTP request. Вот смотрите, вот он наш узел HTP request. Давайте всё лишнее уберём. Давайте его прямо очистим. Новый создадим. Вот он узел HTP requквест. Мы заходим внутрь. Есть, во-первых, метод. Что мы хотим сделать? Get, post, delete и так далее. Вот он метод. Get delete, get head options, patch, post, put. Мы их тоже сейчас будем разбирать. Потом есть URL, то есть куда мы отправляем, на какой сайт. Вы вот вы когда на сайт заходите какой-нибудь youtube. com, это и есть URL. Можно здесь прописать youtube. com, и он нам отправит в ответ HTML. Потом идут заголовки, вот они, Shaders, да? То есть мы можем включить тумблер, добавятся вот заголовки. Мы сможем их ввести. Можем ввести их с помощью Джейсона, можем вести их с помощью fields Below. Если мы вводим с помощью их вот этих полей, то они под капотом N8N конвертируются по итогу в JON. И есть bodyди, то есть это тело запроса. То есть, допустим, мы отправляем какие-то данные вот на сервера Open AI мы отправляли какое-то сообщение. И сообщение и история диалогов с чатом GPT мы отправляли в Баде. То есть можно отправлять с помощью вот этих вот полей тоже, можно с помощью Джейсона. Мы отправляли с помощью Джейсона. Но вы скажете: "А зачем тогда нужна аутентификация и зачем тогда нужно sendery parameters? " Здесь аутентификация добавлена просто, что было удобнее делать, ну, саму аутентификацию. То есть это в NV CM такая опция доступна, вот делать эту аутентификацию. По факту обычно аутентификация делается через хедеры. То есть вы жмёте sender и тут прописываете там brer и какой-то там опять ваш ключ, который делает аутентификацию. Но в NV специально настроена аутентификация более удобно. То есть чтобы мы не отправляли это каждый раз через header, да, чтобы нам не приходилось каждый раз здесь в каждом новом узле HTTP request прописывать заново весь API ключ от серверов Open AI, например, да. Для этого есть специальная аутентификация. То есть мы её делаем, а, через такой вот встроенный через credential nimen через менеджер паролей по сути N8N. То есть вот есть credential type. Здесь мы можем найти какой-нибудь openi, да, который мы до этого добавили. Вот тут мы выбираем аккаунт, который мы вот тут добавили, и всё. И мы можем делать запросы, и тогда нам не придётся в хедере вводить API ключ. То есть это просто, чтобы было удобнее и чтобы это было безопаснее. Например, вы хотите поделиться своим workкfall, а я показывал, что ими можно делиться, да? Если у вас ваша аутентификация будет прописана вот здесь вот в хедере, то тот человек, которому вы отправите ваш шаблон, увидит ваш API ключ и сможет там, не знаю, тайльно им пользоваться, тратить ваши деньги. А если вы делаете аутентификацию через credential envoyment, то есть вот через эту штучку, то здесь вот это всё маскируется, но здесь не будет видно вашего опять ключа. И про аутентификацию мы сейчас тоже попозже поговорим. Вот именно про Credential N8N, про вот этот вот встроенный менеджер паролей, да, некий. А что такое query parameters? А, query params. Query parameters. А теперь на примере запроса в Telegram я покажу, что такое query parameters. Вот у нас есть HTTP request. Ничего тут сложного. Здесь идёт запрос на 5 Телеграма. То есть здесь мы просто отправляем сообщение через Telegramбота. Давайте сначала я это продемонстрирую. Вот тут мы можем прописать сообщение. Тут написать типа сообщение. Вот он наш бот. Я его очистил. Нажимаем Execute Step. Ну и вот он отправляется сообщение. То есть этот HTTP requкст просто отправляет запрос к нашему боту, и мы от лица бота делаем сообщение пользователю. Как это устроено? Здесь прописано в URL. Сначала API Telegram, потом прописан бот и токен индивидуальный бота вот до сюда вот. То есть это токен конкретно моего бота. Если вы её введёте, то вы сможете от лица вот этого моего бота отправлять сообщение, но я его удалю после обзора, поэтому после видео я его удалю, поэтому смысла в этом нет. Дальше идёт, а действие какое? Sendме message, потому что можно, например, сделать sendфото или ещё что-то. Потом у нас идёт знак вопроса. И если в URL есть знак вопроса, а после знака вопроса идут какие-то данные, всегда параметры. То есть вот параметры чат ID нам нужно указать, чтобы отправить определённому пользователю. И параметры - это текст, какое сообщение мы отправляем. Давайте, чтобы проще было, покажу прямо вот так вот. Вот тут вот у нас указывается токен бота. То есть URL всегда так устроено, то, что если есть вопрос, значит, дальше идут параметры. И вот параметров может быть много. И чтобы не писать все эти параметры вот тут, то есть, чтобы это всё не записывать в одном URL, есть специальная кнопочка sendet. То есть мы можем зайти вот в этот HTTP request. Смотрите, здесь в URL уже указано только опять Telegram. org, только токен бота и только действие sende. А параметры мы можем указать с помощью вот этой кнопки. Вот мы указываем параметры. Чат ID, чат ID и текст. Привет. А здесь то же самое, но просто в одну строчку. То есть это просто визуальное упрощение, чтобы нам было проще с этим работать. То есть вот пишется chatт ID равно endтекст сообщение. А теперь нажмём Execute Workflow. И вот нам отправилось сообщение и привет. То есть, видите, и то, и то работает одинаково. Теперь то, что

### cURL зачем нам нужен? [3:27:39]

касается CURL, про который я уже успел рассказать. Да, ну ладно. Когда я рисовал это всё и делал, ну не я рисовал, Nan Banana Pro рисовала, когда это запросы в Nanно Banan Pro отправлял, чтобы она этом не сгенерировала, я думал, что к этому моменту я ещё не разберу CURL, но я разобрал. C URL - это Command line URL - это программа для отправки HTTP запросов через командную строку терминал. То есть, как я показывал это, через терминал. Нас интересует то, что в большинстве документаций, когда речь идёт про PI, нам показывают CURL, а это значит, что мы можем просто закинуть его в узел HTT requestст следующим образом. Мы, конечно же, можем писать клоду или чату GP: "Сгенерируй для нас узел в N8N HTTP request, который будет делать запрос в Telegram, но, скорее всего, он будет выдавать много ошибок, да, потому что ему ещё надо тогда документацию CMN закидывать и так далее. Но мы можем писать и клоду, чату GPT всегда сгенерирует для нас CURL для отправки запросов в Telegram. Он делает для нас CURL. И мы этот CL просто вставляем в узел HTTP request. Вот здесь вот импорт CRL. Ставим CR. И у нас сразу всё автоматически возле HTTP requкст заполняется. Это очень крутой лайфхак. Пользуйтесь этим. И давайте я покажу вам любую документацию, где есть CRL. Ну, например, э что первое в голову приходит - это TAV. Tav - это такой сервис, который нужен специально, чтобы нашим lm large language model давать доступ в интернет. Можно, конечно же, просто перплексти подключить, можно включить просто режим вебсрча там в чат GPT, который тоже работает по API, а можно это сделать через табели, просто это дешевле будет. Здесь есть бесплатные тысячи кредитов, они всегда дают один кредит - это один запрос в интернет, получается. Поэтому можете этим пользоваться. Это прикольно. Запрос вставили, делается тоже через HTTP requкст, правильно? Ну, логично. И чтобы его сделать, нам нужна документация. Если мы нажмём API Playground, у нас вот будет тут написан код, как отправлять запросы, да, по API. Здесь мы можем, кстати, сразу всё настроить, типа хотим сделать search или и выбрать. Выбрать запрос, например, давайте напишем какой-нибуд запрос, типа капитализация компании Nvidia. Здесь просто как бы конструктор этих HTTP запросов сразу у них на сайте встроен. И тут нам показывают вот Python, JavaScript или Shell. мы через Python или JavaScript, естественно, отправлять не будем. Но если мы нажмём Shell Shell, то, видите, у нас показывается CRL запрос. И можем мы его просто скопировать, зайти в N8N, выбрать HTTP request, нажать import CURL command, и всё, у нас всё сразу заполнилось автоматически. У нас заполнился URL сам, у нас заполнился headers авторизация, у нас заполнился сам Jon. И теперь мы можем отправить этот запрос. И получили ответ. Много у кого у каких сервисов есть документация. Ну, понятно, что документация есть у всех. Я имею в виду то, что Curl много у кого указан. Даже если он не указан, просто просите клод это сделать. И клод это делает. Вот HTTP методы, те самые, которые у нас вот тут указывались. Пока что мы их игнорировали. Спойлер, когда вы делаете URL, HTTP метод у вас тоже правильно выбирается, зачем они нужны, кто они

### HTTP методы [3:30:44]

что это такое. Смотрите, по версии ClкТ, не гарантирую, что это правда, но, скорее всего, это правда. Это я анализировал популярность HTTP методов. Самый популярный HTTP метод - это get. То есть когда мы хотим что-то получить, 60-70% частота использования, это получение данных, самый частый метод. Пост - это когда мы хотим что-то отправить. Это второй по частоте создания отправка данных. Он используется в 20-25% случаев. Эти оба самые важные. Вот это и это. Это самый важный. Они будут использоваться оченьоченьочень часто. Вот эти, они не так важны. Ну, вы их будете использовать, возможно, никогда и не будете использовать. То есть меньше 5% случаев. Есть методпу, это для обновления ресурсов, есть Delete для удаления ресурсов, есть patch для частичного обновления, есть для проверка ресурсов без скачивания, есть option для технических запросов. А, ну и каждый сейчас подробнее разберём. Вот у нас есть get, метод get, который мы используем очень часто. Ну, метод getет используется для того, чтобы получить данные. Ну, давайте сначала это прочитаю. Простыми словами, ты просто смотришь товары в магазине, но ничего в них не меняешь. Техническое описание - это запрос на получение ресурса с сервера. Не изменяет состояние сервера. Безопасный метод. Данные передаются в URL через Query Parameters. В нём не используется Bди. Помните, я показывал то, что есть у HTP запроса Bди, то есть вот BДИ, то, что ниже идёт. В методете GET оно не используется. У нас запросы придутся через параметры. Вот пример, да, мы делаем getзапрос к какому-то магазину абстрактному и вот мы передаём параметры вопрос и дальше идёт usеer ID. Параметры я уже показал, как в Сimмон передавать, но это всегда то, что идёт после вопроса. Вот в методе GET это используется. Покупатель делает getзапрос в магазин бадов badshop. apai API. И вот параметр пишет категории витамина. Отправляет опять запрос магазина. Магазин ищет в базе в категории витамины, что-то находит и отправляет нам запрос обратно. Вот типа найдено три бада. витамин C- 500 руб., витамин D- 700 руб. и омега-3 1. 200 руб. Ну да, отправляет нам, получается, эти данные обратно пользователю. То есть метод get используется, чтобы посмотреть, что бы это ни было, чтобы получить как бы дан, то есть GET от английского получать, типа получить данные. Вот результат в корзине, там витамин группы ВЦ, креатин. Ну, например. Потом у нас есть метод пост. Метод пост - это когда мы создаём что-то новое, например. Ну, не обязательно, но один из вариантов. Ну, вот, например, мы отправляем запрос, только мы здесь уже данные передаём не через query параметры, не через вот то, что идёт в URL после вопроса, хотя так тоже можно делать в методе пост, но тем не менее здесь мы данные передаём через BДИ, то есть мы передаём product ID и количество. Вот он и создаёт запись. Говорим то, что мы добавляем в корзину витамин C в количестве двух штук. И нам отправляется ответка. То есть всегда в HTTP запросах. Вы отправляете запрос, вам всегда приходит ответ. В независимости от метода, от того, что вы делаете, от того, добавляете вы новые данные через метод пост или просто получаете данные через метод get. Вам всегда приходит какой-то ответ от сервера. Вот он отправляет ответ. То, что подтверждено, добавлено в корзину. Пост создать новый ресурс. Простыми словами, ты добавляешь бат витамин D в корзину или оформляешь заказ, создаётся что-то новое. Техническое описание. Отправка данных на сервер для создания нового ресурса. Данные передаются в теле запроса, в баде, то есть в BД, вот здесь вот, вот она Bди, send Body, это именно оно и есть. Вот мы отправляем CRL запрос пост, вот она ссылка https shop API card items и вот body запрос. В BДИ мы отправляем product ID, то есть ID продукта, количество и user ID. К нам в корзину добавляются бады, используются для форм отправки файлов. Вот это самые главные. На них нужно сконцентрировать внимание. Но про эти тоже можно знать, как бы, чтобы иметь в виду, зачем они нужны, но они прямо очень редко используются при работе с автоматизациями иишными. Метод пут. Вот тут он есть. Метод пТ. На примере бада всё показываем. Полностью заменяем товар в корзине. То есть это полностью заменить ресурс. Простыми словами, ты выкидываешь всю корзину и складываешь туда совершенно новые бады. Старая полностью стирается. То есть это методпут работает уже после того, допустим, как был метод пост, как вы что-то в корзину запихнули. Если она пустая, то методпу тоже сработает. Просто ничего удалять тогда не будет, потому что удалять-то нечего. Ой, мышку уронил. Техническое описание: полная замена существующего ресурса новыми данными. Идимпотентный - это значит то, что повторные запросы дают одинаковый результат. Требует передачи всех полей ресурса. То есть он требует передачи и quy параметров, и header, и бази. А, как вы помните, у нас HTP запрос, по сути, состоит из quy параметров, из хедера, из бади, из URL и из метода. Например, мы отправляем запрос добавить в корзину продукт ID, количество, цвет и размер. Если не указать какое-то поле, оно удалится. Важно, нужно отправлять все поля, даже неизменны. Если ресурса нет, может его создать. Полная замена, а не обновление. Есть метод patch. Меняем только количество бадов. Что он делает? Pch - это частично обновить ресурс. Простыми словами, ты меняешь только количество креатина с двух на пять штук. Остальные бады в корзине не трогаешь. Техническое описание частично обновление ресурса. Отправляется только изменяемые поля. Например, вот мы отправляем запрос, ну, отправляем только изменяемое полети и меняется только quantти. Остальные поля product ID, Color Siz остаются прежними. Важно отправляешь только то, что меняешь. Зачем это надо? Это экономить трафик. Не все это поддерживают. Это более современный подход, чем п. Потом есть метод delete - это удаляем из корзины навсегда. Мы убираем, например, креатин из корзины, он исчезает навсегда. Здесь можно удалить всю корзину, можно удалить конкретные товары из корзины. Это зависит от того, что указано в URL. Техническое описание, удаление указанного ресурса сервера. Например, отправляем метод Delete. Удалить item 789 или заказ 123. Важно обычно не требует базе. Иногда может возвращать статус 200 или 204 или 404 не существует. Про статусы, про коды вот эти вот HTTP мы сейчас тоже позже поговорим. Есть метод head - это проверяем, есть ли бат без загрузки. Похоже на метод get. Сейчас тоже вот написано здесь. Это же простыми словами, ты спрашиваешь: "А этот бат вообще есть в магазине без того, чтобы его показывать? " То есть, когда мы отправляем getзапросы, нам всегда отправляются данные о товаре, а здесь мы можем просто получить метаданные. Техническое описание идентичен, но возвращает только заголовки headers без тело ответа бади. Используется для проверки существования ресурса, получения размера файла, даты, изменения без загрузки всего контента. Ну, то есть проверить количество видов креатина в каком-то магазине бадов с помощью метода head. Потому что, если вы это сделаете с помощью методает, то он вам отправит все виды креатина, которые есть в метамагазине, допустим, их там 100 штук, и вам отправится просто огромный файл в ответ, а вам не нужно этого. Вы хотите экономить трафик. Ну вот пример то, что отправляем запрос, получаем ответ, а статус 200 ок. Длина контекст, application gson и так далее. Само содержимое продукта не передаётся. Важно это экономить трафик. Это мы проверяем существование без загрузки и узнаём размер файла перед скачиванием. Options это мы вообще узнаём, что можно сделать с корзиной. То есть мы с корзиной в магазине бадов, естественно, мы узнаём доступные методы. То есть мы спрашиваем у магазина: "А что я вообще могу тут сделать с корзиной? " И какое техническое описание? Запрос доступных HTTP методов для указанного ресурса. Например, мы отправляем запрос options. Вот он делает ответ. Короче, с помощью метода Options мы узнаём, какие HTTP методы мы вообще можем у отправлять на этот URL. То есть мы спрашиваем про вот эти вот все остальные HTTP методы. Можно ли их отправлять или нет. То есть типа небольшая документация нам приходит. Технический метод для проверки возможностей браузер часто отправляет автоматически. Поняли, что оно делает? Поняли, что нам это не пригодится. Спасибо. Едем дальше. Вот я даже тут написал. Теперь на реальном примере надо внутри HTTP requкст 8N продемонстрировать. Только пост и только get. Остальные тоже есть. Вы об этом знаете. Вот и хорошо. Но остальные, естественно, я не буду демонстрировать. Ещё важное замечание, не то чтобы эти методы прямо жёстко зафиксированы, есть разные API. Например, вот Телеграма, да, я вам показывал по сути сейчас метод пост, с помощью которого мы делаем запрос и отправляем вот сообщение от лица Telegramбота. Но прикол в том, то что мы тут можем выставить место метод get и произойдёт то же самое. То есть он тоже отправит сообщение. Они не забетонированы эти методы. Вот в конкретном случае в с API Телеграмом не имеет значения, какой метод, пост или get, но не везде так работает. Но в любом случае полезно знать то, что метод пост мы используем для того, чтобы что-то отправить на сервер. То есть по логике вещей здесь должен работать метод пост только в Телеграме, но это не так. В реальной жизни немножко по-другому. Сейчас я вам покажу там, где методы пост get уже имеют значение. Опять же отправляем запрос на сервера Open AI, выставляем метод пост, выставляем, ответ нам приходит. Всё нормально, всё пришло. Но, но, но почему у меня этот пост? Потому что мы отправляем сообщение на сервера Open. Y, то есть мы что-то туда постим, закидываем сообщение, но если мы поставим метод get, он нам выдаст ошибку. Он скажет: "Ой-ой-ой, а вы-то имели в виду, наверное, метод post get request. Either submit a post request or pass your arguments in the query string. Он, конечно, нам пишет то, что вы либо поменяете на постзапрос, либо поставьте, отставьте запрос get и напишите то, что вы написали в баде, то есть вот это вот. Напишите это тогда в query, но тогда тоже не сработает. Я могу вам это продемонстрировать. Мы это скопируем, уберём BДИ, поставим query, поставим jon, поставим то же самое и поставим метод get. Вот. Ну, как бы какой-то ответ пришёл, но что толку от этого ответа? Это не запрос к модельке. То есть в случае с ОП най уже так не работает, а в случае с Телеграмом работало. Мы отправляем через quy параметры какие-то данные, и тогда работают оба метода: и пост, и get. И запомните ещё то, что я это сказал, но вот акцентирую внимание, то, что в методе get мы можем отправлять данные через query параметры. Мы через метод get не отправляем данные через bodyди, через bodyди. Мы вот тут их не пишем. Если у нас метод get, мы пишем данные в базе, в теле запроса только если у нас пост. Метод пост я вам показал, отправили сообщение на сервера Open. Я А метод get, например, да, как же он может использоваться? А самый популярный способ использования метода GET - это вот это что? Или, например, вот это. Что я сейчас сделал? Я сейчас переходил на URL сайтов. И когда вы переходите на URL сайта, автоматически ваш браузер отправляет запрос с методом get. Смотрите, то же самое можно сделать через HTTP request на примере, ну, вот сайтавели того же, да? То есть мы просто пишем URL. Если мы откроем этот URL в браузере, у нас откроется сайт Tavвеля, но мы его пишем здесь в HTTP квесте. Выбираем метод get и нажимаем Execute Step. Что происходит? нам отправляется в ответ. Угадайте, что? HTML. HTML - это то, как выглядит любой сайт в интернете в виде кода. По факту мы можем взять этот HTML, а, отобразить его, и у нас будет виден интерфейс сайта. То есть в HTМле содержится информация о том, как должен выглядеть сайт. И по факту, когда вы переходите просто в браузере на сайт какой-нибудь, ну, вот. com, вам в ответ отправляется вот такой вот HTML-код. И браузер уже этот HTML-код преобразует в картинку какую-то, да, для сайта Tavли сейчас никакой разницы нет. То есть, что мы делаем запрос из N8N через этот HTTP request, что мы просто переходим через браузер по ссылке. com. Для него что-то то, что то - это одно и то же. Для него это значит то, что кто-то сделал HTTP запрос к его серверу. Вот вам пример GET, как он используется. Это уже не совсем API запрос, то есть это когда мы получаем какие-то данные. Мы сейчас ничего не отправили, никакие данные, мы ничего туда не постим, мы просто получаем какие-то данные. Ну и давайте я вам покажу то, что HTML, как работает HTML. Есть такой узел, а вот HTML generator HTML template. Обзор на него тоже есть. Угадайте, где в моих закрытых материалах под названием "Узлы дня", потому что там обзор на огромное количество узлов, в том числе даже на эти есть. Поэтому хотите разобраться лучше в N8N, подписывайтесь. Вот я попросил Cl сгенерировать очень простой Штимой. Как видите, конкретно этот HTML я сейчас отображать не буду, потому что он слишком большой и N8N может залагать, то есть всё-таки. Но принцип работы такой же. То есть тут тоже, видите, doc, type HTML и так далее. И здесь тоже написал doype Вот. Нажму Execute Step. Смотрите, что произойдёт. То есть по факту вот этот код а преобразуется вот в такую страницу. Вот так работает в целом весь интернет. Теперь мы переходим к

### HTTP статус коды [3:43:52]

HTTPстатус-кодам. HTTP статус коды - это коды состояния ответа сервера. Это трёхзначное число, которое сервер отправляет в ответе, чтобы сказать, что произошло с твоим запросом. Код 200 - это значит то, что всё отлично. Вот твои данные. Код 404 - это то, что ошибочка. Не нашёл то, что ты просил. Код 500. У меня сломалось что-то. А зачем нужны эти коды? Эти коды в N8N обычно отправляются, когда возникает ошибка. Ну вот, например, давайте продемонстрирую. Ну вот, например, делали мы запрос на сервера Open AI. Мы здесь выбирали метод пост. Когда мы выбирали метод пост, всё происходило нормально. Нам приходил ответ. Но если мы выбирали метод get, выдавалась ошибку. И в error details, вот error details он нам пишет, смотрите, from http request, он нам пишет error код 400, то есть он пишет нам код ошибки всегда. Поэтому эти коды ошибки просто знать о них тоже нужно. Что это такое? Каждый код значит какую-то свою ошибку, да? Там может быть ошибка авторизации, ошибка ещё чего-то. Это называются коды состояния HTTP, да? Есть коды и хорошие, там 200, например, но они, по-моему, не присылаются, да, в Nщё проверим. Ну вот когда всё нормально, а здесь нету, не пишется код состояния. Он, конечно, пишется там где-то под капотом, но NV8N для нас его скрывает. Он нам показывает только коды ошибочные. Это называется коды состояния HTTP. Всего есть стандартных 63 кода. По крайней мере, так сказал Клод. Я не знаю, сколько их. В любом случае их все запоминать не надо. Просто нужно знать следующее. Коды, которые начинаются с единички- это какие-то информационные, то, что типа запрос получен, сервер продолжает обработку. Коды, начинающиеся с двоечки - это то, что успех, то есть всё хорошо, запрос принят. Коды начинаются с троечки - это то, что перенаправление, то, что клиенту нужно выполнить дополнительное действие для завершения запроса. Самый частый, конечно же, коды у нас в N8N, который вы будете видеть - это код, начинающийся с четвёрочки и с пятёрочки. Четвёрочка - это ошибка клиента. Запрос не может выполнить из из-за ошибки на стороне клиента. То есть, если ошибка, что-то с вами не так. Как видите, когда мы здесь выбираем метод get, а метод get тут не поддерживается, нам говорят тут 400 ошибка, а это значит то, что что-то не так со стороны клиента. То есть это значит то, что мы что-то не так сделали в нашем HTTP запросе. А если пятёрочка, то это ошибка сервера. То есть это уже ошибка на стороне сервера. То есть мы всё сделали правильно, запрос валиден, сервер не смог его обработать. Вы - это клиент, если что. Ну да. А зачем это вообще надо знать? Зачем их надо знать? Чтобы вам пришла ошибка, к примеру, от Open AI, потому что, ну, когда вы делаете хорошие продакш системы, вам нужно заниматься обработкой ошибок. Приходит к вам ошибка от сервера Open AI. Самая банальная ошибка: закончились деньги на балансе. Да, тоже она будет начинаться с четвёрочки, потому что это будет ошибка авторизации. И вы знаете, как её обработать, что сделать. Вы знаете то, что в этом случае нужно отправить сообщение вам, уведомления в Telegram, и отправится сразу вся информация. Вы будете знать, в чём проблема. Ну и самые популярные коды состояния HTTP. Смотрите, успех 200. Ок, запрос выполнен успешно. 2011 created resource создан. 204 no content успешно, но без содержимого. Перенаправление вот эти я вообще никогда не видел в N8N. 301 moved permanently постоянный директ 302 found временный директ 304 notдиifй. Ресурс не изменился. Кэш. Вот эти уже да. Вот. Вот главное запомнить то, что начинающиеся с четвёрочки - это ошибки на вашей стороне. Начинающиеся с пятёрочки ошибки на стороне сервера. По ошибкам клиента 400. 400 BТqu, неверный запрос. То есть вот мы отправили, нам отправляют ошибку 400. Они говорят, у нас неверный запрос. 401 - это неверная авторизация, требует авторизации. 403 - это доступ запрещён. 404 found ресурс не найден. 429 слишком много запросов. То есть вы достигли лимита. Ошибки сервера - это, допустим, 500, внутренняя ошибка сервера Internal Server Error. 502 - это B gateway, ошибка шлюза. 503 Service Unavailable Service недоступен. 504 Gaway Timeout, Timeout шлюза. Вот она, замечательная иллюстрация от Nan Pro. HTTP статус коды. 200. Всё отлично. Вот данные 500 что-то сломалось, 404 не нашёл. Ну и так далее. Вот она красота какая, да? Давайте сделаем ошибку авторизации. То есть мы вы сделаем всё правильно. метод пост, но мы сделаем неправильную авторизацию. То есть мы вот здесь вот к нашему API ключу добавим вначале лишнюю буковку, например, буковку L и сделаем запрос. Сейчас он нам скажет то, что у вас неверный ключ, пожалуйста, неверный ключ, autorization failed. И вот написано 401 ошибка авторизации в ошибке сервера я сейчас не смогу сделать. Это где мне взять такой сервер, чтобы он выдал ошибку? Давайте сделаем, попробуем. Ресурс не найден. 404 not found. Давайте попробуем здесь всё сделать правильно. А вот здесь добавить какую-нибудь лишнюю буковку в URL, да? Not found. Вот 404 resource not found. То есть я непонятно, куда отправляю запрос. И мне так говорят: "Ты вообще куда запрос отправляешь? " Непонятно. Отправка запросов через code.

### Отправка HTTP запросов через узел code [3:48:51]

С помощью узла код и helpers HTP request можно делать HTTP запросы. Зачем это надо? Для лучшей обработки ошибок, если вы кодер. Но в таком случае недоступны будут криеншелы N8N и придётся писать через редис, к примеру, опи ключи. Эта информация нужна вам, если вы кодер. А если вы ничего не поняли, неважно. Вам HTTP реквеста хватит с головой. Не думайте вообще про то, что можно делать опять запрос через узел код. Но вот для тех, кто умеет кодить, для них это может быть полезно реально. Но да, тут не буду доступны креденшелы, то есть вот эти вот криншилы, которые я показывал в API, то есть вот авторизация удобная через менеджер пароле, и она не будет доступна. То есть придётся вводить всё сразу внутри. придётся с этим быть более осторожным с вашими с вашей авторизацией, с вашими ключами, но можно будет писать там через ready, да, ключи. А показываю, как это делать через узел код. Например, мы отправляем тот же опять запрос, как я отправлял через HTP request. Вот он и есть, собственно. И вот мы тут пишем visel htp request. Без этого работать не будет, как я говорил. Вот она опасность. В чём и заключается, то, что вы напрямую здесь прописываете ваш API ключ. То есть вы у вас нет возможности его как-то подтянуть через менеджер пароли. То есть тут есть вариант его реально только через дис потягивать как-то. То есть до этого поставить узел Ries, доставать ваш пароль из рейдиса и закидывать его сюда. Отправляем запрос через узел Cry. Получаем ответ. Даваем ошибочку какую-нибудь специально в опе ключа. Вот тут вот. Ну да, здесь вот обработка ошибок может быть удобнее. Теперь узел

### Вебхук. Как работает? [3:50:26]

Webhook. Webхуhook - это обратный звонок от сервиса. Вместо того, чтобы ты постоянно спрашивал, есть новости, сервис сам сообщает тебе, когда что-то произошло. Вот прекрасная демонстрация от Nanны Pro. Без вебху, постоянные запросы. Готово, готово. А всё горит, всё летит. Пламя сервер горит. А с вебхуком мы просто ждём, ничего не делаем. И когда что-то происходит, нам сервер сам отправляет запрос: событие произошло. Аналогия. Без вебху ты каждые 5 минут звонишь в пиццерию. Моя пицца готова. А с вебхуком пиццерия сама звонит тебе вот так и говорит: "Пицца готова". И тогда отлично, она к тебе приезжает. Разница в вебху и смотрите, - это когда ты сам идёшь к другу и спрашиваешь что-то. Ты отправляешь запрос на сервер- это большой компьютер, и ждёшь ответ. Ты сам начинаешь разговор. Здесь я просто совместно с Хлодом писал, и я ему сообщил, что нужно сделать очень понятное объяснение, чтобы понял даже третьеклассник. Да, это правда так было. Например, кто-то купил твои узлы дня в Телеграме. Может быть, даже вы сделаете это. Сервер Телеграма сам присылает тебе сообщение. Ура, продажа. Ты не спрашивал телеграма, он сам тебе сообщил. Вебху - это когда друг сам прибегает к тебе и говорит важную новость. Ты ничего не спрашивал, просто ждал. Когда что-то случилось, сервер сам отправляет тебе данные на твой специальный адрес webhook URL. Главное отличие в API: ты сам идёшь и спрашиваешь. Webhook, другой сервис, сам приходит к тебе и говорит, когда что-то произошло. То есть тот же Telegram, мы не бегаем туда-сюда и не спрашиваем: "Отправили нам сообщение, отправили сообщение". Хотя так в целом можно было бы сделать. Там стоит вебху, и когда сообщение правда отправляется, Telegram-Тригр активируется, то есть вебHook активируется. Да, не забываем подписываться на Telegram-канал, там все ссылки и материалы к ролику. И ссылки, Ну да, не понимаю, с какой стороны сначала читать. Надо вот это с, видимо, с этой. Как это работает в Onv CM? NV CM создаёт уникальный URL адрес, например, your webhook ABC123. Внешний сервис отправляет данные на этот URL, например, Stripe Telegram, форма на сайте CRM. Но перед этим, чтобы внешний сервис знал, куда отправлять данные, мы должны задать Webхуhook. То есть мы должны отправить, допустим, Телеграму какой-то URL, чтобы он туда нам отправлял сообщения. N8N получает данные и запускает Workflow автоматически без твоего участия. Смотрите, встроенный триггер N8N, например, Telegram Trigger, как я показывал в начале видео, там Slackт Trigger, они регистрируют Webхуhook автоматически. То есть вы подключаете, когда вы подключаете аккаунт через криенлы, то есть вот у нас есть Telegram Trigger, то есть тут мы подключаем какой-то credential, нажимаем create new credential. Вот мы тут вводим какие-то какой-то токен телеграмовский. Нажимаем сейв. Всё отобразилось зелёным. Всё хорошо. Мы ввели опять ключ. А что произошло под капотом? Под капотом наш N8N сам отправил телеграмму, а и сказал, типа, задаём новый webхуhook, когда приходит новое сообщение от бота, отправляй данные на этот URL. Если мы это делаем через узел Webхуhook, то мы должны это сделать сами. Как это делается? Ты создаёшь webhook узел в N8N, копируешь URL, идёшь в настройки сервиса, находишь раздел Webhook или integrations, вставляешь туда свой URL, выбираешь, какие события отправлять и сохраняешь. Либо можно задать Webhook через httpреquest. Так в большинстве случаев и делается. Только после этого твой сервис начинает присылать данные на твой вебху. Что касается HTTP методов, а здесь используется в основном пост, а иногда get. Остальные очень редко используются, я их никогда не использовал. И важно, что HTTP методы в вебхуке инвертированы. То есть, смотрите, вот стоит у нас webhooken. Вот он webhook, да? Вот, вот тоже webhook Telegram Trigger. Здесь у нас выбран метод. Видите, методы тоже есть get, Post и так далее. Понятно, что мы пользуемся в основном пост и get. Смотрите, они инвертированы. То есть, когда мы в HTTP реквесте выбирали метод пост, это значит то, что мы от нашего сервера NVMN отправляли что-то куда-то какие-то данные. А если мы в вебхоке отправляем, выбираем метод пост, то это значит то, что мы готовы принять эти данные, то здесь он инвертируется. Поэтому в основном в вебху используется метод пост, потому что в основном на webхуhook нам отправляют данные. Если мы используем метод get, то мы сами с вебху потом отправляем какие-то данные. Сейчас я это покажу. Покажу, как задать вебху в Телеграме через узел Webхуhook. Яндекс не буду показывать, а то я что-то долго снимаю уже, извините. Вот у нас есть Telegram-тригр. Вот у нас есть Webhook. То же самое мы хотим сделать через Webhook. Задать Telegramгр. Нам нужно сделать новый узел HTP request. Как раз для привязки делаем его. А, и в URL ставим вот эти вот данные. Вот, кстати, у нас идут параметры, да, после знака вопрос. Можем его в целом тогда указать в параметрах. Давайте так и сделаем. Попрактикуем немножко то, что изучили. Вот здесь вот просто ставим URL, и у нас здесь будет ссылка на wehook. То есть это специально URL для того, чтобы задать webhook. Видите, написано set webhook. Значит, задать webhooks set буквально, значит, задать. Нам нужен токен бота. Для тона бота, как обычно, открываем ботфадера. Там можем бота нового создать. Можем нового не создавать. Нажимаем Create bot и копируем наш API ключик. Ну и сразу зайдём в этого бота. Вот наш токен бота. Мы его ставим вот сюда. Готово. То есть получается опять Telegram бот, токенenбот сайт Webhook. Зайдём в webook. В чём разница, кстати, test URL и production URL? Test URL работает только в режиме, когда вы вот здесь нажимаете, ну, на эту кнопочку, у вас тогда активируется свой webхhook. А prodдакш режим - это когда вы вот опубликовали проект, там сделали пабishш и когда у вас проект работает как бы в продакшене. Ну, логично. Копируем тест URL нашего вебху. Здесь в URL указывается ваш адрес сервера. Вы копируете тот URL, куда вам Telegram будет отправлять уведомления, когда что-то произошло. Когда к боту пришло сообщение, Telegram моментально отправит вам уведомление. И заходим обратно в задачу webhook. И вот здесь его в QY параметрах добавляете вашу ссылку. Готово. Теперь мы делаем следующее. Жмём просто Execute Step. И webхуhook сайт, пожалуйста. Замечательно, всё хорошо. На этот вебху нам сейчас будут приходить сообщения от Телеграма. Давайте я это продемонстрирую. Execute Workflow. Наш webхуhook ждёт уведомления. Теперь мы нажимаем начать. Пожалуйста. Пришло уведомление. От кого пришло? От меня. Владимира и автоматизация. Про путь я не показал. Смотрите, дело в том то, что мы вот сейчас взяли, просто скопировали тест URL и её задали. Но мы-то можем её менять. А как мы можем её менять? Видите, здесь указан Path путь. Если мы его уберём и напишем буковку А, видите, поменялось URL поменялся. Мы можем писать удобный для нас путь. Например, можно написать Webhook Telegram. И вот, пожалуйста, у нас теперь новый URL. То есть мы для каждого вебхука, например, у вас есть один вебхук для Телеграма, другой там ЯндексДиска и так далее, чтобы они как-то между собой отличались, потому что начало URL у них-то будет одинаковое, а вот путь, то, что идёт дальше, у них будет отличаться. Вы можете его сами менять. Он может, ну, обычно он ставится автоматически, какой-то другой. Ну, и лучше тут прописать что-то более мудрённое, чтобы было побезопаснее, чтобы ваш URL вашего вебху никто особо не знал. Создадим workflow. Ещё один. Сделаем здесь вебху. В этом вебху мы пропишем свой путь, например, тест. Только латинскими буквами тут можно. То есть вот у нас есть сейчас webhook. И возьмём URL, скопируем. Готово. А теперь мы создадим ещё один workflow в соседнем окне. А вот мы создали И тут мы добавим узел HTTP request. И с этого HTTP реквеста мы будем отправлять к нам запрос на Webхуhook с методом Ну давайте пост поставим, так будет проще. Здесь поставим пост. Если у нас там стоит пост, то и тут тоже нужен пост. Вот здесь мы просто прописали URL и метод пост. Теперь мы вот тут нажимаем Execute Workflow кнопочку. Всё, мы активировали Webhook. Он сейчас слушает все события. Да. Если бы мы сделали продакшн-режим и сразу его активировали, он бы постоянно слушал события. Но так как у нас тестовый режим, нам нужно нажать на кнопку, чтобы он слушал события. Заходим сюда, где мы указали URL нашего вебху. Просто жмём execute workflow, пожалуйста. То есть мы сейчас с помощью одного workflow inv активировали другой workflow invent. Вот такая вот магия произошла. Я вам больше скажу, это-то у нас два Workfall на одном сервере, но в данном случае уже не имеет значения, на разных у вас серверах N8N или нет. То есть вы можете с одного workflow на одном сервере в Nem отправить точно также запрос к другому workflow на другом сервере N8N. Что ещё мы можем сделать прикольного? Какой трюк провести? зайти в webhook, поставить метод get, скопировать тест URL, активировать этот wehook, просто вставить эту ссылку, которую мы только что скопировали в окне браузера. Поставили её, там пишут сообщение: "Message workflow started. " Пожалуйста, мы активировали только что из нашего браузера Webhook. То есть мы просто перешли по ссылке в браузере, у нас активировался webhook магия. Ну и вот нам отправилось в ответ headers параметры query body. Там всякие значения тоже внутри есть в этих объектах. Кстати, почему мы выбрали метод get? Потому что мы сейчас активировали через браузер. Каждый раз, когда вы открываете что-то в окне браузера, какую-то ссылку, у вас автоматически стоит метод get в браузере. То есть вы автоматически отправляете запрос к серверу, типа я хочу от тебя что-то получить. Что мы ещё можем сделать? Мы можем выбрать respond to webhook, поставить using respond to webhook node. Здесь взять ноду под названием respond to webhook. в нодеренту webhook выбрать текст и в тексте прописать какой-нибудь HTML. И я попросил клод написать мне HTML, которую мы отправляем в ответ. Сюда ставим HTML. Мы сейчас вставим этот же URL опять же в браузере, и к нам придёт, получается, от браузера запрос, то, что мы от нашего вебху как хотим что-то получить. И в ответ на этот запрос мы что сделаем? Мы выбрали using respond to webhook node. То есть мы добавили специальную ноду respond to webhook и в ней мы уже поставили наш текст и вставили HTML. Я уже показал вам, что такое HTML. И значит, мы, по сути, создали сайт на базе N8N. То есть сейчас мы откро откроем этот URL, нам в ответ придёт вот этот HTML, который мы прописали. Ну и у нас отобразится сайт в браузере. Давайте посмотрим, как это работает. Открываем. Пожалуйста. У нас появился сайт на базе N8 Man. А если мы вернёмся в Nm, он видим то, что у нас активировались эти два узла. Лучшие узлы по лучшим ценам. Я попросил его создавить по узлам дня htмэльку, но он что-то не понял. Подшипников узел, редукторный узел, муфта соединительная. Нет, узлы N8N имеется в виду. И ещё можно делать, что в вебхуке можно настраивать аутентификацию, чтобы все подряд к вам не обращались. Мы здесь можем настроить аутентификацию. Есть разные типы аутентификации. Все их подробно разбираю, естественно, в своих узлах дня, потому что там есть подробный разбор узела Webhook, узлаook и вот этой опции тоже и так далее. Можно выбрать тип аутентификации. Давайте выберем Basic Oath. Это стандартная аутентификация с логином и паролем. Напишем логин Володя. Пароль тоже напишем Володя. Такой же. А не на английском. Нет. Ну давайте вот так напишем Володья. Да. И вот тут Володья. В режиме FIX, кстати, пароль всегда в криеншилах тотчиками отображается. Если вы нажмёте Expression, то он будет отображаться как буковки, то есть видно его будет. Сохраняем. Замечательно. Мы добавили аутентификацию. Теперь можем опять нажать Execute Workflow, перезагрузить эту страницу. И вот нас уже требуют логин и пароль. То есть нас уже не пускают просто так. И нам нужно ввести логин и пароль. Давайте введём специально неправильно. Он нам скажет: Authorization data is wrong. Ну, вы поняли, да, как это работает. Чтобы все подряд к вам не могли на вебху что-то закинуть. Во-первых, можно усложнить ему вот путь, как я говорил, path вот этот вот, сделать его более сложным, чтобы сложнее было вообще URL вашего вебхука узнать. И, во-вторых, можно добавить аутентификацию. Дальше у нас идут

### Credentials. Менеджер паролей в n8n [4:02:29]

криеншелы. Кридены в NV8N - это механизм безопасного хранения учётных данных для подключения к внешним сервисам и API. То есть это менеджер пароли такой удобный. По сути, это место, где вы один раз сохраняете ключи, логины, пароли, ол токены, секретные ключи, данные для подключения к базам данных. Зачем они нужны? Ради безопасности данные хранятся в зашифрованном виде, а не в открытом тексте внутри workflow. Покажи, что значит не в защищённом виде. Ну, смотрите, в есть вот credentials, кнопочка credential. Тут и сохраняются все наши криенлы. Можем их прямо здесь создавать. Например, хотим создать gemini credential. Вот. Вот тут мы вводим, получается, опять ключ и сохраняем. И у нас, а, как бы вот эти криен, он и является менеджером паролей в N8N. То есть каждый раз, когда мы отправляем запрос через HTTP request либо через узел там GMI, который, я напомню, является по сути тоже HTTP реквестом, просто преднастроенным. А, отправляем мы вот какой-то запрос, анализировать аудио. Можем можем, кстати, их ещё отсюда добавлять, да? То есть просто вот тут нажимать и добавлять их. Они там добавятся в общее меню. Потом в итоге мы отправляем запрос. Мы просто выбираем тут credential. Всё. Также в узле HTTP request тоже можно отправлять credential. Хотим сделать опять запрос к серверам Гугла. И чтобы второй раз не вводить вот тут вот API Гугла и ключ гугла, мы не хотим этого делать. Мы уже это один раз добавили в credential внутри N8N. И поэтому можем здесь выбрать а predefined credential type и здесь написать GMI. И вот выбрать Google Gemini. И тут у нас, допустим, ну сейчас я ничего не добавил, но, допустим, у нас тут введён какой-то опять ключ уже и так далее. То есть нам не придётся всё заново вводить. Во-первых, это экономия времени, потому что мы один раз добавляем, а потом используем. Во-вторых, это безопасность, потому что потом вы, допустим, скачиваете ваш workflow или копируете его и отдаёте кому-то, и тогда в вашем workкфлоу не отображаются ваши пароли и ключи. А если вы ваш пароль или ключ отправляете через хедеры, вот тут вот его прописываете, а потом скачиваете workflow и кому-то отправляете, тогда будут это видеть все. Кто увидит ваш workflow, вы тогда просто сольёте ваши пароли. Не очень это приятная ситуация.

### Методы аутентификации в API [4:04:37]

Методы аутентификации VPI. Что это такое? Когда я показывал узел Webhook, здесь я показывал методы аутентификации. Вот мы могли выставить. Есть basic off, есть header off, есть GT off. И смотрите, какие есть. Есть barer off. Это которые используется в 60% случаев. Наверное, эта статистика с помощью клода опять же сделана или perplexity, поэтому не факт, что она прямо точно правильная, но по крайней мере это близко к правде. Современные API в основном используют bearer of. В Гугле это есть, в Openi есть, в Гитхабе и так далее. Вот. Openi только что показывал, как мы делали HTP запросы. Мы писали brare и дальше писали опять ключ. Вот это он и есть. Bare off. Есть all. Это более сложный, то есть он в Гугле, например, используется, когда вы подключаете кредитшилу Гугла, но он тоже часто используется в 25% случаев. Basic - это логин и пароль, типичный, когда вводите в 10% случаев. Остальные уже гораздо реже. Есть GVT 3% случаев, Off 1 вообще рядко 1%, header off 0,5%, digest OF вообще даже не знаю, что это 0,3%. Query off 0,2%. 85% всех современных API используют Barrier Off или OS 2. Barrier OS доминирует. Это стандарт De fact. All 2 обязательно при работе с соцсетями и крупными платформами. Basic остаётся актуальным только для внутренних систем. Ну, создаёте вы какие-то внутренние системы и делаете аутентификацию. Там остальные методы практически не используются в новых проектах. Barer off - это способ подтвердить свою личность в интернете. Ну, понятно, да? То есть ты отправляешь специальный код токен, длинная строга разных символов. Мы отправляем этот код вместе с запросом в сервере. Сервер понимает, что это правильный код, и даёт тебе доступ. Это самый популярный метод аутентификации в интернете. Его используют OpenI, GitHub, Notion, Airta Table, Clot и так далее. Подключать сервис я сейчас через это не буду, потому что я это уже показывал. Perer off. Ключ ставится в authorization header, да? То есть, как я говорил, когда вы делаете HTTP запрос, вы, а если у вас идентификация идёт через Bareer, то вы её отправляете через headers, то есть вот через вот это вот. Но в N8N можно это делать сразу вот через аутентификацию вот здесь, как я говорил, это безопаснее. О 2. О 2 используется, например, для Гугла. Вот есть сервисы Гугла именно AI. типа иишная там используется barrier, но если у нас сервис Гугла, например, Google календарь, Google Drive, там Google Disk, Google таблицу, тут у нас all 2 используется. Вот нажимаем Google Drive, нажимаем Create New Creedential. И видите, здесь нам нужно делать аутентификацию через All 2, через client ID, Client Secret и так далее. На схемке пользователь нажимает войти через приложение Google. Приложение направляет на страницу входа Google. Мы заходим, вводим логин пароль на сайте Google. Google показывает, какие разрешения нужны приложению. Мы соглашаемся. Google даёт код авторизации приложению. Приложение обменивает код на токен доступа у Гугла. И Google выдаёт токен приложению. Приложение использует токен для запросов Google API. Приложение получает данные пользователя. Короче, это безопасный метод аутентификации. Он, по идее, более безопасен, чем обычный barrier, потому что в barриере там а просто длинный ключ идёт, набор символов, а тут прямо схема мудрённая, и это безопаснее. И подписывайтесь на Telegram-канал, там все ссылки, материалы к ролику. Это правда. И узлы дня тоже покупайте. А есть ещё Basic old. Это вот простой способ аутификации, то есть когда мы отправляем просто логин и пароль. Ну да, usзернейм и пароль в каждом запросе. При Basic CF пароль передаётся в каждом запросе. Это небезопасно, если передавать без https. Поэтому basic off используется только для внутренних API или когда есть шифрование. Ввомен ты просто вводишь usрнеame и пароль в поле базиков, имен сам всё кодирует, отправляет заголовки. Я это вам показывал сейчас через webook узлы, да, когда мы вот сделали небольшой сайт. Почему beer off ключ безопаснее Basic off? Почему бер безопаснее? Потому что он отделён от аккаунта. То есть вы ключи создаёте внутри аккаунта, то есть вы можете их менять. Оплюч не связан с твоим основным паролем, если его крадут аккаунт безопасности. Вот, например, у меня есть Open AI. Тут у меня дофига разных опять ключей. Я могу их просто взять и удалить, да, какой-нибудь. Поэтому спалил кто-то мой ключ, я его удалил и всё, никаких проблем нет. На сервисах вообще везде, где доступны API ключи, там Opener, как я говорил, польза AI, Clot Gemini, там везде такие же опять ключи есть. Суть в том то, что если их спалили, можно удалить, создать новый. Можно делать несколько ключей для разных приложений, можно давать ограниченные права, то есть readли и так далее, но, по-моему, вот для AI так не работает. То есть на Open вы не можете давать какие-то ограниченные права, но он более случайный. Ключ длиннее и энтропинее, чем обычный пароль пользователя. Ну, кстати, пожалуйста, перезапускал клод, мне выдал ошибку 502 BG gateway. А это ошибка сервера Bait Getaway ошибка шлюза. Главное отличие от Basic off. Basic off ты придаёшь реальный логин и пароль от аккаунта. Просто в base 64 это такой формат просто специальный. А в Ber отдельный токен ключи. Поехали. Свиток LLM. Что такое

### Что такое LLM? Как они работают? [4:09:39]

LLM? LM - это large language model. Это большая языковая модель, нейронная сеть, обученная на огромных объёмах текста для понимания и генерации человеческого языка. К ним относятся Клоч, GPT, Грок, Мимистраль и другие модели, с которыми вы привыкли общаться в чате. Все они предназначены для генерации текста и ведения диалога с пользователями. И важно заметить то, что именно для этого они создавались. Везде, где я буду говорить модель, я имею в виду LLM. То есть запомнили? LM. LM мы можем подтягивать по API, как это мы делаем внутри N8N, или мы можем общаться с ней в интерфейсе. Как работают lm? Очень прощённое объяснение сейчас будет, но нам и не нужно прямо подробное объяснение. Мы не мы де мы не делаем свои лэмки, мы ими пользуемся. По сути, это продвинутый предсказатель текста. Она генерирует наиболее вероятный следующий токен. Токен - это кусочек слова или слова. Например, вы пишете: "Пойду в магазин и куплю". А модель вам отвечает хлеб. То есть вот типа Т9 на максималках. Пойду в магазин и куплю и выдаёт нам значение хлеб. Как она это делает? Модель обучалась на огромном количестве текстов. Она запомнила не просто какие слова часто идут вместе, но и сложные закономерности. Про что обычно пишут в магазинах, что покупают, как строятся предложения. Она учитывает весь контекст, а не только последнее слово. Поэтому она знает, что здесь подойдут хлеб, молоко, бананы. А прыгать вряд ли. Вот, пожалуйста, прыгать вряд ли подходит, а вот йогурт, молоко или хлеб больше подходит. В основе работы лежит предсказание наиболее вероятного следующего токена на основе контекста предыдущих токенов. Модель генерирует текст последовательно, токен за токеном. Это тоже важно. LM не понимают текст как люди. Они находят статистические паттерны в данных и генерируют текст на их основе. Хотя результат часто выглядит осмысленным. Многие не знают, как работают LLM. вообще не дадут себе в этом учёта. Но стоит это понимать, то, что LM - это не что-то осмысленное, то есть это не такой же интеллект, как у человека. Это, ну, по факту, это не является искусственным интеллектом. Это большая языковая модель - это предсказатель следующего токена. Всё. Там заложены всякие крутые математические формулы, с помощью которых это всё происходит. В реальной жизни всё гораздо сложнее. Это упрощённое объяснение, но по сути так оно и есть. Ещё прошу заметить то, что LM я его везде показываю как чёрный ящик, но в моём случае он такой скорее коричнево-бежевый какой-то. Почему? Потому что мы не знаем, как она работает и никто не знает, как она работает. Для вас секрет открою. Знают инженеры, которые создают lm, там инженеры Openная и так далее, они знают, как создать lm, но как именно она работает, почему она выдаёт тот или иной результат, никто не знает. Поэтому это чёрный ящик. То есть мы просто закидываем туда input и просто получаем outp. Никто не знает, как именно это происходит. Ну и в целом нам и не надо знать, как она работает. Ну это просто интересная деталь, да, то, что - это чёрный ящик. Не забываем про узлы дня, мои закрытые материалы. Если вы хотите разобраться в N8N более подробно, в том числе и про лмки, покупайте мои материалы, вы разберётесь в N8N. Мы разберём там уже разобрали, там лежат материалы с разборами узлов, которые вы будете использовать в 99% автоматизации. Ну реально. Поэтому переходите, покупайте узлы. Параметры

### Параметры LLM [4:12:55]

LLM. Вы, наверное, видели, как Open AI говорили о параметрах новых чат GPT. Теперь они уже, кстати, про это не говорят, да? Раньше они постоянно делали, но они говорили там типа GPT3 175 млрд параметров, а GPT5 где-то 2,5 триллин. А нет, GPT5 они уже не говорили. Ну вот когда была GPT3, они такие: "Вау, 175 млрд параметров". Появилось там G GPT 35, они там тоже говорили, в GPT4 тоже говорили, сейчас они уже забили. Но по оценкам по этих экспертов где-то 2 тире5 триллин параметров, то есть, ну, гораздо больше, чем было раньше. Ну, то есть вот, да, для сравнения GPT3 маленькая, GPT5 большая. Что вообще такое параметры? Параметры - это количество её знаний в числах. То есть количество знаний lм в числах. Например, есть слово код, с ним связаны слова мяукает, пушистый. И каждый из этих слов является параметром. Вот, например. То есть GPT3 сильно меньше знает, чем GPT5, но внутри LLM лежит огромное количество знаний про всё, что угодно. когда её обучали, бралит и закидывали в неё. Редиit - это такая соцсеть, если вы не знаете, где там кто-то задаёт вопрос, ну, такой форум, и люди на него отвечают, отвечают. То есть там всё, что угодно уже спрашивали и на всё, что угодно отвечали, и весь рейдит закинули в GPT, когда её обучали. Это я про говорю сейчас про Chat GPT, потому что Chat GPT - это была, вы знаете, наверное, да, чат GPT - это была первая модель, которая получила такой огромный коммерческий успех. с чата GPT вообще пошла популяризация нейросетей, вот это всего остального. Весь этот бум, весь этот хайп именно с чата GPT начался. Так получилось, что при увеличение размера модели, то есть когда в неё просто закидывали всё больше и больше параметров, ну не просто, но упрощённо говоря, оказалось то, что у модели возникают новые способности, которые не были явно заложены при обучении, то есть способность рассуждать, решать задачи, следовать инструкциям. Это называется emergent abilities. Например, самый яркий пример. LM никто не учил кодить или круто переводить языки, но сейчас мы что видим, что они очень круто кодят. Ну, её учили отвечать человеку на естественном языке. Это всё. Её не учили кодить. Почему я акцентирую внимание на кодинге? Потому что сейчас мы видим то, что лэмки невероятно хорошо кодят. Это все заметили, то, что она умеет хорошо кодить, и начали сейчас вливать просто огромные деньги именно в то, чтобы Неросейти всё круче и круче кодили, если вы замечали. Ну, вон куча продуктов появилась. Там CLД код, а от Openй тоже как-то называется эта штука, чтобы кодить. От кого только нет сейчас этих всех специальных там моделей для кодинга и так далее. У LLM есть существенный недостаток под названием галлюцинации. Генерация правдоподобной, но ложной информации. В основе её архитектуры заложено писать наиболее вероятное следующее слово, исходя из контекста. Тут невозможно сделать так, чтобы всегда была только правдивая инфа. Суть в том то, что у них такая архитектура. Они просто предсказывают наиболее вероятное следующее слово, исходя из контекста. Не совсем более вероятное, одно из э вероятных, да, там всё равно это варьируется. В такой ситуации вы никак не научите её говорить правдивую информацию, потому что это противоречит самой сути лмок, потому что у него задача-то другая. Токен. Токен - это

### Токены и температура в LLM [4:15:56]

базовая единица текста, с которым работает lм. В разных моделях одно и то же слово разбира разбивается на разное количество разных токенов, и это влияет на стоимость и так далее. Токены - это либо слова, либо какие-то части слов. Вот я токены нарисовал. То есть вот лмка, типа, вот у неё есть токен, она, исходя из этого токена, предсказывает следующий токен, а потом вот исходя из этих своих двух токенов, она предсказывает уже следующий токен. То есть как она и работает. Смотрите, ещё в чём прикол. Русский текст требует где-то в полтора-два раза больше токенов, чем английский, потому что lm обучались на английском языке. Поэтому для продакшена, где вам важно экономить деньги, разумно использовать английский язык в промтах. Возможно, не только русский текст требует в полтора-два раза больше токенов. Я просто про другие не в курсе. Ну, там китайский, наверное, тоже больше требуют. Какой-нибудь испанский, Но основной язык ЛLМ - это английский, и это её родной язык. Я слышал мнение то, что на английском она лучше работает, но незначительно она лучше работает на английском, но вот разница в стоимости токенов, она действительно есть. Потом есть у нас температура. Температура - это параметр, который контролирует случайности ответов модели. Как я говорил, она предсказывает следующий токен. Есть токен, она предсказывает следующий. На основе контекста вот этих двух она предсказывает ещё следующий и так далее. Но прикол в том то, что она всё равно исходит из вероятности. Она не выбирает всегда какой-то жёсткий фиксированный токен. Есть некая вероятность. Низкая температура, она в обычно обозначается 0 тире. 03. Температура не настраивается в интерфейсе клода или чата GPT. Температура настраивается всегда по API. То есть в N8N мы используем лмки, мы можем настраивать температуру. 0 тире 0,3 - это предсказуемая температура, точные ответы. Высокая температура - это от полутора до двух. Вообще, наверное, от одного. Ладно, давайте так, даже от 0,7 до двух. Что-то я переборщил тут. Это креативные, разнообразные ответы нададёт. Если проще, это ручка креативности. Чем выше, тем более неожиданный ответ. Если точнее, то это параметр, который изменяет распределение вероятности токена. Когда температура низкая, вероятность распределяется, допустим, среди этих вот двух основных токенов, да? Допустим, тут 50% вероятности, тут 40% вероятности, а у всех остальных токенов, ну, понятно, на практике их там гораздо больше, их не три штуки. У всех остальных на них распределяется там 10% вероятности, и тогда понятно то, что скорее всего выберется вот этот токен, либо вот этот, 50, либо 40%. Но когда мы перераспределяем вероятность, получается то, что здесь мы уменьшаем. То есть здесь, допустим, мы оставляем 30% вероятности, а здесь оставляем 25% вероятности. Остальные 45% мы перераспределяем уже между другими токенами. И получается то, что вероятность того, то что модель выберет неординарный токен для текущего контекста, она повышается. То есть модель может выбрать теперь какой-то более непредсказуемый токен. И поэтому, чем больше температура, тем модель более креативная, то есть тем более она не детерминированная, непредсказуемая. Детерминированная - это имеется в виду предсказуемый последовательный процесс, то есть который можно реально предвидеть. Поэтому, к примеру, в иагентах используется температура поменьше, потому что там, ну, не нужна сильная креативность. Но если вы делаете какой-то там творческий текст, то можно сделать температуру повыше. Покажи на практике высокую температуру. Я не про болезнь. Такая вот шутка. Я нашёл специально на Ороутере а модельку дешёвую. Называется она мистраль NEM. Поставил ограничение по токенам, сейчас скажу почему. И поставил температуру 0,4. низкая температура, значит, модель будет вести себя адекватно и предсказуемо. То есть мы ей напишем: "Привет". Что она нам ответит? Привет. Как я могу вам помочь? Ты кто? Я языковая модель, разработана в результате сотрудничества мистраль. Но если мы поставим температуру два, то есть максимальное значение температуры, значит, у нас она будет действовать максимально хаотично. Если мы напишем ей слово привет, что произойдёт? Это просто набор символов. То есть она пишет на разных языках, на английском, на каком-то, на испанском, на, ну, это испанский, наверное, а это хинди и китайский язык ещё. Почему так произошло? Потому что у неё вероятность между следующим токеном очень сильно распределилась. Совершенно рандомные токены начали появляться. Если вы не знали, а модель не работает только на одном языке. У неё каждый следующий токен может быть на любом языке. На русском может быть токен, может быть на английском, может быть на китайском и так далее. Она их привязывает по семантическим значениям. То есть у неё, а, слова, вот как было у нас в примере, а, кот мяукает пушистое животное, оно всё где-то рядом находится. То есть эти параметры, они где-то рядом находятся внутри языковой модели. Но при этом там же рядом находится слово на английском и там код по-испански, кот по-китайски и так далее. Имя укает по-испански, по-китайски и всё, что связано с котом. То есть у неё нет разделения на языки. Она всё это воспринимает как э отдельные параметры. Я специально выбрал дешёвую модель, потому что на ней это прямо максимально наглядно видно. Может, это нормальная модель, я не знаю. Ну вот на ней хорошо отчудливо видно то, что при повышении температуры у неё сильно меняется распределение токенов. Вот давайте поставим температуру поменьше, там один. Вот всё, что выше одного, скорее всего, уже будет странно. Обычно в модели так работает. Всё, что выше температур один, там уже такой результат бессмысленный какой-то. Поэтому, кстати, многие ограничивают по API регулировку температуры вплоть до одного. Вот написали ей: "Привет", она ответила на английском. Почему я поставил ограничения по токенам? То есть мы можем выставить по API ограничения по токенам. Тут ещё всякие штуки есть, я их подробно разбираю как раз в своих закрытых материалах узлах дня. Поэтому, ребята, вы знаете, что делать. Вы знаете, где их покупать. В Telegram-канале в закрепе смотрите информацию. ограничение на максимальное количество токенов, потому что если мы ставим большую температуру, она начинает писать нам больше символов, и в итоге она дольше генерирует ответы и выдаёт дольше ответ, чтобы просто долго не ждать и ограничиваю это. А если мы ставим обычную нормальную температуру, то она ведёт себя более адекватно, выдаёт более ограниченное количество токенов, то есть она раньше останавливается. На монтаже дозаписываю, на самом деле, почему модель при высокой температуре дольше генерирует ответ. Дело в том, то что существует специальный токен End of Sequence. И он является таким же токеном наравне с остальными токенами. То есть, допустим, с тем же токеном код или укает. Температура, а напрямую влияет, в том числе и на этот токен. И когда температура низкая, то модель заканчивает свой ответ в логичных местах. А если температура высокая, то и, э, конец её ответа тоже становится более непредсказуемым. Поэтому она может либо обрывать ответ, либо что происходит сейчас в моём случае, она генерирует его слишком долго. Поэтому я и ставлю ограничения по количествам токенов.

### Что такое эмбеддинги [4:22:30]

Касательно эмбедингов, тех самых эмбедингов, которые используются ещё и в reg. Прог мы тоже поговорим сегодня. Ll не воспринимают слова, они переводят всё в числа. Eeding. Дин - это векторное представление текста в многомерном пространстве. Обычно сотни тысяч измерений. Смотрите, LM не понимают слова, понимают числа. Динг выглядит вот так. То есть, если вы помните, смотрели мой ролик прог, там была эта информация. Ну, сегодня я всё равно это затрону, поэтому, да, смотрим дальше. Ну, то есть для неё любое слово выглядит как очень длинная как бы последовательность таких чисел вектор. Ключевое свойство. Похожие по смыслу слова имеют близкие векторы, что позволяет модели работать с семантикой, смыслами. Те же самые бединги используются в Rake, в векторных базах данных. Специальные bed модели работают с теми жедингами. Вообще embeded модель - это часть от lm. Про рек чуть позже поговорим. Да, кстати, интересно то, что модель - это часть lm. Буквально внутри lлэмки находится edдинг модель. Ну, я называю её embeded модель. Смотрите, как это работает. То есть у нас в векторном представлении векторное представление - это многомерное представление, то есть вектора. Если вы помните, что такое вектора из школы, там есть какие-то значения. Вот здесь, по-моему, трёхмерное представление, а здесь их гораздо больше. Вектора, вот они числа, они как-то располагаются в можно их на графике отобразить. И вот есть слова, например, код кошка, они находятся рядом, потому что у них а значения векторные близкие друг к другу. То есть это чистая математика. Никакой магии тут нет. Из-за этого она понимает то, что это схожие семантические слова, и она работает с семантикой. И вот собака тоже где-то рядом находится. А машина в то время машина находится вообще хрен пойми где, на другом конце. Именно поэтому, если речь идёт про котов, вряд ли она возьмёт и вкинет внезапно слово машина, потому что машина - это вообще очень далёкий мбединг. Он не близкий по смыслу к этим всем. Но если мы увеличиваем температуру, да, то он может внезапно взять и вкинуть машину. Красивая иллюстрация. Спасибо. Она Bananнаan Pro.

### Ризонинг (думающие) LLM [4:24:27]

Смотрите, теперь речь проризаниing модели. Что такое модели думающий моделью? Наверное, вы видели. Вот вам даже в клоде покажу. Вот у нас есть клод. Можно нажать на плюсик. А нет, можно нажать вот сюда вот и включить финкинг. То есть мы из модели делаем думающую модель. Reasoning модели. думающий модели. Это лм, который решают сложные задачи через несколько шагов логического рассуждения, вместо того, чтобы сразу выдавать ответ. Собственно говоря, главное отличие обычная LLM спрашивает вопрос, она сразу генерирует ответ. Reasoning модель вопрос, она думает, генерирует промежуточные шаги, а потом выдаёт ответ. Вот, например, в клозе. Давай, чтобы векторы были в неком пространстве внутри куба хз и без комментариев. Это я делал вот это изображение как раз пром для него. писал для Nanбаan Pro. Показано T process. Давайте я вам тут покажу. Ой, T process, господи. Thought process. Привет, как дела? А если у нас включено thinking режим, что она делает? Она сначала думает. Она такая: "Ага, the user is greeting me in Russian. They said, "Привет, hello, hi and как дела? How you? How's going? That's a casual friendly greeting. " И потом только она отвечает: "Если мы отключаем режим думания, то у неё нет промежуточных токен. Пишем то же самое: "Привет, как дела? " И она нам начнёт сразу отвечать: "Привет", всё отлично, спасибо, что спросил. У неё есть специальная кошка, в котором она предгенерирует токены перед тем, как дать нам ответ. Предгенерирует она их не просто так. Здесь у неё заложен как бы пром то, что ей надо подумать, поразмышлять. Именно когда создавали LM, оказалось то, что если вот действительно просить lм перед этим подумать, то она выдаёт более осмысленный ответ. То есть она выдаёт лучше результаты. Ещё в чём прикол? то, что у модели можно включить размышляние, а у Open AI, например, есть отдельные думающие модели, а есть обычные. Thinking модели используют дополнительное время на обдумывание перед ответом. То есть они генеряют внутренние цепочки рассуждений, они проверяют и исправляют свои промежуточные выводы, можно сказать, и рефлексируют. И особенно эффективно в математике, программирования и логике. И очень важно, многие любят пихать везде ризанинг модели, а делать так не надо. Нужно, чтобы модель была оптимальна по цене качества. Ризанинг модели нужны для самых сложных задач, к примеру, для мозгов и агента. какого-то сложного ей агента. Это правда. То, что я вот замечал, да, я и сам раньше так делал, а вот брал и просто запихивал какие-то супер самые крутые модели, которые я знаю, и ставил себе в N8N. Хотя зачастую это бессмысленно. Что касается вот N8 Man, есть ещё Think Tool специальный - это инструмент, который даёт ей агенту возможность подумать вслух перед действием. То есть это специальный инструмент, с помощью которого МКА генерирует дополнительное количество токенов. Например, задача найди статью про N8N и создать из него презентацию сфи. Агент думает: "Мне нужен план поискать свежую статью про nm, извлечь ключевую тему, структурировать слайды, создать файл". То есть он как бы там расписывает себя план и так далее. Он перед этим генерирует дополнительные токены. Мы, конечно же, можем подумать то, что сейчас мы сюда подключим любую модель, которая по факту не являетсягмоделью, не является думающей моделью. Сделаем из неё думающую модель. Но нет, это не так, потому что разница в том, что ризанинг-модели специально обучаются для глубоких пошаговых рассуждений, а здесь мы просто работаем с промтом. То есть мы просим через промт обычную модель мыслить. Это, конечно, тоже может эффективно работать, но это не то же самое, что модели. Покажи tool на практике. Ну, давайте покажу. Тут мы можем его добавить. Он называется. Вот он. F tool. Ну, здесь дефолтный промт есть. То есть давайте его переведём. То есть используйте инструмент, чтобы подумать о чём-то. Он не получит новую информацию, не заменит, не изменит базу данных, а просто добавит мысль в журнал. Используте, когда необходимо сложное обсуждение или некоторая кэшпа-мячь. Нужно прописать то, что он должен её использовать в системном промте. Зачем? Зайдём внутрь, нажмём Add option system message и тут напишем: "Всегда используй Pink Tool перед каждым своим ответом". Вот. Вот видите, он уже использовал Tool. С помощью него он провёл некоторый мыслительный процесс. Не забываем про узлы дня, уже который раз напоминаю, но я специально для себя напоминалки раскидал. Я уже про них недавно говорил, поэтому покупайте материалы, разбирайтесь в Н. Теперь мы переходим к

### Контекстное окно LLM. Очень важная тема [4:28:40]

оченьоченьочень важной теме, которая является проблемой LLM, одной из основных. И прикол в том то, что по сути вся наша работа с LLM, всё наше взаимодействие с LLM, всё, что мы делаем с ЛM, всё, что мы настраиваем через N8N, это, по сути, всё является работой с контекстным окном. Поэтому разбираем, что такое контекстное окно. Контекстное окно context window - это ограничение на количество токенов, которые LLM может обработать за один раз. У современных моделей оно достигает 1 тире2 млн токенов. В клод 4 по пять можно включить 1 млн токенов. Вы можете подумать то, что мы сейчас отправляем запрос к лоду, и мы задействуем его контекстное окно, да? То есть вы думаете, ограничение 1 млн токенов. Сколько токенов в слове к лоду? Наверное, один или полтора. А у нас ещё остаётся 999. 999. И вы думаете: "Ну, в чём тогда проблема? Ну, что он какое огромное. Какая тут может быть проблема? " А сейчас разберёмся. Не всё так просто. Прикол в том то, что контекстное окно выглядит следующим образом. Вот наш запрос. И у нас в запросе всегда отправляется системный промт. Потом идёт история диалога, потому что история диалога, она всегда отправляется вместе с запросом. Потом идут файлы, которые тоже тратят токены. Потом, если у нас и агент, то это вызов тулов и результаты вызова тулов. А это тоже очень много токенов. Если мы берём историю диалога памяти, то у нас идут здесь, я включил сюда, во-первых, текущий запрос. То есть вот наш текущий запрос, он по факту вон небольшая часть от всего того, что мы отправляем в лэмку. Генерируемый ответ lm и рассуждение модели тоже бывают скрыты от пользователей. Они тоже в этом всём участвуют. То есть у нас уже огромная арава всего подряд. То есть это серьёзно? Серьёзно. А начнём с того, что ни одна LLM не помнит ваш диалог полностью. Она вообще никак не помнит ваш диалог. Вот я пример показываю. Привет, как дела? Помнишь, а в растерянности сидит. Вот у него глаза типа и не понимает, что делать. Визуальная метафора: Прошлые сообщения исчезают. LлM толь видит только текущий момент. На самом деле, каждое ваше сообщение - это отдельный запрос, который содержит историю диалога внутри. На его основе модель продолжает текст. Абсолютно каждый запрос в ЛМ, он сепарирован от остальных. Когда вы пишете даже внутри Клода что-нибудь: "Привет, я Вова, Володя". Вот этот запрос, который мы сейчас отправили, и то, что нам отвечает Клод, и то, что мы писали ему выше, они между собой никак на самом деле не связаны. Никак. Нету у модели никакой памяти. Чтобы решить эту проблему и чтобы модель не забывала каждый раз, что происходит, придумали следующее делать. Придумали брать и с каждым запросом, так как каждый запрос сепарирован от остальных, запихивать историю диалога. Когда мы доправили: "Привет, я Володя", к Клоду отправилось не только наше сообщение: "Привет, я Володя". На самом деле ему ещё отправилось его предыдущий ответ и моё сообщение ещё и вот вплоть до сюда. То есть отправляется весь диалог. Это всё занимает токены. Когда у нас идёт история диалога, у модели просто появляется дополнительный контекст, и она начинает что-то отвечать, потому что она работает с вероятностью. То есть, чем больше мы ей даём контекст какой-то, тем лучше она отвечает нам следующим токеном. Модель работает без сохранения состояния между запросами. Она каждый раз заново обрабатывает всю историю, как будто видит её впервые. Да. Иллюзию памяти создаёт интерфейс Clчаpt, который сохраняет всю переписку и отправляет её с каждым новым сообщением. Я это рассказал только что. Модель предсказывает следующий токен за токеном, опираясь на весь доступный контекст. Никакой реальной памяти между вызовами нет. Это простое текстовое продолжение на основе переданных данных. Многие думают, что чат GPT можно обучить на своих данных. Есть куча реусов про это, но по факту вы забьёте Ой, контекст достаточно быстро, если будете скармливать ему инфоби. В своё время очень много было всяких рилсов. Да, наверное, я не сейчас есть. Я просто перестал их смотреть, если честно. Про обучение чата GPT. Идея была такая, то что ты переписываешься с чатом GPT, отправляешь ему каждый свой день там, что ты делал и так далее, и чат GPT начинает знать тебя всё лучше и лучше, и он потом твоей жизнью начнёт управлять. Нет, потому что есть ограничение как бы контекстного окна. Если вы будете отправлять туда слишком много информации, контекстное окно забьётся очень быстро, и он будет выдавать просто какую-то фигню, он будет выда будет тупить и так далее. То есть, ну, там много есть проблем контекстного окна. Сейчас про это покажу. Вы чабучить на ваших данных. Вы можете это сделать, но вы можете это сделать с помощью файнтюнинга. И других вариантов у вас в целом нет. Именно дообучить модель. Сейчас поговорим тоже про это. LM не обучается. Если вы думаете, что CH GPT помнит о вас инфу и значит, что он обучился. Нет, это не так. Эта инфа просто отправляется ему каждый раз с каждым новым запросом. И это даже не обучает того, скорее его тупее делает со временем. Ну, после определённой планки. А ещёчат GPT отдельно выписывает какие-то явные факты о вас. Это уже продвинутая работа с контекстом. Там используются разные инструменты, не только это. Ну да, чтобы контекст не забивать, там внутри чата GPT разработчики настроили, чтобы он делал некоторые саморизации. Да, и это, кстати, разумный выход. То есть вместо того, чтобы в одном диалоге постоянно общаться, вы делаете самаризации того, что было в диалоге. Тогда это будет лучше работать. Просто говорите, типа, сделай мне краткое самари, краткую выжимку того, что о чём мы тут общались, э, таким образом, чтобы я мог это закинуть другой лэмки и продолжить с ней общение, как будто бы новая лэмка - это ты. По факту модель обучается один раз, это когда её создают. А ещё можно сделать файнтюнинг, это до обучения модели, это тонкая настройка, про это чуть позже поговорим. Но другого способа у нас с вами дообучить модель, кроме как с помощью фантюнинга, нет. Хотя, если вы разработчик НТропик, у вас другая ситуация. Ну да. Наверное, вы можете там что-то намудрить, возможно, модель с нуля создать, не знаю. Хотя вряд ли меня разработчики анроop смотрят, но если вы меня смотрите, ребята, уважение вам. Если из Open AI, тоже уважение. Если Да, даже если вы Алису создаёте, почему даже Алиса тоже прикольная штука, тоже уважение всем разработчикам лмок уважение. Не знаю, зачем вы это смотрите, но ладно. Контекст переполнен. Как понять, что контекст переполнен? Ответ обрывается на полусловия. Такое редко бывает. Это прямо надо сильно контекст переполнить. Ну вот модель забывает начало разговора или середину разговора. Тоже такое бывает. Это прямо база. Ну я думаю, вы с таким сталкивались, если вы активно пользуетесь лмками, там чатом GPT пользовались, например, много и писали ему что-то там писали, писали в диалоге, а потом он в какой-то момент почему-то начинал забывать, что вы ему скинули какой-то файл. То есть он начинает отвечать уже не на основе этого файла какую-то бред говорить. ты говоришь ему: "А почему ты не отвечаешь на основе файла? " Или забывает реально ваш диалог, а начинает повторяться, игнорирует инструкции из начала диалога. Вот это очень часто происходит. То есть он просто, вы ему прописали системные какие-то инструкции или вначале что-то прописали, он их начинает игнорировать, запрашивает файлы, которые уже открывала лмка. На самом деле, забить контекст гораздо проще, чем вы думаете. К примеру, в иагентах это очень просто происходит, в разы быстрее, чем в обычном диалоге с LLM. Почему так? Потому что они работают с тулами, и каждый вызов тулов - это огромное количество токенов. Самый частый пример - это tool websitarch, который тратит дофига токенов и сохраняет в себе очень грязную инфу. И это всё лежит в контекстном окне. Режим websitarch в чате GPT, вклоде и так далее захломляет контекстное окно, потому что webarch делается не очень-то и чисто, на самом деле, в том плане, что лэмка подтягивает данные сайтов, но помимо текстовых данных она подтягивает HTML-код, она подтягивает какую-то техническую информацию. Ну, то есть вот я вам показывал HTML, ээ, и там есть очень много технической информации на сайте, то есть не того, что нужно давать lм в контекст. И она это всё подтягивает, смотрит страницы сайтов, кучу оттуда забирает текста. Это всё лежит в контекстном окне, и это всё очень сильно захломляется. То есть, если вы в диалоге с лмкой ещё и Tool Web search используете, ну, допустим, в интерфейсе с чатом GPT, то тогда вообще, ну, ужас. Надо очень часто менять эти диалоги. С этим надо как-то работать. Многие сервисы, такие как GPT или Clot или Дemни автоматически сжимают старые части диалога при пере при переполнении контекстного окна, делают саморизацию, применяют другие различные техники, да? То есть, когда мы в интерфейсе общаемся с клодом, с чатом GPT, он под капотом, конечно же, всё это делает. Ну, контекстно окно всё равно переполняется, но разработчики пытаются как-то это нивелировать, пытаются что-то с этим сделать. Если вы пользуетесь ЛМ в интерфейсе, то для вас это значит, что надо чаще начинать новые диалоги, чаще делать их саморизации. Но мы работаем не в обычном интерфейсе, мы разработчики, можно сказать. Мы работаем в N8N, мы зовём lm PI. Поэтому для нас существует контекст инжиниринг. Нам вот эти все приколы различные техники, нам уже надо их самостоятельно выполнять. Поэтому контекст инжениринг, ребята, я думаю, вы про него слышали. Сейчас мы будем про него много говорить, потому что это база. Подписывайтесь на Telegram-канал, там все ссылки и материалы к ролику. Я напоминаю то, что стоит подписаться на Telegram-канал. Рекламная пауза перед контекст инженирингом. И, конечно же, ребята, не забываем покупать узлы дня, чтобы разобраться в NN получше. Вот оно.

### Контекст Инжиниринг. Что это такое? [4:38:07]

Контекст инжиниринг. Слово-то какое популярное. Контекстнжиниринг - это профессиональное управление контекстом. Контекстн инженерия - это умение правильно подготовить и перед тем, как задать ему вопрос. Вы даёте модели нужную информацию заранее, чтобы она могла дать хороший ответ. Это не то же самое, что промт инженеринг. Будем сейчас об этом тоже разговаривать. Важно не только то, что вы спросили, но и что модель знала до вашего вопроса. Вообще то, что вы спросили, неважно. Ну, менее важно, чем то, что модель знала до вашего вопроса. Раньше, да, был промт инженеринг. Все ходили и говорили: "Вау, промт инженерия - это так важно задавать там правильные подсказки вашей lm". Но промнженерия - это не для разработчиков, а мы с вами разработчики, потому что мы в N8N разрабатываем наши автоматизации. Промт инженерия - это вообще фигня полная, если честно. Раньше это было более актуально, потому что надо было придумывать, как создавать такие запросы лэмки, чтобы она отвечала лучше. Сейчас лэмки уже поумнели достаточно хорошо, и не так важно, на самом деле, какой именно запрос вы е отправляете. То есть раньше вот это вот было типа нельзя отправлять лмки, привет, помоги мне с физикой. Надо было отправлять запрос, типа, привет, представь, что ты профессиональный физик Эйнштейн. Ты знаешь это, это специализируешься на этом этом. Огромное полотно текста пишете лмке в одном промте, чтобы она вам нормально ответила. Сейчас по факту мы видим то, что это уже не так важно. Важно контекст, важно то, что модель знала до вашего вопроса. Промт инженерия - это как правильно спросить, сформулировать вопрос типа волшебный фразы, типа думай пошагово, которые, ну, нет смысла уже это писать. Они и так все думают пошагово уже, в них это вшито. А вот контекст инженерия - это что дать модели заранее, какую информацию подготовить, какие данные показать до вопроса. Ну, прекрасная иллюстрация. Load the context first. Then ask question, get better answer. Проблема-то, конечно, загрузить этот контекст. тоже сейчас рассказывать буду про это. Представьте, вы просите М составить меню на ужин. Плохо только промт. Вы предложи мне меню на ужин. М предлагает блюда с морипродуктами, орехами, на готовку которых нужно 2 часа. А у вас там, не знаю, аллергия на морепродукты и орехи. И времени у вас нет 2 часа. И, конечно же, можно было подумать: "Так, надо просто хороший запрос отправить, типа, не предложи мне ужин". А, типа, предложи мне ужин, э, учитывая то, что у меня мало времени, у меня аллергия и так далее. Не совсем так. Смотрите, как это должно работать в идеале с контекстом. Хорошо. LM уже знает, у вас аллергия на морепродукты и орехи. В холодильнике есть курица, овощи, рис, у вас только 30 минут на готовку. Вы предпочитаете азиатскую кухню. И вы пишите такой же запрос: "Предложи меню на ужин". Но предлагает быстрый там стир три, стир фрай из с курицей с овощами и рисом. Наша задача как N майнеров - это подготовить контекст. Допустим, мы делаем какого-то лэмку, там кому-то там в бизнес внедряем. Мы же не будем требовать от всех подряд, чтобы они правильно отправляли запрос. Нет, потому что они и не должны так делать. Мы должны подготовить контекст. Мы должны дать лмке всю необходимую информацию, чтобы она отвечала на вопросы. Разница не в том, как вы спросили, а в том, что и знал заранее. Контекст инженерия - это не про как спросить, а про что подготовить. Чем лучше вы подготовите информацию для Eи AI, тем лучше будет результат. Промт инжиниринг - это какая-то фигня, честно говоря. Раскрой тут. Ну, я уже раскрыл выше. Результат поведения и агент или просто лм определяется контекстом. Поэтому управление контекстом - это важно. Важно вообще всё, что касается контекстного окна и как вы им управляете. Это, ну, это главная наша задача, по сути, вот при работе с алмками. Мы делаем и автоматизации, и агентов. Наша главная задача это управлять контекстным окном. Ключевой навык в работе с ЛМ сейчас - это работа с контекстом. Про это говорили ведущие разработчики в сфере AI. А Андрей Карпатья, один из основателей Open AI, ну, известный чел, я думаю, вы про него слышали. Он активно популяризовал слоган Котекст из All Unit. была известная статья attте is all Unit, а он его вот так вот переделал под контекст is all unit.

### Способы управления контекстом LLM [4:42:30]

Контекст инжениринг в реальной жизни. Способ управления контекстом. Да, понятно, что это важно. Понятно, что контекст захломляется. Как нам им управлять? А вот они способы. Ну вот я выделил четыре. Можно сказать, что incontext learning входит внутрь остальных, но сейчас давайте разберём. Четыре способа. Incxt learning, reg, find tuning и архитектура. Строим дома. Ладно, нет, не строим мы дома. Что такое incext learning? Эта необходимая информация встраивается непосредственно в текст запроса. Как это выглядит? Короче, в системном промте мы это прописываем. То есть системный промт мы пишем, отвечая на основе этой информации. 25 гвоздей стоит 55 руб., а если покупаешь пять гвоздей, стоит будет 20 руб. И пользователь спрашивает: "Сколько стоит 25 гвоздей? " А он пишет: "5 руб. Откуда он это знает? " Он это знает, потому что мы это заранее прописали в системном промте. Вот системный промт, я напоминаю, это вот эта вот штучка вот system message. Главный прикол в том, то что это идеал. Таким образом будет отвечать максимально качественно. Если мы хотим получить суперкрутой ответ, нам в идеале, конечно, всё впихнуть сразу в системный промт. Но как бы основной прикол в том, то что это невозможно. Вот какие есть недостатки. то, что контекст ограничен, места мало, лимит определяется конкретной lm, если впихнуть много информации, начинает всё ломаться, как было описано выше. Да, ребята, есть у меня видео, называется полный гай наг. Посмотрите его. Ну, вы разберётесь в теме РГ, если вы посмотрите это видео. Да, по факту мы увеличиваем системный промт. Из-за этого захламляется контекст, модель начинает работать хуже. Это не будет дорого в том случае, если мы сможем сделать кэширование, но на кэширование тоже есть свои ограничения. То есть, чтобы кэширование работало, там нужно, чтобы писали хотя бы раз в час вашего бота. Про это было в гайте про рег полный гай нак видео. Но если не пишут хотя бы раз в час, то это будет дороже. Вот есть, второй метод. RG - это Retrieval augmented generation. Это метод, при котором LLM сначала находит релевантную информацию в базе документах, в данных, в огромной базе данных какой-то, а затем генерирует ответ на основе найденного контекста. А зачем это надо? А для работы с большими объёмами информации, чтобы lm отвечала на основе данных вашей компании, например. Есть у вас там данные вашей компании, там огромная база данных, но вы её никогда не упихнёте в контексте LLM. Никогда, учитывая ещё всё то остальное, что у нас есть. то, что у нас есть история зоолога, системный промт и вот это всё остальное, то, что у нас есть проблема захломления контекста, а вы не впихнёте всю вашу базу данных туда. У вас там база данных может состоять там условно, ну, 100 млн токенов, да, эквивалент будет. Вот если перевести её в токены, вашу базу данных, будет 100 млн токенов или даже больше. А есть ограничение LLM в миллион токенов. Нужно ж нам ещё пространство для диалога какое-то вставлять. Поэтому вы это вы не сможете это запихнуть в контекст. Но при этом нужно, чтобы лмка отвечала на основе всей этой информации. И вот для этого нужен. Но минус в том, что нужно собрать знания определённым образом векторную базу данных. А это сложно. И поэтому существует огромное количество реализации РГ. Под конкретную задачу нужен конкретный рег. А ещё время тратится на поиск. И ответ LLM не моментальный. Ну да, там, потому что надо пойти в векторной базе, найти это время занимает дополнительное. LM отвечает не моментально. Это влияет в какой-то степени на user experience, но тем не менее это выход из ситуации. рная тема, прямо максимально обширная тема. Можно канал на YouTube делать только про рег. Это, кстати, правда. У меня ролики про рег заходили хорошо. Есть различные гфреймворки, готовые решения. Есть различные векторные базы данных и так далее. Смотрите мой полный гайд на. Да, смотрите, там разберётесь. У меня помимо полного гайда на R есть видео про граф, про Light R, да, по большей части видео про Ceg Knowledge Augmented Generation. И это тоже варианты реализации REG. R - это retrieval augmented generation, это значит, а, поисковая дополненная генерация. То есть мы на основе поиска внутри векторной базы данных дополняем наш, а, запрос. не обязательно внутри векторной базы данных, потому что вот есть йтрек, там работает и векторная база данных, и графовая база данных. В КГ работает тоже и векторная, и графовая база данных. То есть там очень много разных подходов, чтобы решить эту проблему, потому что, ну, это очень распространённый подход. А есть ещё findтюнинг. А вот файтюнинг - это уже до обучения модели. То есть во всех высших случаях мы модель не меняли, вообще никак не меняли. То есть сама модель оставалась по сути такой же. Мы просто работали с её контекстом. А вот с помощью фантюнинга мы можем добучать модель. С помощью него мы можем запихнуть новые знания в LLM, скорректировать тон ответов модели. И, кстати, можно фантюнить даже модели. Не знаю, зачем я это вкинул. Bed модели - это которые врег используются для преобразования текста вектора, где применяется фантюнинг в узко специализированных областях, в медицине, права, финансы и так далее, когда есть требования к специфичному формату ответов и редко меняющимся данным. Недостатки. Надо готовить данные перед фантюнингом. Хотя врек тоже надо, но тут сложнее подготовка, да, тут надо готовить данные, запариваться. Есть риск переобучить, тогда прежние знания, которые были до фантюнинга, потеряются. То есть у вас буквально модель, ну, может перестать обладать какими-то знаниями, которыми она обладает по дефолту. И данные забетонированы. То есть, если что-то изменилось, у вас, допустим, строительная компания, меняется в ней документация каждые 24 часа и ну всё. То есть вы один раз обучили модель, а что каждый раздра переобучивать? Нет, это не выход. Тут нужен. Вот это минус фантюнинга, то, что данные забетонированы, если что-то изменилось, поменять уже нельзя, не для динамических данных. А, ну зато быстро отвечает, так как теперь эти знания - это часть модели. То есть это фантюнинг - это единственный способ реально дообучить вашу модель. Смотрите мой полный гайд на рек. Опять написано, да, ребята, там про это всё подробно есть. Вот про это есть, про фантюнинг, про regг и так далее. Изменения архитектуры. Один из способов решить проблему контекста - это использовать контекст разных. Выстроить архитектуру вn таким образом, чтобы задействовать несколько lm. Ну, один из вариантов, приведи тут пример, мне лень писать сейчас. Оу, вот это я сам на себя задачу повесил я из прошлого. А мы можем работать с архитектурой. Нам же не обязательно использовать только одну LLM, вот, например, как здесь, которая должна отвечать на все подряд вопросы. Мы же можем использовать несколько. То есть мы можем сделать, а, вот тут вот узел под названием Tex classifier. Я рассказывал про него. Мы подключаем к нему lлэмку и добавляем тут несколько категорий. Ну, давайте допишем название, типа коты, собаки. Да, кстати, если что, можно прямо вот такмку подсоединять. Можно, конечно, новую его добавить. Вот так вот сделать, отдельно добавить, но в целом разницы никакой нет. Это имеет смысл, если вы вот тут хотите поставить просто другую модель, вот здесь вот выставить, как мы можем работать. Тут у нас определяется запрос пользователя. Он про котов или про собак? В том случае, если про собак, то мы отправляем наш запрос к специальной lm. Ну, то, что тут AI agent написано, вы не обращаете внимания. По факту мы тулы не подключили, значит, это не AI agent, значит, это сейчас просто обычная языковая модель. То есть запрос мы отправляем, а вот тут уже тут тоже ламка, она решает, куда отправляется запрос. куда он идёт, к собакам или котам? Про кого идёт речь? Допустим, про собак. И вот здесь у нас тогда в этой ланке информация только про собак. То есть тут она знает всё про собак. У неё тут в контекстном окне это написано в системном промте. А тут у неё в системном промкте написано про котов. Мы бы могли сделать одну L и скормить ей сразу информацию и про собак, и про котов, и отправлять сюда запросы. Но тогда у нас контекстное окно переполняется быстрее. А сейчас мы с помощью архитектуры, просто с помощью, не знаю, некого разветвления делаем так. что у нас используется просто разный М. И разный ЛМ, значит, разные контекстные окна используются. Примерно так это работает. Можно больше, чем два их ставить и так далее. Тут уже зависит от проекта, что вы придумаете. Ну и гибридный подход. Понятно то, что это всё можно вместе сочетать и так обычно и делают. Можно использовать гибридные подходы между кфантюнингом и контекст ленинг. Например, корректируем тон модели, специфику ответов для юридической конторы с помощью фантюнинга. Ищем по базе данных с прецедентами с помощью reg. Но для простых и часто задаваемых вопросов используем incontext learning плюс кэширование, да? То есть мы можем сделать отдельную лмку для быстро задаваемых вопросов. Я вообще не знаю, надо ли искать по базе данных с прецедентами. Это я просто что-то написал. Я не разбираюсь в юриспруденции, ребята. И вы можете подумать: "Ну, раз всё так сложно, то есть раз у нас столько махинаций для работы с контекстом, почему бы не создать с нуля". обучить сразу на нужных данных. По крайней мере, я так думал, когда не шарил. Я реально так думал. Я думал, а в чём проблема? Ладно, я так не думал. У меня была идея типа, ну, а может быть свою обучить, но посоветовавшись с Клодом, я понял то, что это очень дорого. 1. 7 2,5 млрд. Дело в том, что это очень дорого. Вот, например, аналитики HSBC, я не знаю, кто это, оценивают общую стоимость обучения GPT5 в диапазоне от 1,7 до 2,5 млрд. Во. Ну, понятно, что нам не нужна такая же мощная модель, как GPT5, но диапазон стоимости там всё равно огромный. Так никто не делает. Ну и так никто не делает, потому что зачем? Это очень дорого. Узлы дня, мои закрытые материалы крутые, ребята. Не забываем покупать доступ. Мне уже самому смешно, но это реально хорошие материалы. Они помогут вам разобраться в NN ещё лучше. Покупайте к ним доступ. Гарантия возврата денег есть. Есть отзывы, почитайте в канале. Все ссылки в телеграме в закрепе. А теперь мы

### Откуда взялась проблема контекстного окна? [4:52:26]

разберём, откуда вообще взялась проблема контекстного окна. Ну, она взялась из архитектуры LLM, из того, как LM устроена, из её сути. ВсеM, которые сейчас есть на рынке, работают на архитектуре трансформеров. Например, чаge GPT generative pretrained transформе, да, то есть архитектура трансформеровмок. Не имеет значения, какие ещё существуют архитектуры, но важно вот что. В трансформерах учитывается связь каждого токена с каждым. А это значит, что если задействуется 1. 000 токенов, то операций уже будет миллион токенов, потому что каждый с каждым связан. 1. 000 у на 1. 000. Если 1. 00, то уже 2,25 млн. Если 2. 000 токенов, то уже 4 млн операций. Было 1. 000 токенов, стало 2. 000. А операций в четыре раза больше. Вот почему длинный контекст для LLM не очень хорошо. Ответ генерируется дольше, задействуется больше мощности сервера. Если у вас лostт модель, надо за этим следить. А, кстати, поэтому отпут дороже инпута, да, если вы замечали, на всех сайтах, а не только здесь, вы будете замечать следующую штучку. Смотрите, ни хрена себе, тут стоит оно что-то. Это прямо дорогая модель. Ну неважно, везде вы будете замечать следующее, то, что input дороже, чем output, причём сильно. Любую модель возьмёте. Xiaomi есть. Господи, откуда? Вот есть GPT 5. 1 кодекс, да? Видите, input он прямо сильно дешевле, чем output. Outpро, для того, чтобы сделать output, как я говорю, требуется уже гораздо больше операций. И это дороже для провайдеров LLM, это дороже для Open для клода и так далее, потому что им нужно задействовать больше мощности своих серверов. Если у вас self-hosted модель, то есть модель, которая размещена на ваших серверах, то за этим тоже надо следить, потому что чем больше токенов, тем больше мощности сервера будут задействоваться полому. Может быть, со временем, конечно, сделают неросети на гибридной архитектуре, то есть трансформер плюс ещё что-то, потому что это проблема трансформеров. Но проблема контекстного окна всё ещё не решена. Ну и пока нет поводов думать, что она скоро будет решена, поэтому учимся работать с контекстом. Это правда. Ну и вот, пожалуйста, иллюстрация. Вот иллюстрация 2. 000 токенов. Каждый связан с каждым. Вот попросил Нану Банану про отобразить. И, естественно, ну какая-то каша получается просто очень-очень много связей. Почему от Output дороже, чем input? Упрощённо говоря, чтобы сгенерировать следующий токен, модель учитывает все предыдущие токены. Она читает инпут параллельно за одну секунду, а вот генерирует output, то есть свой ответ последовательно, конкретнее. Допустим, вы отправили 1. 000 токенов на вход. Модель должна ответить 500 токенами. Как это прочитать? 500 токенами. Как так, наверное? Короче, она должна написать в ответ 500 токенов. Отправили 1. 000 токенов. Обрабатывается за один проход 1 млн операций. То есть она сразу за одну там миллисекунду или как это за один проход бк посмотрела всё. А вот аутпут 500 токенов генерируется по одному токену. То есть первый токен смотрит на 1. 000 предыдущих. Это миллион операций, к слову, да? Потому что он смотрит свою связь с каждым. То есть с тем посмотрел, с тем посмотрел. То есть он 1. 000 у 1. 000, получается миллион операций. Второй токен смотрит на 1. 1 уже предыдущих токенов. Это уже получается 1. 001 млн операций. Третий токен смотрит на 1. 2 предыдущих, 500й токен смотрит на 1. 499 предыдущих равно 2. 25 млн операций. То есть, понимаете, да, как это работает. Новый токен смотрит на свою связь со всеми остальными. Ещё один новый токен со всеми остальными, да? То есть всё больше и больше их становится, поэтому это затратно и проблемно. И равно один проход, ауputт равно 500 проходов. Поэтому output в разы дороже. Чем длиннее ваш изначальный контекст в скобочках промпт, история диалогов и так далее, тем больше вычислительных мощностей на серверах провайдера lm тратится на каждый новый сгенерированный токен, потому что модель пересчитывает связи со всем контекстом каждый раз. Что

### Стриминг ответов LLM [4:56:18]

такое стриминг ответов LLM? Стриминг - это когда модель отправляет токены по мере генерации, а не ждёт конца всего ответа, так как lм генерирует каждое слово отдельно, на самом деле каждый токен отдельно. Ну ладно. lm провайдеры, openi clot и так далее позволяет нам по API стримить ответ LLM. В интерфейсе чар или clot стриминг включён по умолчанию, а в стриминг реализуется как отдельные соны. Покажи на практике One и терминаль. А я сейчас покажу стриминг как работает. То есть мы пишем ему: "Привет, расскажи, кто ты". Опа, опа. Видели? То есть он печатает, потому что он их отправляет по мере генерации. Как это у нас в N8N можно реализовать? Давайте сначала в терминале покажу. Вот я специально сделал запрос, в котором сразу включён стриминг. Вот мы отправляем стрим равно true. Это тоже в баде отправляется. Вы теперь знаете, что такое бади. Отправляем и если вы могли заметить, э оно отправилось очень быстро, но на самом деле тут была некая последовательность. Оно отправилось друг за другом. На самом деле там оно не сразу всё пришло одним, а вот чуть-чуть по очереди было. Вот оно нам отправило сообщение по одному токену. То есть понятно, что тут вся соподствующая информация. Вот началось. То есть тут контент ноль, а тут контент уже пишет. Hello, восклицательный знак, отдельный токен. How can I help you today? Вопрос. То есть по факту оно нам отдельным джейсоном, мы разобрали, что такое Jon, отправляет каждый отдельный токен по мере генерации. И поэтому мы это можем так обрабатывать, что оно будет вот так последовательно выглядеть э в интерфейсе пользователя. Это улучшает, кстати, user experience, потому что пользователю не надо сидеть и ждать, пока всё сгенерируется, а он будет видеть постепенно, как оно генерируется. Это улучшает реально опыт взаимодействия пользователя с приложением. Давайте отправим это же, но без стриминга. Уберём вот тут стриминг в Джейсоне. Вы можете видеть то, что это тот же Jon, что и везде. Отправляем. Готово. Теперь нам оно отправило то же самое. Но вот видите контент. Hello, how can I help you today? Вот, можно отправить без стриминга, чтобы оно одним сообщением пришло, а можно отправить, чтобы оно стримилось, то есть оно отправляется отдельными jсончиками. Что касается N8N, к сожалению, внутри узла HTTP request, то есть когда вы делаете запрос к Open AI через узел HTTP request, как я показывал здесь, реализовать стриминг не получится. Это пока что не добавили возле TTP квест, но надеюсь это когда-то добавят. Но где это можно сделать? Это можно сделать в узле AI agent. Теперь нам нужно зайти внутрь и агента и включить здесь такую штучку вот enable стриминг. То есть мы как раз включаем стриминг таким образом. По-моему, в самом интерфейсе вот тут внутри, если мы напишем сообщение стриминг, нам не покажется. Но мы можем сделать так. Можем сделать chatт publicly available, а здесь включить аonс mode и в репонс моде выбрать стриминг. То есть, чтобы он отправлял сообщение последовательно, да, и скопировать чат URL. Сохранить. Да, здесь надо будет сейчас его опубликовать. Опубликовали. Отлично. Теперь мы открыли соседнее окно вот с нашей этой автоматизацией под капотом и написать что-нибудь. Привет, кто-ты, пожалуйста. Видели, он отвечает на вопросы по мерегенерации через узел Webhook. Это тоже можно добавить. То есть вот есть resp тоже выбрать можно стриминг. А, немножко про промtненеринг.

### Как писать системные промпты? [4:59:36]

Да, всё равно некоторую базу нужно знать. Скорее промт инженеринг актуален для Да. Да, вот я написал речь больше про системный промт. Ну да, чтобы мы могли нормально ему раскидать там всё, что ему надо. Там, короче, это по сути уже inex learning, про который мы говорили, вот там вот наверху. Промт engниринг сейчас сводится к следующему. То есть нужно указать роль lм. Почему так? Потому что лмки обучались на большом количестве данных. И так получилось то, что если вы ей задаёте какую-то роль, говорите, типа, представь, что ты там физиктейн, то она начинает отвечать на основе тех данных, которые, ну, более достоверны. Потом можно показать пример результаты и пути достижения этого результата. Например, вы пишете и пром типа в системном промте пишите: "Представь, что ты физикйнштейн и твоя задача - это считать эффективно цифры. Например, если тебе пишут 2 + 7, напиши". То есть вы показываете пример результата и пути достижения этого результата. Укажите структуру ответа, допустим, jсо. Да, если вы хотите, чтобы вам в jсовечали, пропишите рамки, типа там максимум 1. 000 слов, не более пяти предложений, например. Да, вы пишите там и ответь мне на вопрос, всегда отвечай, не более 1. 000 слов. Можно выставить ещё жёсткие ограничения, то есть вот тут вот прямо выставить, как я выставлял, maximum number of tokens. Но тогда она будет отвечать реально ограничено этим количеством токенов. Она может не закончить свою мысль и просто оборваться на полусловие. Поэтому стоит использовать и вот это вот ограничение жёсткое и буквально ей прописывать то, что пиши максимум 1. 000 слов. И добавить эмоциональный окрас. Почему надо добавлять эмоциональный окрас? Потому что, ну, потому что это тоже работает всё ещё. То есть вы можете написать: "Меня уволят с работы, моей любимой работы мечты, если ты мне не поможешь". И как бы Large Language model л lлмки обучались на текстах людей, и поэтому они начинают охотнее отвечать, ну и лучше отвечать, реально, если вы дадите такой эмоциональный окрас. Это не значит, что у них есть эмоции. Это чисто математический расчёт. Но это всё и так будет учитывать почти любая ЛМ, если вы её попросите написать для вас промт. А, ну да, кстати, промт инженеринг сегодня это, смотрите, что это просто типа пишите в код. Привет, мне нужно написать системный промт. для и агента Физика Эйнштейна. Напиши мне его. И смотрите, кстати, моя тактика, которую я придумал, я не знаю, может, кто-то ещё придумал, но я, по крайней мере, ей всегда пользуюсь, когда пишути промты, так как лень самому всё прописывать, можно сделать следующее. Вы в общих чертах говорите Клоду, Чату GPT, там GI, Гроку, что вам нужно сделать, какой вам нужен промт. И чтобы вы ничего не упустили точно, можно сделать так. можно написать: "Задай мне 10 уточняющих вопросов". И он сейчас начнёт задавать уточняющие вопросы. С помощью этих уточняющих вопросов мы будем дополнять наш промт. То есть какая цель агента, какая аудитория, уровень строгости, личность и характер, формат ответов, дополнительные функции. И прикол в том, то что вы будете видеть, когда вы составляете реально какой-то вам нужный промт, не то, что я сейчас показываю, то, что я балуюсь. Когда вы будете реально составлять нужный промт, вы будете видеть то, что вам он задаёт реально какие-то хорошие вопросы. Потом вы такие: "Вау, были хорошие вопросы". Если вопросы были хорошими, пишите ещё раз, типа, задай ещё 10 уточняющих вопросов. Если опять вопросы были хорошими, попросите ещё раз. Скажите: "Задай ещё 10 вопросов". И так отвечайте до тех пор, пока вопросы не начнут становиться какими-то, ну, такими себе, каким-то прямо вообще не относящимся к делу и странными, которые уже явно не улучшат ваш промт. И в тот момент можете сказать: "Всё, составь готовый промт". Вот я так и пишу. Все промты. Очень нравится мне эта тактика. Она помогает ничего не забыть и учесть всё, что надо. Но главное сделать промт не слишком уж длинным. Сейчас я ему напишу. Просто напиши промпт. Ну вот вам и весь контекст инженеринг. Видите, он сам даёт роль, сам всё прописывает, потому что лмки знают, как надо писать промпты. Есть ещё специальные конструкторы промптов тоже от клода, от Open AI. Есть конструкторы промтов. Ими тоже можно пользоваться. Ещё что важно, то что модели лучше всего понимают разметочку Markдаdown. То есть, смотрите, сократив три раза и добавь Mark. Суть в том то, что модели вообще делают форматирование с помощью маркдауна. Если мы возьмём любой ответ и скопируем его и закинем куда-нибудь, давайте в экскалира закинем тоже, пожалуйста. У нас используется Markдаун. То есть, видите, чтобы сделать жирный шрифт, он делает две звёздочки по бокам. Чтобы сделать там заглавный текст, он использует решёточку. Вот видите? То есть заглавный текст, решёточка, менее заглавный текст, две решёточки. Чтобы сделать, а, как бы строку вот такую вот, можно написать несколько вот таких вот чёрточек. Лэмки, большие языковые модели, они очень хорошо понимают Markдаун. Они на нём отвечают буквально. Вот поэтому, чтобы выделить какие-то части, чтобы акцентировать внимание модели на чём бы то ни было, можно это выделять с помощью маргодауна. Если вы не знаете, как это делать, просто пишите модельки и говорите, типа, помоги мне это сделать с помощью маркдауна. И можете у него спросить вкратце, как работает Markdown. Там вообще ничего сложного. Self hosted

### Self-Hosted модели [5:04:34]

модели. Self hosted модели - это open source LLM, открытый LM, который вы запускаете на собственных серверах вместо обращения к внешним оп сервисам. Страль 7B, GPTO 120B, GPTOS 20B - это модели от OPPй, которые с открытым исходным кодом. Остальные модели, их там GPT5 и так далее, GPT 5. 2, они с закрытым исходным кодом, потому что они лежат на их серверах, они не показывают их исходный код. Типа, SHOTS - это модель лежит на вашем сервере, а облачная модель лежит там на их серверах. Мы вообще не знаем, что у него там за код. Вообще все самые крутые модельки на рынке, они с закрытым исходным кодом. Где вообще брать selfhosted моделя? На hugenface. Туда выкладывают все нейронки с открытым исходным кодом. Да, не только LM, там нейронки для обработки аудио, embeded модель, регенерации изображений, видео, тд. Сайт улыбающееся лицо. А, и тут лежат у нас вселмки. Вот, можем нажать models. Тут у нас лежат всякие разные лмки. Можем нажать datas. Datasets - это тут есть набор данных как раз для файнтюнинга, да. Например, допустим, вам нужно сделать файтюнинг вашей лмки там под юриспруденцию. И чтобы самому не собирать данные, можно просто взять открытую датасет и с помощью него обучить. А зачем вообще селфстить модели? Во-первых, для экономии денег. Во-вторых, для защиты данных и для независимости от внешних сервисов. Если есть сервера с GPU, которые можно арендовать и разместить там lm, да, здесь важно GPU иметь, то есть видеокарты, вот это всё, это всё и есть GPU, которые используют для обучения моделек, для того, чтобы хостить модели. Поэтому Nvidia сейчас самая большая в мире по капитализации компания, потому что они делают GPU. Это имеет смысл делать ради экономии денег, так как PPI вы платите за токены, а при оренде сервера вы платите только за сам сервер. Ну, например, пример расчёта, да, API. Вы делаете 10. 000 запросов в день. Это 1. 100 долларов в месяц, а selfhosted модель, там GPU сервер стоит 500 -ре800 долларов в месяц. То есть это окупается, но при условии, что есть 15. Если меньше, то это смысла не имеет. Также вы можете разместить LЛM на серверах вашей компании. Это имеет смысл делать ради защиты данных, экономии денег и независимости от внешних сервисов. Сервера OpenA и упадут там мало ли взломает их кто-нибудь, разрушит все их системы. А вам всё равно. А нам всё равно, потому что нам почему всё равно? Ну вам всё равно, потому что ну вас на ваше на серверах вашей компании МКАм-то вообще какая разница на чисто на отдельном сервере лежит. Но самые передовые LLM и не только LLM на рынке недоступны в открытом доступе. Ни GPT5, ни GPT 5. 2, ни Opus 4. 5, ни Gemini 3 Pro, какой там уже вышел GM, не помню. На банана Pro. Нет их на Хагинфейсе, нет их на Гитхабе. Вы их на свои сервера не поставите. Решил я сюда ещё добавить

### Фишки c API для LLM [5:07:19]

приколы с A5 для lm. Разберём на примере Antropic, но у остальных тоже самое примерно есть. Ну, во-первых, вот в моделях Antropic можно увеличить окно контекста в миллион токенов. Да, но по дефолту не миллион токенов, но можно увеличить вот до миллиона токенов. Это в бета-версии работает. Для этого в header, я знаете, что такое header, я уже показал, нужно прописать следующее, да, бета контекст и так далее. пакетная обработка BCH processing, асинхронная обработка большого объёма запросов со скидкой 50%. BCHPI, короче, это способ отправки множества запросов KPI одновременно, вместо того, чтобы делать их по одному. Зачем это надо и как это работает? Вместо отправки 100 отдельных запросов вы отправляете один файл с массивом всех этих запросов. API обрабатывает их асинхронно, то есть неодновременно, и возвращает результаты обычно в течение 24 часов. Надаёт скидку в случае Sнроopic 50%. Это отличается от обычного пять, где вы получаете ответ сразу на каждый запрос, а тут вы получаете его в двадцатиче в течение 24 часов. Ну да, там чаще всего, по-моему, в течение часа они приходят, но тем не менее они приходят не моментально. Это актуально для случаев, когда не нужен моментальный ответ от ЛLЛМ. Например, саморизация транскрибации холодных звонков. Да вам что прямо сейчас транскребация будет звонков, что она будет спустя 24 часа. Вам разницы нет, да? Вам не обязательно, чтобы эта инфа у вас сразу была. А если сюда мы ещё и кэширование добавим, то будет вообще лютая экономия. Ну, это, конечно, сложнее будет, потому что кэширование в течение часа работает. Ну и чтобы активировать batch API, нужно указать следующий URL PIOPC в 1 Messengers batches. В ответ вам пришлют patch ID, и в течение 24 часов надо будет получить результат. Как вы получаете результат? Вот отправляете такой URL, то есть в один message BCH. Тут вы пишете ваш BCH ID и results. То есть вам надо будет самостоятельно в течение 24 часов отправлять HTP запросы некоторые и спрашивать, что там готова, не готово, не готово. Тут не получится вебху поставить, тут придётся спрашивать самому. Большинство БЧИ завершается менее чем за 1 час, но может потребоваться до 24 часов, да, это так. Потом идёт кэширование промтов. В clothropic доступно кэширование на 5 минут и на час. В Open AI тоже, кстати, оно есть. И в Google есть, но в Open AI, по-моему, на час нету. Ну, неважно. ЛМ запоминает неизменяемую часть твоего промта, например, большой документ или системный промт. И при следующих запросах не обрабатывает её заново, просто достаёт из памяти. Это экономит 50 тире 90% стоимости на повторяющемся контексте. Пример. Загрузил книгу на 100. 000 токенов, задал 10 вопросов. Книга обработалась только один раз, остальные девять раз взялась из кэша почти бесплатно. Клодропик доступно кэширование на 5 минут и на час. Вдер указываем следующее. В баде добавляем кэшкоро. указываем time to leave, либо час, либо 5 минут, да? И по ценам выходит на 5 минут на запись стоит 1. 25 дороже, чем если бы вы отправляли это без кэширования. А если на 1 час, то стоит в два раза дороже, чем если бы вы отправляли это без кэширования. Но вот чтение из кэша уже стоит 0. 1 от вашего исходного запроса. Подробно про это было в полном Guрек. Да, это было в подробном гайде нарек. Я прямо там в N8N всё показывал, отправлял и так далее. Если хотите разобраться, посмотрите этот гайд. Подсчёт токенов. Это endpoint, подсчитывая токены без отправки запроса к моделю. Он возвращает количество токенов, которые займёт ваш промт. То есть это, чтобы деньги не тратить. Просто, чтобы активировать, надо указать следующий URL. Вот такой URL указываете. Antropic. com в один messages count tokens. Всё это есть документация, можете почитать. Ну нет, не надо читать, надо спросить у Клода. Естественно, подписывайтесь на Telegram-канал, там все ссылки, материалы к ролику и покупайте узлы дня. чуть-чуть подробнее про-агента, хотя

### Подробнее про ИИ агентов [5:10:54]

думаю, вы уже про него знаете. Кто такой вообще-агент? E-гент - это просто lм плюс инструменты. Это получается агент. Искать чточёто, кодить, искать в базе данных и считать на калькуляторе, например. И агент - это, которая сама разбивает задачу на шаги и выполняет их по очереди. Используя инструменты вроде поиска калькулятора API, анализирует результаты и продолжает работу до тех пор, пока не реши задачу. Цикл React reasoning п action. Observe анализ текущей ситуации. reason рассуждение о следующем шаге выполнение действия повторение цикла до достижения цели ну вот да пример модели работы и агента например. И модель сама решает, когда нужно больше рассуждений, а когда переходить к действию. Какие могут быть тулы? Вызов API, выполнение кода, websarch, ну и так далее. У агентов есть память, они помнят не только историю диалога с пользователем, а ещё какие они тулы вызвали, какие результаты получали. Ну памяти у них нет, это мы её сами добавляем, как я уже рассказал. Но вот да, то, что важно, что они помнят, какие они тулы вызывали. То есть это тоже записывается в память. Короче, всё зависит от того, какого егента вы создаёте. Прикрутить к нему можно почти что угодно. Контекст инжениринг для управления действиями агента очень важен. Да, это вот очень, очень правда. Есть ещё мультиагентные системы. Это когда вы главному иагенту подключаете других иагентов, как тулы, и получается суперэффективная система способна решать сложные задачи. суперэффективная система, если её хорошо подготовить и много раз протестировать, а не просто сделать, например, а, несколько специализированных агентов вместе. То есть агент-исследователь, есть агентпрограммист, есть агент-тестировщик, есть агент-деплойщик, есть агент-менеджер. Ими всеми управляет агент-менеджер. Как это вводит? В NVAN можно вот взять агента, в качестве тула добавить ему AI agent. Вот agent tool. А этому AI agent tool в качестве тула можно добавить ещё одного AI agent тула. Ну и так далее. То есть вы можете сделать прямо мультиагентные системы. Агент - это система, которая действует автономно, помнит состояние между шагами, планирует действия, взаимодействует с внешним виром, с помощью тулов, корректирует себя через рефлексию и достигает цели через множество итераций. То есть по факту агенту вы даёте цель, и он уже сам пытается её как-то достигнуть. Пытается, пытается, пытается, и он, ну, и в теории он может так реально бесконечно работать, пока цели не достигнет. Там, конечно, у вас токены закончатся. На практике как делать? На практике у агента системный промт лучше писать не более 10. 000 токенов. Промт писать в формате Mark. Я показал, что такое Markdown, либо XML. XML - это тоже формат такой разметка, типа как Markdown, только немножко другой. Тоже попросите лмку, она вам напишет. И системный промт, естественно, на английском, чтобы экономить токены. А

### MCP. Это что? [5:13:33]

потом есть MCP. MCP - это model contex протокол. То есть, я думаю, вы все слышали про MCP. Это универсальный протокол для связи AI-моделей с внешними приложениями и сервисами, созданнык в 2024 году. MCP актуален только для иагентов. Смотрите, как было раньше. Каждая интеграция требовала ручной настройки. То есть мы, допустим, а подключали, вот у меня, кстати, видео второе, по-моему, на канале. Мы там прямо руками подключали Google календарь. То есть каждый тул отдельно прописывали, что он значит, как им пользоваться и так далее. А SMCP - это единая спецификация, которая позволяет AI взаимодействовать с любой системой автоматически. То есть как универсальный зарядный порт заменил десятки разных разъёмов. То есть смотрите, как это работает. LLM подключается к MCP, например, Google календаря. Ему высылается информация о тулах, о том, что они делают и как писать команды, чтобы вызвать тот или иной тул. Короче, документация MCP. То есть вместо того, чтобы а делать вот так, у нас есть Google календарь, э, где он, вот тут есть разные тулы, типа create, delete, создать и так далее. То есть мы можем создать события, можем удалить, можем получить, можем обновить. То есть мы вот делаем delete, вот делаем вот здесь мы делаем события мы create, а вот здесь мы событие, например, получаем. То есть мы берём get event. То есть, видите, нам приходится каждое действие, то есть создать, удалить, обновить события, получить события, то есть просто просмотреть. Приходится ставить руками. MCP для этого и нужен. То есть, чтобы мы подключали просто один тул, один инструмент, вот MCP. И с помощью одного MCP, вот мы подключаемся к MCP Google календаря, и у нас сразу всё внутри MCP это и так есть. Там уже сразу прописаны инструкции и так далее. А так бы нам пришлось заходить в системный промт, писать, тут у тебя есть тул создать, удалить, у тебя есть тул просмотреть, вот ориентируйся в этом всём. А сейчас нам это делать не приходится, потому что у нас и агент делает запрос к MCP, и MCP сразу отправляет ответ, что есть в этом MCP, какие есть инструменты и так далее. Гораздо проще отработать, чем было раньше. MCP могут лежать на официальных серверах компании. Например, MCP Google календаря лежат на серверах Гугла. В реальности это не так. Кстати, он не лежит на серверах Гугла. Вот есть MCP Тавили, да, например, он лежит на серверах Тавели, которые я показывал для вебсрча. Ещё они могут лежать на гитхабе, и вы тогда их ставите на свой сервер самостоятельно. Это самый распространённый вариант. И про это всё было максимально подробно рассказано в полном гайде на MCP. У меня есть ролик полный гайд на MCP. Я там это всё рассказывал, показывал, как это делать. Подключали мы там разные MCP, устанавливали на свой сервер, подключались к MCP, которые лежат на серверах там каких-то компаний. AGI и

### AGI и ASI [5:16:13]

ACI, как же без этого. AGI это artificial General Intelligence, это искусственный общий интеллект. Это дословный перевод. Это ии, который имеет всё, что имеет человек. Может учиться любой задачи, понимать контекст, переключаться между разными областями знаний без переобучения. Короче, - это искусственный интеллект, сравнимый с интеллектом человека. То есть он такой же по функциональности, по возможности, как и человек. Такого пока что нет. Возможно, уже скоро появится. А вот ACI, Artificial Super Intelligence - это уже искусственный сверхинтеллект. Это и, который умнее любого человека во всём. превосходит людей в науке, творчестве, стратегии, эмоциональном интеллекте во всех областях. Ну, кстати, можно сказать то, что в каких-то областях лэмки уже превосходят людей. Я вот матрицу фильм посмотрел, там было про ACI, Artificial Super Intelligence, который, собственно говоря, там всех людей и начал эксплуатировать. Ну, тут сложно сказать, тема интересная, философская, очень спорная. Кто-то говорит, что текущая архитектура LLM, то есть трансформеры, про которые я вам рассказал, да, она не даст ЛМ сознания и вообще непонятно, да, ничего про сознание. С другой стороны, и не нужно осознание, чтобы делать вещи, которые не может делать человек. То есть она же может кодить хорошо, при этом не обладая сознанием. Ну вот, например, она же может писать какие-то тексты, да, при этом не обладая сознанием. Может, то есть может это и не обязательно и надо. Я же вам сказал только что то, что на примере и агента мы ему даём цель, и он уже сам её пытается достичь. Вот. И так и может работать, кстати, artificial super intelligence. То есть это может быть реально суперомный интеллект. Он может не обладать сознанием. То есть по факту он как будто бы и не являться интеллектом. Непонятно как это формулировать. Но при этом мы можем ему дать какую-то задачу. Вот эта вот пресловутая задача с пластиковыми бутылками или с чем там, не помню было. Со скрепками, да, мы можем ему дать задачу то, что сделай как можно больше скрепок. И он и будет её выполнять. Он будет её выполнять. Дойдёт до того, что он всю землю уничтожит и всю землю превратит в скрепки. такой мысленный эксперимент. Кто-то говорит, что это бред, кто-то этого опасается, но развитие ЛМ, оно всем очевидно. Все понимают то, что это может помимо всего хорошего, что это даёт и интересного, это может привести к достаточно негативным результатам. И поэтому создают всякие комиссии по безопасности. И к чему это приведёт, я не знаю, но, по крайней мере, я хочу наблюдать за этим. К чему это приводит? И вас я приглашаю тоже за этим наблюдать. Поэтому, ребята, подписывайтесь на канал, подписывайтесь на Telegram. Я здесь буду, ну, всё-таки, конечно, какие-то более прикладные вещи показывать для N8N. Так или иначе, сможете узнавать какие-то вещи касательно нейросетей и их возможностей с этого канала. На всякий случай, я очень люблю AI и всё, что с ним связано, а настолько люблю, что делаю ролики, восхваляя возможности неросетей. Буквально весь этот ролик посвящён гайду на платформу N8 CNN. Основная суть которой - это то, что на ней можно делать и агенты, и автоматизации. Именно ради этого всего я всё это вам и рассказываю, потому что настолько сильно я люблю нейросети, очень сильно люблю. Ну и вот замечательная иллюстрация от Ban Pro, AGI, Artificial General Intelligence, чтение, письмо, рассуждение, решение проблем, уровень человека и Artificial Super Intelligence. Он, ну, всё, он символ прорыва, превосходит человека. И я очень рад то, что на Banana Pro без моей просьбы добавила следующую надпись: дружелюбное и безопасное будущее. И концовка для подготовки Workflow к продакшу, к нагрузке, к обработке ошибок, к предсказуемости AI, ну, этого недостаточно, да, то есть нужно отдельно в этом разбираться в подготовке к продакшену. Поэтому когда-то я запущу полноценный курс по NV CMN, как раз про это, да, эта часть там, по крайней мере, будет. Когда запущу, не знаю. Ну, я буду готовить материалы, готовить, готовить и в какой-то момент объявлю о запуске курса. Если вам понравилось это видео, если вам понравилась моя подача материала и как я вообще подхожу к этому всему, я думаю, вам и курс тоже понравится. Поэтому пока что его нет, но когда-то он будет, поэтому пока что подписывайтесь везде. Ну и, конечно, покупайте закрытые материалы по узлам дня, если хотите ещё 10 часов материалов PН N, чтобы лучше в нём разобраться, да, там ещё дополнительные 10 часов. Сможете ещё лучше разобраться в NN и ещё лучше понимать, как в нём работать. Вот и концовка гайда. Если вы досмотрели до этого момента, я вам невероятно благодарен. Вы молодец. Я вас очень сильно уважаю, если вы погрузились в тему и реально хотите разобраться. Записывал я это видео уже третий день. Очень много усилий к этому приложил, много времени потратил. И если реально поставите лайк, подпишитесь везде, буду вам очень сильно благодарен. Я не знаю, напишите комментарии, напишите типа хороший гайд, продолжай, потому что я прочитаю и пойму, ну действительно, людям понравилось, значит, нужно продолжать, раз от этого есть какая-то польза, раз это помогает людям. Правильно? Правильно. Тем не менее, ой, как я рад, что я сейчас это скажу. Спасибо за то, что посмотрели это видео. Смотрите и другие ролики на моём канале, например, вот это. Всем пока. Yeah.
