🚀 Pro тут:
https://t.me/iishenka_pro_bot
⭐️ Все бесплатные материалы из этого видео тут:
https://t.me/+W1SnvvkcV6A3NWMy
В этом видео я покажу, как развернуть ИИ агента на российском сервере. Что особенного в этом уроке? Мы не только учимся разворачивать агента, но и присоединять его к ГигаЧат.
Следующее видео:
https://youtu.be/_UtyvwZG6Bk
🔥 Независимо от того, работаете ли вы с AI-агентами или только начинаете осваивать автоматизации в n8n, этот урок поможет вам овладеть процессом настройки ИИ для любых задач.
💡 Не забудьте поставить лайк и подписаться, чтобы не пропустить новые уроки по n8n и AI-агентам. Давайте сделаем AI-автоматизации простыми! 🙌
Тайм-коды:
00:01 - Введение. Зачем это?
01:54 - Подбор хостинга в РФ
02:38 - План работ
04:01 - Устанавливаем Docker
08:00 - Устанавливаем отдельно n8n на сервер
10:00 - Добавляем домен для n8n
11:58 - Коннектимся к GigaChat
Не забудьте поставить лайк, подписаться и нажать на колокольчик, чтобы не пропустить новые видео об AI-агентах и автоматизациях!
автоматизации или автоматизации, которая крутится на наших собственных хостингах, это тема, которая уже у нас на канале появлялась неоднократно. Мы обсуждали, как найти бесплатный хостинг, развернуться там. Мы обсуждали, как на платном хостинге развернуться на зарубежном. Мы обсуждали, каким образом развернуться на своей локальной машине, так чтобы вообще всё работало без интернета. И осталась последняя незакрытая тема, каким образом развернуться на хостинге на территории Российской Федерации, чтобы всё работало в контуре, чтобы никакие данные не утекали за рубеж, если мы этого не хотим. Каким образом этого достичь? Для нас потребуется найти хостинг на территории Российской Федерации, сделать небольшие манипуляции и получить себе полностью рабочий NVO CMEN с локальными неронками, если мы захотим, или с базой данных, которая прямо на этом же хостинге тоже находится. таким образом, чтобы всё работало в контуре одной страны. А также мы с вами ещё попробуем подключить какую-нибудь нейронку от Российской Федерации. Ну, например, какой-нибудь Gгачат или Яндекс GPT. Конечно же, любой такой процесс начинается с подбора хостинга. У вас наверняка есть какие-то свои любимые хостинги, с которыми вы работаете чаще всего. Я советую вам и оставаться тогда на этих хостингах. Я, соответственно, немудрство и лукава просто ввёл в поиске рейтинг VPS-хостингов 2025 год. получил какой-то сайт, посмотрел на рейтинг и выбрал какой-то хостинг, у которого рейтинг был больше 9,5. Ну пусть это будет Бигеет. Мы в нашей прогруппе много раз обсуждали хостинги, кто-то пользуется бигетом. Ну давайте на нём и попробуем. Прямо заходим на их сайт, нажимаем кнопку Создать. Так, друзья, но прежде чем мы продолжим, обязательно поставьте лайк этому видео, подпишитесь на канал, колокольчики, обязательно оставьте комментарий, потому что так видео лучше продвигается и больше людей узнают про новые полезные знания. Ну а мы погнали. Я попал на свой дашборд. в бигете.
Давайте переключимся на месяц, да, ну, пускай будет Россия-Санк-Петербург. Если мы хотим иметь наши автоматизации на более-менее больших объёмах, да, нужно минимум два ядра, 2 ГБ оперативной памяти, либо четыре ядра, если мы хотим крутить какие-то более-менее, а, большие нейронки. Ну, для наших тестовых потребностей давайте выберем вот этот тариф. Так, дальше. Ну, конечно, мы хотим убунту, да, проверенную версию 2204. Конечно, вы захотите добавить ключ. Мы для скорости, для демозадач просто ставим пароль и нажмём кнопку создать виртуальный сервер. Так, мы попали на наш дашборд и ждём, пока наш сервер создастся. Видим, что у нас что наш сервер запущен. И что мы теперь хотим сделать? Давайте разберём это по шагам. Вообще говоря, да, нам всегда
нужен какой-то сервер. Мы его только что с вами выбрали. На этот сервер мы захотим развернуть докеer. Да, мы это опять же делали уже неоднократно и выяснили, что это очень удобно разворачивать контейнеры на ваших серверах, чтобы там крутились ваши приложения. Их удобно менеджерить таким образом. Наверное, нам захочется какой-то проксименеджмент там устроить, чтобы защищать наши соединения и подключать субдомены, чтобы наши сервисы были прямо доступны по NCM наш домен, там Алаama наш домен или наша база данных наш домен, да? И вообще говоря, этого достаточно, чтобы в принципе иметь рабочую сборку для нашей автоматизации. Соответственно, шаг номер один мы только что с вами прошли, шаг номер два. Каким образом мы поставим докер себе на сервер. Мы вернёмся обратно и увидим, что нам выдали реквизиты доступа. Это значит, что мы уже можем присоединиться к этому серверу, да, через наш терминал для того, чтобы продолжить с ним работать. Каким образом мы присоединяемся? Мы это уже делали в прошлых уроках. Нам не вообще не мудрство лука, а нужен просто терминал. Какая бы у вас ни была операционная система, открываете ваш терминал и пишем там SSH. И прямо копируем наше подключение. Бум. Шлём запрос. Он говорит, что аутентификация пока не может быть установлена. Хотим ли мы продолжить подключение и создать специальный ключ для аутентификации? Ну, конечно, хотим. Так и пишем. Yes, отлично. И он нас и он у нас спрашивает пароль от нашего сервера. Так как мы выбирали подключение через пароль, он у нас пришёл на нашу почту. Прямо идём на
почту, забираем его и вставляем сюда. Вставили. И вот мы оказались внутри нашего сервера. Отлично. Возвращаемся к нашему плану. Мы сейчас работаем с докером. Каким образом мы можем поставить докер на наш сервер. Я вам не буду показывать какие-то коды большие, которые прямо возьмите, вставьте себе в терминал, потому что вы тогда не будете понимать, что откуда растёт. Мы с вами будем делать прямо проще. Вбиваем в поиск. Вбили докерубнту. Нажимаем на первую попавшуюся ссылку и прямо на сайте докера увидим инструкцию. Да. Первым шагом нам советуют установить apt репозитории для нашего докера. Вам, скорее всего, подойдёт самый умолчательные команды, поэтому прямо забираем целиком эту команду. Мы знаем теперь, как её найти в следующий раз. Вставляем, нажимаем Enter. Пошёл процесс установки. Так, только что закончился процесс установки и вроде как всё в порядке. Идём, смотрим дальше. И нам говорят: "Установи последнюю версию". Слушаемся, ждём, пока процесс завершится. Если спрашивает что-то про хотим ли мы продолжить, нажимаем why, нажимаем Enter. Так, ну что, мой процесс только что закончился. Давайте попробуем прямо посмотреть. Да, отлично. У нас есть контейнеры, образы. Ну, в смысле, заголовки к ним. Ничего у нас конкретного не крутится. Дальше, так как мы уже привыкли с вами работать с докером, да, на с на своей локальной машине, делали это довольно успешно в прошлый раз, давайте попробуем к этому докеру, который мы только что себе установили на наш облачный сервер, поставить интерфейс от докера, чтобы был опыт максимально похож с тем, что у нас было на локальном компьютере. Давайте так и вобьём. партейнеру, бунту install, да? Соответственно, пройдём сюда и нам скажут: "Выполните несколько команд подряд. Сначала мы создадим диск для партейнера. Давайте пойдём, нажмём. Всё, диск создался. И дальше скачайте и установите партеer сервер." Да. Идём, копируем, вставляем, нажимаем Enter. Так, не могу найтиж, да? И начинаю скачивать новый. Давайте чуть-чуть подождём, пока он скачает. Так, ну что, процесс закончен. И, соответственно, если мы сейчас сделаем такую историю, то увидим у себя, что у нас крутится наш партейнер. Почему это круто? Потому что теперь с этого момента мы можем забыть про консоль на какое-то время, да, и можем всё сделать в партейнере, потому что для этого мы и устанавливали себе графический интерфейс, да, для нашего докера. Что мы для этого делаем? Возвращаемся в наш бит. Нажимаем на внешний IP. Скопировали его. Вставляем сюда двоето. Смотрим, на каком борту у нас крутится партейнер. Вот у нас он 943. Да, после двоеточи прямо вставили. Ничего не получилось, потому что мы послали HTTP запрос в https сервер. Ну, значит, мы так и скажем: https двоеточие. Так. О, отлично. Соответственно, мы достучались. Конечно же, а нас браузер предупреждает, что незащищённое соединение. Ну, сейчас мы его и защитим, наверное, да. Поэтому идём дальше, не боимся, получаем. Смотрите, он говорит сразу же установить себе новый пароль. Давайте сразу его поставим, пройдём дальше. Так. И вот мы попали вовнутрь, да, нашего партейнера на нашем уже сервере. Нажмём тут get started, увидим, что у нас уже тут крутится окружение, да, local называется. И на нём уже даже если мы перейдём сюда в контейнеры, увидим, что тут сам наш патейнер и крутится. Ну, вообще говоря, это прекрасно. Теперь мы можем, в принципе, из этого интерфейса продолжать заниматься нашими делишками. Правильно? В принципе, мы переходим к шагу номер три, да, и сразу попробуем установить NVO CMAN, который будет доступен с нашего субдомена. И там уже будет наш проксименеджер, потому что мы сразу подберём такую сборку. Каким образом мы это сделаем? Ну, смотрите, мы уже в прошлые разы с вами устанавливали какие-то тоже монструозные пакеты. Давайте больше этого делать не будем, да? Там на те пакеты и четырёх CPU, и 8 ГБ не хватает иногда. У нас с вами маленький сервер, мы хотим только N8N и там общаться с какими-то нашими там
локальными нейронками. Поэтому так и пишем. N8N GitHub, да, собственно, это GitHub репозитории кода от самой команды N8N. Мы здесь можем нажать сюда, нажать все репозитории и посмотреть, что у них есть. И в принципе, если полистать, у них есть такой репозиторик, который называется NVM hosting. То есть хостим только NVN. Ну давайте сюда пройдём. Так, отлично. У них есть примеры для Docker compost, для Docker Cy, да? Вот на так как у нас Docker есть, да? А давайте посмотрим, что тут есть. И найдём здесь вот прямо сборочка, да, которая называется subfolder SSL. Ну это, в принципе, то, что нам нужно. И здесь лежит три файлика, да, docker compose и dot invv. Что такое docker compose? Это то, собственно, тот самый скрипт, который мы хотели бы исполнить в своём докере, чтобы развернуть nim. Максимально всё в графическом интерфейсе, да? Нас считаем, что устраивает. Делаем копию, возвращаемся в партейнер. Возвращаемся в стеки, добавляем новый стек, да, называем его NVM Steack. И смотрите, здесь есть прямо веб-редактор, куда мы можем, ну, по сути, это эмуляция запуска Docker Compost, да, прямо вставляем код, который мы забрали из репозитория. Посмотрим внимательно на код. И мы видим, что тут есть, ну, условные плейсхолдеры, да? То есть здесь нам прямо хочется добавить какое-то доменное имя, да, чтобы NVM, а, работал на нашем домене. Опять же, как это делается? Возвращаемся сюда, видим здесь Dota nvi. Мы уже просто по нашему опыту знаем, да, что вот эти плейсхолдеры он будет забирать из переменных окружения. Поэтому пока не смотрим сюда сильно, да, копируем это всё, возвращаемся в па в партейнер, да, и здесь у нас есть как раз отдельная опция, каким образом можно добавить прямо в этот стек переменное окружение. Добавили. Здесь есть мод редактора, да, прямо вставили, и он нам сам всё запарсил, да, сказал: "Вот какие у тебя будут переменные окружения". Ну, в принципе, нас это всем устраивает. Тут вот то самое доменное имя, через которое будет доступна наша сборка. А вы помните, да, чтобы завести себе домен на имя, мы в прошлый раз это делали, нужно завести себе в вашем
DNS-провайдере новую A-запись, да? Каким образом это делается? Опять же, посмотрите в предыдущих видео, мы прямо пошагово обсуждали. Найдёте в провайдера вашего доменного имени, да, там нажимаете где-то настройки DNS, и там у вас будет некоторый список создать новые записи, да? Мы добавляем новую запись. Хost - это тот субдомен, по которому мы хотим, чтобы у нас был доступен наш NV8. Тест. N8m. Да, давайте через defиз IP-адрес. А ведь IP-адрес у нас уже есть. Это тот самый IP-адрес, который нам выдал наш биет. Возвращаемся, добавляем его прямо сюда. Нажимаем сохранить. Отлично, запомнили. Тест N8N. Возвращаемся в партенеer. Да, так как мы создавали субдомен, мы хотим нажать сначала тест N8men, потом ввести основной домен. Он у нас S for sign. Это лично мой, да? у вас он будет, ну, там лично ваш, да? Соответственно, можем поменять ещё имеil на наш, да, этот имеil, который будет использоваться для выдачи SSL-сертификата. Давайте поменяйте на ваш, да, и я, в принципе, оставлю такой. Проверяем ещё раз. В принципе, нас тут всё устраивает. И прямо нажимаем здесь stack. Так, ну что, мы видим, наши контейнеры запустились. И давайте пробовать перейти по нашему субдомену, который мы использовали. Так, грузимся. Отлично. И мы попадаем в наш сервис N8 Man, который работает на нашем хостинге. Мы создаём аккаунт. Давайте быстренько это сделаем. Мы это много раз уже делали. Так, и мы оказались в нашем N8N аккаунте, на нашем домене, на хостинге в Российской Федерации. Давайте посмотрим, что мы тут можем делать. Добавили сюда новый триггер чат. И раз уж мы на российском облаке, да, наверняка мы не заинтересованы в том, чтобы использовать иностранные модели. А если уж заинтересованы, да, то для этого есть другие видео прямо соседние на моём канале. Посмотрите. Давайте попробуем именно к этой модели подсоединить гигачат. Соответственно, мы будем задавать вопросы у гигачата и получать прямо в наш N8N ответ от гигачата для того, чтобы всё оставалось в контуре
одной страны. Идём и вбиваем в поиск Gigча API. Так, первая же ссылка. Так, попали на сайт для девелоперов. Нажимаем попробовать. О, отлично, большая кнопка API. Нажимаем. Я уже создал себе аккаунт. Вы пройдёте через простой путь создания его. После того, как мы его создали, нам нужно сделать следующее. Пойти в настройки API и нажать здесь получить новый ключ. Так, ну что, ключ только что был получен, и давайте разбираться, каким образом работать с этой API. Подключение гигачат. Чтобы работать с гигачатом, нам нужно сначала генерировать access токен, который будет жить 30 минут. Это этот опыт несколько отличается от того, что мы обычно видим в Open AI API. Ключ, который мы только что сгенерировали, нужно вставить вот в такой запрос. Мы с вами умеем работать с курлзапросами, да? Нам нужно это вставить в ноду HTTP в нашем локальном NM. Возвращаемся, добавляем ноду HTTP request и помним, да, как удобно можно импортировать курл прямо сюда. Нажимаем, нажимаем импорт. Так. И вот вся весь курл нам заимпортился. Ничего мы тут не будем исправлять, кроме одной базовой вещи, да? Вот здесь в Basic, в авторизацию нам нужно ставить наш API ключ. Я только что вставил свой ключ, да? И по сути мы можем с вами получить наш access toкеen. Давайте пробовать. О, отлично, мы получили access toкеen. Это значит, что теперь у нас есть access token, который истекает через 30 минут согласно документации Gigachча. С этим можно автоматически работать, его там перегенерировать, а, каждые 30 минут, что, собственно, и следует делать. Мы сейчас для простоты просто будем использовать каждый раз генерировать, когда мы шлём запрос от нашего чада. Соответственно, мы только что получили наш Access TKEN, и теперь наша задача- получить ответ на вопрос от нас, от модели Gigчаat. Давайте нырнём глубже в документацию и найдём какой-нибудь какую-нибудь возможность задавать вопросы и получать ответы. Мы нашли самый же первый запрос, да, который называется Completions. И отлично, он позволяет задавать вопросы, получать ответы. Давайте прямо его заберём, вернёмся, добавим ещё один HTTP запрос, импортируем. Бум. Так. И здесь мы видим, что чего-то нам не хватает, да, э, токен доступа, так как мы его сгенерировали на прошлом этапе, да, вот он Access toкенen у нас есть, закидываем прямо сюда. Проследить обязательно, чтобы было berре, пробел access token. Так, и он говорит, что нам вот прямо сюда в контент, да, можно задавать какой-то вопрос, но мы же не просто так подключили чат. Мы хотим из чата прокидывать сюда вопрос, чтобы её не вписывать вручную. Да, это же странно. Давайте попробуем просто протестировать чат, что-нибудь написать. Йоу, да, давайте остановим, пока нас не интересует эта история. Отлично. Теперь мы переходим обратно в наш второй реквест. Так как у нас уже есть пример того, каким образом выдаёт чат свои данные. Вот, собственно, input - это тот самый запрос, который мы хотим посылать в наш гигачат, да? Здесь нажимаем Expressions, открываем. И мы знаем уже, да, что здесь можно вставлять какие-то переменные, которые мы получали на предыдущих этапах. Соответственно, что мы, а, здесь нам ещё не хватает названия модели. А какие не бывают, да? Вернёмся в документацию. Gгачат. Так, возможность значение поля Model. Gigacчаat, gigat Pro, Gigчаat Max. Gгача подойдёт для решения простых задач. Так, забираем его прямо. Это название, наверное, оно сработает. Сюда вставляем. И теперь, по идее, если мы что-то спросим у нашего чата, должен триггернуться запрос токена. И потом вместе с этим аксес токеном мы должны послать запрос в модель. И на выходе из этой ноды мы должны получить запрос от модели. Ну давайте попробуем задать какой-нибудь вопрос. Какова численность населения Москвы? Давайте пробовать. Так, что у нас там на выходе? Отлично. Смотрите, мы только что получили на выходе ответ. По данным на 2023 год численность населения Москвы составляет 12,5 млн человек. То есть этот контент мы уже получили от гигачата. Соответственно, что только что произошло? У нас сервер в России, наши модели, с которыми мы работаем, в России. N8 CMN развёрнут. Там же всё локализовано. Все персональные данные на серверах на территории России. И, в принципе, мы добились результата, который мы так хотели. Это прекрасное достижение. Я ещё раз хочу напомнить, что вам прямо нужно поставить лайк этому видео, оставить комментарий, подписаться на YouTube канал. Прямо вот эту автоматизацию я сейчас сохраню и положу в свой бесплатный YouTube канал. А если вы хотите нырнуть ещё глубже в технические аспекты и в знания про автоматизацию, искусственный интеллект, то обязательно подписывайтесь на нашу прогруппу. Один из примеров кейсов, который мы там разбираем. Я прекрасно понимаю, что не всем может быть охота покупать сервер, разворачиваться там, а хочется экспериментировать на локальном хосте. И мы это делали прямо в прошлом видео, устанавливали всё на ваш локальный хост. И мы на исходе предыдущего видео как раз получили на нашем локал хосте работу с N8 Man. Я хотел сказать, что в прогруппе мы много обсуждали этот кейс и двинулись ещё дальше. Например, частая проблема в том, что Telegram у вас на локальном хосте не работает. И каким образом это обходить? Именно поэтому мы в нашей прогруппе начали копать ещё дальше и пытаться решать вопрос, каким же образом на локал хосте принимать внешние события. Например, если мы здесь включим отслушивание события и напишем "Привет", то мы получим этот привет себе прямо на local host на порт 5678. Я понимаю, что это довольно уникальные кейсы, но которые кому-то могут быть необходимы в его работе для того, чтобы его локальная машина могла получать запросы извне. Если вас интересуют такие кейсы и более глубокие технические знания, то обязательно подписывайтесь на нашу прогруппу. А на этом всё.