🚀 Pro тут:
https://t.me/iishenka_pro_bot
⭐️ Все бесплатные материалы из этого видео тут:
https://t.me/+W1SnvvkcV6A3NWMy
В этом видео я покажу, как развернуть у себя на сервере AI-агента, который работает на 100% бесплатно. Что особенного в этом уроке? Мы разворачиваем не только автоматизации на n8n, но и Supabase, и локальные нейронки на своём компьютере по шагам.
🔥 Независимо от того, работаете ли вы с AI-агентами или только начинаете осваивать автоматизации в n8n, этот урок поможет вам овладеть процессом настройки ИИ для любых задач.
💡 Не забудьте поставить лайк и подписаться, чтобы не пропустить новые уроки по n8n и AI-агентам. Давайте сделаем AI-автоматизации простыми! 🙌
Тайм-коды:
00:01 - Локально и бесплатно
02:15 - Устанавливаем Докер
05:00 - Устанавливаем Supabase локально
07:24 - Устанавливаем n8n локально
09:30 - Устанавливаем Ollama локально
10:50 - Логинимся в сервисы
12:40 - Создаём локального агента на n8n
15:57 - Добавляем модели в Ollama
18:00 - Подключаем Postgres локально
20:40 - Подключаем Vector Store локально
24:47 - Работаем с локальными файлами через n8n
Не забудьте поставить лайк, подписаться и нажать на колокольчик, чтобы не пропустить новые видео об AI-агентах и автоматизациях!
которую мы уже покрывали неоднократ на нашем канале. Но почти под каждым видео есть один и тот же вопрос или сразу несколько вопросов. Возможно ли делать векторизацию, формировать имбединги локально? Возможно ли держать нашу базу данных, векторную базу данных локально? Возможно ли все нейронки запускать локально? Возможно ли N8N делать локально? Каким образом всё это делать прямо на моей машине? Абсолютно бесплатно. И сегодня мы шаг за шагом, даже если мы никогда этого не делали раньше, пройдём процесс разворачивания NCMN, Supase, нейронок локально, полностью на вашем компьютере. Всё это будет работать даже без интернета. Цена использования нейронок будет ноль. По сути, ваша стоимость - это стоимость электричества, которое вы используете. Помимо этого, раз у нас всё работает локально, мы с вами научимся работать с локальной файловой системой, забирать тексты из наших файлов, удалять записи из локальной superbase, векторизовать все данные в локальных таблицах для имбедингов, общаться с нашими данными на основе локальных нейронок, аламы, и всё это будет крутиться прямо у нас на локал хосте. Ну что, погнали. Но прежде чем мы начнём, обязательно подписывайтесь на этот канал, ставьте лайк, ставьте колокольчик, потому что так работают алгоритмы Ютуба. Итак, больше людей узнают много новых полезных знаний. Важный нюанс: мы не будем использовать вот эти монструозные пакеты, которые мы использовали в наших предыдущих видео для того, чтобы развернуть вообще всё для нашего Истека. Мы будем идти ровно так же, как если бы мы мыслили, как начинающие люди, которые интересуются искусственным интеллектом и как это всё запускать на собственной машине. О'кей, мне точно нужны автоматизации low code. Да, я хочу построить, наверное, их на N8N. Прямо отдельно поставим N8N. О'кей, мне нужно где-то хранить мои данные, мои имбединги и те данные, с которыми я работаю в своих автоматизациях. Хорошо, мне нужен постгрес, мне, наверное, нужна Superbase. О'кей, а если я хочу нейронки все иметь у себя на локальном компьютере, хорошо, мне, наверное, нужна алама. То есть прямо шаг по шагом не будем прямо пытаться сразу всё покрыть, а пошагово пройдём по процессу и в конце получим 100% рабочий вариант, который точно будет работать у вас на компьютере. Мы всё будем разворачивать в
докере, да, мы это уже делали с вами и обсуждали в других видео, когда мы разворачивали NVO CN на виртуальных машинах. Это просто очень удобно. Мы не будем тратить много времени и говорить, что такое Docker, да? Нам просто он нужен на нашей локальной машине. Мы прямо гуглим Docker, да, заходим на docker. com и здесь нажимаем скачать Docker для desktop, да, в зависимости от того, какая у вас система, скачиваете вашу версию докера и запускаете докеer. Вот я только что запустил свой докеer. Он у вас будет выглядеть точно так же. У вас здесь будет вкладка с контейнерами, то есть наши пространства, где будут крутиться наши приложения. Ну, у вас будет вкладка с образами, да, то есть это слепок вашего приложения, которое мы будем запускать как раз в контейнерах. Важный нюанс, вот эта инструкция, она только для вашей локальной машины. Мы будем пропускать некоторые важные шаги, которые требуются для того, чтобы это всё работало безопасно виртуальной, удалённой машине. И вот эти шаги мы обсуждали в одном из прошлых видео. Вот если вам нужен такой вариант, вы где-то хотите запускать вашу автоматизацию, сходите на соседнее видео и посмотрите, как это делается правильно. Для локальной машины можно будет пропускать какие-то аспекты, потому что мы знаем, что никто, кроме нас, не будет иметь доступ к нашим контейнерам, к нашим образам. Никто не больше не будет пользоваться нашей автоматизацией. Это очень важно. Так, помимо докера нам понадобится какая-то папка на нашем локальном диске и терминал, который открыт в этой папке. Мы сейчас прямо с вами всё это сделаем. Вот я только что создал папочку, которая называется AI, где-то у себя на локальном драйве. И теперь мне нужно запустить терминал в этой папке. Как запустить терминал в зависимости от вашей операционной системы? Вы используете ваш способ. Покажу некоторый способ, который всегда легко осуществить. обязательно себе установите какую-то среду разработки. Это может быть VS-код, это может быть курсор, это может быть WSF, это может быть любая другая среда разработки. Потому что в любом случае, если мы с вами занимаемся искусственным интеллектом, в будущем нам понадобится чуть-чуть пописать кода довольно простого, для того, чтобы мы прямо могли гибко настраивать наши процессы автоматизации. Вот у меня есть мой курсор. Здесь я нажму открыть проект, прямо выберу папочку, которую я только что создал, которая называется AI. Она совершенно пустая. Открываем эту папочку и видим совершенно пустой экран. Нам, в принципе, это и нужно. На нажимаем кнопочку терминал, новый терминал. И мы видим, что наш терминал запустился именно в нашей папке, в которую мы хотели попасть. Отлично. Мы практически готовы к тому, чтобы начинать устанавливать различные локальные сервисы на нашу машину. Первое, с чего мы думаем, да, наверное, мы думаем про автоматизации, но на самом деле я всегда предлагаю начинать с базы данных. То есть хорошо, нам нужна база данных, которая будет работать прямо на нашем компьютере. Мы хотим использовать Superbase. Мы любим Superbase. Это тот же постгрес, но уже с векторными расширениями, поставленными туда.
Работает прекрасно как для имбединга в векторизации, так и для реаляционных данных. Каким образом мы хотим себе поставить Superbase? Мы прямо не будем ничего выдумывать с вами. Вернёмся в наш браузер и так и напишем Superbase Docker. Отлично. Первая же ссылка будет называться Self Hosting with Docker Supase Docs. Здесь прямо расписано, каким образом нам установить нашу Superabase и развернуть это в докере. Более того, тут есть конкретный скрипт, который нужно запустить в нашем терминале для того, чтобы всё заработало. Важный поворотный момент. Если вы прочитаете, что тут написано, да, мы клонируем какой-то репозиторий, мы переходим в папочку проекта, мы копируем различные файлы и потом мы копируем наш фейковыйnvample в dnv. Что значит фейковый? Superabase позаботились о нас и наполнили некоторые переменные окружения, которые нужны для того, чтобы функционировало superabase тестовыми данными. Да, не позволят ваший Subapace функционировать, но вы должны понимать, что эти данные будут ровно такие же, как у любого другого человека, который поставит Superabase себе с помощью этой инструкции. Если вы запускаете Superabase локально, вы можете оставить эти данные без изменений. Но только лишь в этом случае, если вы запускаетесь где-то на удалённом сервере и у вас Superabase будет доступен извне из интернета, вы должны будете поменять все переменные кружения, которые здесь есть в dnv. Example. Как это делается? Мы это делали два видео назад. Обязательно идите туда, если вы разворачивае разворачиваетесь на вашем удалённом сервере, если вы разворачиваетесь на вашей локальной машине и никто к ней, кроме вас, не имеет доступа, можем оставить всё как есть, только лишь в этом случае. Поэтому мы не мудрствовая лукаво. Забираем весь этот код, возвращаемся в наш терминал, вставляем, нажимаем Enter. И у нас началась установка нашей Superbase. Это прекрасно. Как только процесс закончится, я к вам вернусь. Так, ну что, наш процесс только что завершился, да? То есть мы затянули все нужные нам пакеты, и мы видим, что всё, что нам нужно от Base в состоянии либо Healthcy, либо started. То есть выглядит всё хорошо. Идём в докеer, проверяем. Так, интересно. У нас в Докере появились образы, которые соответствуют Superabase, и более того, у нас появились контейнеры, которые соответствуют Superbase. Выглядит всё более чем хорошо, правильно? Пока не будем опережать события, не будем уже пробовать залогиниться в нашу в наш дашборд Superabase. Давайте попробуем доустановить всё, что нам ещё пригодится дальше. Мы точно хотим NCEN. Да, всё ради этого же делается. Процесс похожий.
Пишем NVN Docker. Заходим на первую же попавшуюся ссылку. Отлично. С Docker Installation. И вообще тут самая простая вещь, которую мы видели, да? Всего лишь нужно запустить, создать диск для этого докера, запустить сам докер. Поэтому мы прямо берём, запускаем первую команду, создаём диск. идём обратно в терминал и запускаем создание диска. После это вот это после этого возвращаемся и хотим запустить вот эту команду. То есть мы уже запускаем Docker. Здесь есть пару нюансов. Мне лично эта команда не совсем подходит. Я сделаю чуть-чуть другую команду. Эту команду вы сможете найти в Telegram-канале, который будет прикреплён. Он абсолютно бесплатный. Мы там собираем все важные штуки, все важные автоматизации, которые мы строим в YouTube видео. Очень важный нюанс. Если вы в какой-то момент сейчас почувствуете, что вы потерялись, что сложно, у нас есть отдельная группа, прогруппа, в которой мы разбираем важнейшие технические нюансы. У нас там есть и новички, продвинутые, энтузиасты, которые строят свои автоматизации. В этой группе мы обсуждаем эти автоматизации. В этой группе присутствую лично я и отвечаю на вопросы. И самое важное, в этой группе вы можете найти данные, информацию, которую искать будете очень долго. Поэтому обязательно присоединяйтесь к нашей бесплатной группе, чтобы забрать все бесплатные материалы. И обязательно запрыгивайте в прогруппу, там просто очень круто. Погнали дальше. Я запускаю несколько другую команду, да, она очень похожая. Я запускаю наш N8N на портах. Я создаю диск для этой NEN. И самое важное, я создаю локальную папку, которая нам сильно пригодится в будущем. Чуть-чуть позже мы это увидим. Запускаем. Это также займёт некоторое время. Я к вам вернусь, когда процесс закончится. Так, ну что, процесс только что закончился. Идём в докер, проверяем. Прекрасно. А у нас запустился ещё один контейнер, который называется Envoy CMAN, и он доступен по порту 5678. Выглядит, вообще говоря, уже обнадёживающе. И опять же, мы сейчас не пойдём это тестировать, ещё установим одну вещь. Нам же хочется векторизовать самостоятельно, без использования внешних нейронок, абсолютно бесплатно наши данные для того, чтобы потом организовывать агентов, которые используют эти данные как контекст. Правильно? Для этого нам нужно развернуть среду, в которой могут крутиться локальные нейронки. Это
Алаama. Процесс мы уже с вами выучили. Всё начинается через простейший гуглинг. Так и пишем: Alama Docker. Отлично. Здесь есть ссылка, которая ведёт прямо на сайт Аламы. И тут прямо всё расписано. Помните, мы в прошлый раз уже обсуждали, что в зависимости от того, какая у вас машина, если у вас видеокарты, какой у вас процессор, вы должны будете запускать по-разному аламу. Потому что вот, например, у меня Mac, и здесь, в принципе, можно крутить нейронки только силами процессора. Здесь нельзя использовать мощности графической карты для того, чтобы крутились наши нейронки. Поэтому я выберу себе прямо команду CPU only. Вы в зависимости от того, если вы счастливчик и у вас есть графические карты, да, выбираете все другие опции. Моя опция вот эта. Опять же процесс знаком. Возвращаемся в терминал, вставляем, запускаем. Так, ну что, процесс только что завершился, должно всё работать. Открываем наш докер. Отлично. Смотрите. И теперь у нас крутится контейнер с аламой. Он up and running. И вроде как всё хорошо. Ну и, наконец, настаёт то самое время, когда, ну, пора бы нам вообще потестировать, что у нас получилось, да? А давайте попробуем зайти в дашборд Superbase на нашем локальном хосте. Давайте попробуем залогиниться в NMus Man на нашем локальном хосте. Давайте попробуем туда подключить аламу и какие-нибудь нейронки. Чтобы понять, как это делается, давайте откроем обратно нашу инструкцию для Superbase. Да, у нас, в принципе, сказано, что Superbase Studio, графический интерфейс для Superbase
должен крутиться на локал хосте 8 А ты000. Открываем. У нас открывается Superbase. Важный момент, как мы узнаём креды, да? Каким образом мы прямо логинимся в наш? Помните, мы с вами говорили про то, как же важно правильно заполнить DotaN nv, да, прежде чем мы разворачивали в принципе Sup. И мы с вами развернули Dotnv просто в умолчательном состоянии. Я просто это не устану повторять. Если вы разворачиваетесь на внешнем сервере, обязательно посмотрите наши прошлые видео, как правильно редактировать этот файл. Так как мы развернулись локально, то этот файл сохранён в виде, прямо в котором нам предоставили его разработчики. Поэтому мы можем пользоваться прямо кредами, которые здесь прописаны. Нас интересует dasбоard username. Да, это superbase написано. Пробуем. Вставляем superbase. Dashboard password. Копируем. Вставляем sign in. И мы попали в нашу локальную subabase, которая работает на нашем локальном компьютере. То есть мы можем пойти в Table Editor, увидеть, что тут есть возможность создавать таблицы. Тут есть SQL Editor. Всё ровно то же самое, к чему мы привыкли в облачный Supase, только на нашем локальном компьютере. Это ли не прекрасно? Пробуем логиниться в NV CN. Переходим в документацию. Мы видим, что как только вы запустились, у вас всё должно работать на порте 5678. Открываем этот порт, и мы попадаем в наш N8N. Я уже запускал его, поэтому у меня здесь есть какой-то, а, какой-то workspace, но когда вы пройдёте вот по этому адресу local host по 5678, вы попадёте в интерфейс создания вашего аккаунта. Вы просто вбиваете ваши креды, нажимаете create и попадаете внутрь вашего локального NV CMEN. После этого вы можете создавать все автоматизации прямо на вашем компьютере, которые вам нужны. А давайте прямо сейчас попробуем это сделать. Ведь нас Superbase, по сути, Олаama интересует в разрезе привязки к нашим автоматизациям на Envo Cm. Поэтому с вами нажмём create workflow. И давайте попробуем прямо самый простейший workflow, когда у нас
есть какой-то чат-триггер, да, запустили. Всё, добавляем какого-то агента. И к этому агенту мы теперь хотим добавить модель, но на нашем локальном компьютере, который крутится, и Memory из Superabase базы, ну, точнее, из постгресбазы, которая также сейчас крутится на нашем локальном компьютере. Давайте прямо попробуем добавить модель. Обратите внимание, всё, что вы видите здесь, все но- это но, которые будут выходить вовне вашего локол хоста и стучаться во внешние серверы для того, чтобы коммуницировать с моделями. Нас интересует именно Алама, да, не путайте. Прямо выбираете Алама, проваливаетесь вовнутрь. И теперь нам нужно создать креды. Да, начинается самое интересное, потому что в массе комментариев, а, под предыдущими видео пишут: "Ну, ты показываешь, как установить это всё". Да. Ну, самые же нюансы кроются в том, как это внутри всё настроить, как это сделать так, чтобы между собой всё работало. Прямо сейчас мы это с вами сделаем. Процесс очень похож, да? Нам нужно создать новые креды. Какой правильный URL к нашей аламе? Здесь по умолчанию заполнен local host 11434. А давайте проверим, где у нас крутится алама. Она как раз на этом порту и крутится. То есть, по идее, всё должно работать. Нажимаем save. Ничего не работает, потому что вместо local host мы должны написать алама, нажать retry и тоже ничего не сработает. Это заняло у меня какое-то время, чтобы поразбираться когда-то, да, и настроить всё правильно. Но в чём прикол? Сейчас, если мы откроем Docker, то мы видим, что у нас все наши сервисы крутятся в разных контейнерах. То есть, по сути, они не видят друг друга и порты друг друга. Один способ запустить это всё в одном контейнере, да, например, как мы делали когда-то вот на нашем внешнем сервере, да. Другой способ, создать единый нетворк для них, для того чтобы в рамках этого нетворка они видели порты друг друга, контейнеры друг друга и могли коммуницировать между собой. Соответственно, Doкер это позволяет сделать. Нам нужно либо создать какой-то готовый network, либо использовать networkк, который уже, например, ну, сейчас крутится в нашем контейнере. Что мы делаем? Каким образом мы узнаём, какие нетворки у нас уже есть? Возвращаемся в наш терминал и пишем команду Docker Network LS. О, смотрите, у нас уже есть несколько нетков, да? Bridge, host, my network, non и Superbase Default. Superbase Default - тот networkк, который создал контейнер Superbase, чтобы все его сервисы между собой хорошо коммуницировали. В принципе, для наших локальных нужд я не вижу ничего страшного в том, чтобы прямо в этот network Superbase добавить и нашу Аламу, и наш N8N. Таким образом, они будут все видеть друг друга, коммуницировать друг с другом без проблем. Давайте прямо это попробуем сделать. Итак, нам нужна команда Docker Network Connect Superabase Default NVN, Docker Network connect Superabase Default Alama. Мы оба наших контейнера подсоединяем к нашему нетворку от Superbase. Вроде как всё получилось, никаких ошибок не увидели. Возвращаемся обратно в нашу автоматизацию N8 Man. Так, а давайте ещё раз попробуем. Всё заработало. Зелёный свет. Это значит, что теперь наши контейнеры видят друг друга и могут коммуницировать друг с другом. Это нас устраивает. Это просто прекрасно. Сей. И вообще говоря, если мы сейчас переоткроем, мы видим, здесь уже есть две каких-то сети, потому что я чуть-чуть счетырил, да, я до этого поставил, пока ждал, пока другие сервис устанавливаются, какие-то сети, но сейчас мы прямо посмотрим, каким образом это делается. Что нас интересует валами?
В первую очередь нас интересует возможность векторизовать данные, потому что мы сейчас с этим будем много работать. и коммуницировать с нашими с нашим агентом через ну через нейронку, которая крутится на нашей машине, да? Идём в модели. Я всегда советую ставить, смотрите, для эмбедингов здесь есть модель nomicтек, то мы делаем тут прямо прописана команда аламаol nomicтек. Забираем эту команду, возвращаемся в docker, проваливаемся в контейнер с аламой, и здесь есть вкладка ex. Здесь пишем алаama pмиic bтек. Начинается пулинг, да? Так как он у меня уже затянут, соответственно, всё произошло очень быстро. У вас потребуется какое-то время, чтобы именно эту модель затянуть. Сразу же после этого она станет доступной в NCM. То же самое, да, вы выбираете себе какие-то модели, которые потянет ваша машина. Да, я себе поставил ещё ламу 3,2 или 3,3, я уже не помню, или четыре. Вот выбираете, да, обязательно обращайте внимание, что когда вы выбираете, например, какие-то огромные модели, во-первых, они весят, да, очень много, а во-вторых, скорее всего, если у вас конфигурация компьютера недостаточная, они просто у вас не будут работать, да, забирайте команду, только алама пулol, да, забирайте конкретную версию нейронки, которая вам нужна, возвращайтесь сюда, вставляете, ваши модели тянутся. Ну что, настало время устроить нам гран-тест, да? У нас тут выбрана Алаama 3,2, да? То есть, по сути, мы можем попытаться уже что-то спросить. Давайте так. Смотрите, как выполняется на наш агент. И он сейчас задействует нашу локальную нейронку. Выглядит это прекрасно. Мы платим сейчас ноль за это, только за электричество. Не выходим в интернет. Всё работает прямо у нас, локально на нашей машине. И у нас есть ответ: "Привет, я всего лишь языковая модель, и у меня нету эмоций, ничего". То есть мы только что покоммунициру по покоммуницировали с нашей неронкой прямо внутри нашего компьютера, не выходя никуда за пределы. Я знаю, многие из вас сейчас этому обрадовались. Насколько же это важно. А что, если мы хотим сюда добавить ещё и память, нашу постгрес базу, да, которая есть в составе нашей Superabase. Хорошо, давайте делать, да
выбираем здесь память, Postgress, chat memory. И, конечно же, нам нужно создать креды для этого. Нажимаем создать новые креды. Так, host. Откуда мы берём все эти данные? Мы же как бы коннектимся не к внешней базе, да? Она у нас крутится прямо на компьютере. Поэтому нам надо вернуться в терминал, в наш любимый DNV файл, да, то есть наше переменное окружение. И смотрите, здесь есть отдельный переменный для постреста, да, вернее, для постгрест базы. Смотрите, здесь есть host, есть здесь database, здесь порт. А это именно то, что нам нужно, да? Так, берём host, возвращаемся. Host, соответственно, у нас DB. Слушаемся, да. Database Postgress, да, забрали. Анс тут есть user Postgress, оставляем. Default user Postgress, да, порт 5432. Проверяем, да, 5432. И самое важное, откуда же мы берём пароль? Да, пароль-то в том-то и дело, что пароль тоже есть, да? Posgess Password. Вот он наш суперсекретный и длинный PosGress Password. Не устану повторять, никогда не используйте этот подход для вашего виртуального сервера где-то вовне. Вы всегда должны заменить всевсевсе переменные окружения, которые представлены в этом файле, в соответствии с инструкциями, которые были пару видео назад. Вы прямо должны всё изменить, иначе вы рискуете очень сильно. Но сейчас мы забираем наш password, вставляем save. Всё зелёное. Должно всё заработать, да? То есть мы подключали чат trigger N8N chat history. Давайте прямо попытаемся залететь, да, table editor. Так, нет у нас тут таблиц, но по идее мы же помним, как работает. Нода агентская. Да, по идее, мы, если сейчас что-то спросим, он должен теперь уже прописать в эту базу session ID из чат-триггера. Да. Как? А сколько тебе лет? Да. О, отлично. Смотрите, он сходил сразу в базу, да? То есть мы можем ждать ответа, но по идее это означает, что если мы вернёмся в нашу Base и обновимся, мы уже увидим нашу новую таблицу, которая создана на нашем локал хосте. Сейчас здесь появятся данные после того, как ассистент нам ответит. Смотрите, у нас появился Human. How old are you? Да. И смотрите, I was released to the public in 2023. Но это ли не прекрасно? По сути, у нас сейчас уже работает коммуникация с нашим агентом и сохранение памяти конверсации внутри нашей локальной базы данных. Представляете, что происходит? Это прямо круто. Так, ну мы-то теперь хотим, чтобы он ещё отвечал на основе данных, которые мы в него загрузили. То есть мы хотим сделать рак, причём локально, нашими локальными силами нашего локального компьютера без выхода в интернет. Поэтому, да, мы забираем, а, ноду, которая называется Supase Vector Store
и к ней подсоединяем. Ведь-то нет, Open нам не пригодится. А ведь беeding, да, модель для эмбедингов мы затянули, и она называется Nomic Embed text latest, да? То есть мы добавили Алама, аккаунт тот же самый. И по сути, да, теперь мы хотим, давайте дадим ему имя, пока таблиц-то нету, да, подходящих и кредов в принципе-то нету, да? Каким образом настраиваются креды для нашей векторной базы данных? Это не то же самое, да? То есть так вот устроено BASE, что мы не можем использовать те же самые креды, мы использовали для постгрес базы, да? Нужно настроить чуть-чуть это иначе. Нажимаем create New Creedential и попадаем сюда. Каким же образом выбрать host? Это штука, которая тоже потрепала мне немножечко нервов. Поэтому сэкономлю вам прямо несколько часов этой же нервотрёпки и подскажу хост, как правильно прописать его, чтобы он коммуницировал с вашей локальной базой данных. Здесь нам нужно HTTP Host Docker Internal 8.000. Это именно тот порт, на котором крутится наша Superbase. Откуда мы берём сервис Roll Secret? Возвращаемся в наш терминал. Возвращаемся в наш любимый DNV файл. И видим, что есть здесь есть умолчательный сервис Roll Secret. Да, в тыся раз повторю, это не тот RЛ Sec Secret, который должен быть у вас, если вы идёте в паблик и запускаете ваш сервис публично. Это годится только для тестовых нужд, для вашего локалста. Никогда не разворачивайте это на внешних серверах. Я имею в виду с этим паролем, да, в прошлой инструкции есть информация о том, как менять правильно и генерировать эти секретные ключи. Возвращаемся в нашу Superabase. Прокидываем сюда Secret и нажимаем save. Connection tested successfully. То есть отлично. Теперь мы ещё подсоединились к нашей векторной Superabase, что нас, конечно же, не может не радовать. Мы уже даже видим табличку, да? У нас есть одна табличка NV chat history. Каким образом мы сюда хотим добавить векторную таблицу? Да, мы это с вами уже делали, да, в некоторых видео. Сделаем быстренько очень. Я не буду а объяснять в нюансах. Мы идём в документацию, мы переходим на Superbase. И здесь есть страничка, которая называется Longchain. Здесь есть SQL, который нам нужно запустить в нашей Superbase для того, чтобы создалась база документы и к ней ещё функция Match documents для того, чтобы искать по embedдингам правильно наши данные. Идём обратно в нашу Subabase локальную, нажимаем SQL Editor, да, вставляем сюда. Важнейший нюанс. Наша модель ожидает размер вектора не 1.536, а максимум 768. Обязательно мы меняем на 768, иначе у вас просто, а, модель отплюнет вас, когда вы будете пытаться её использовать. Всё остальное мы уже с вами делали. Обязательно посмотрите видео, что это всё значит, что это за сиквел, да? Запускаем success. Это значит, что если мы перейдём в Table Editor, у нас появилась таблица документы, которые готова принимать наши векторы и отдавать, а, результаты поиска по векторной базе. Так, возвращаемся, да? Соответственно, давайте попробуем пере переоткрыть. Так, у нас появилась наша таблица документы. Вообще говоря, мы готовы отсюда уже что-то читать, да? Но вопрос, что мы будем отсюда читать, если мы ещё ничего не викторизовали? И здесь мы подходим к очень интересной теме, каким образом мы будем работать с нашим NVC и локальными файлами на нашем компьютере. Помните, когда мы, а, устанавливали себе N8m, я сказал: "Не забудьте про то, что мы хотим создать два диска, да, один для хранения данных NVC Main, а другою мы хотим открыть нашу локальную папочку, которая называется My Files для нас, чтобы мы могли там хранить, например, какие-то файлы и читать их с помощью CM. Где хранится эта папочка My Files?" Зависит от вашей конфигурации. Я советую просто поискать поиском по вашему диску. Если не знаете, как быстро найти, точно найдёте. Вот я в своей маковской файловой структуре нашёл. Он лежит здесь. My files, да, я только что добавил сюда какой-то файлик 1T, да, это нам понадобится в будущем. Почему это настолько важно? Ну, сделать такую вещь. Это значит, что для нашего CMN сейчас открыт некоторые локальные некоторый локальный фолдер, в который могут лежать файлы, другие папки, которые мы можем векторизовать, да, не уходя в Google Drive, ЯндексДис, ещё куда-то. Всё прямо на нашем а компе. Ну, давайте пробовать, да? Есть такая нода, которая называется
locale. Отлично. Добавляем её. И мы хотим отслеживать изменения, например, в какой-то папочке, да, на нашем локальном а диске, да? То есть мы уже выяснили, что наш для нашего N открыта вот эта папочка, да, чтобы обратиться ко всем файлам внутри этой папочки, нельзя оставить здесь просто пусто, да? Здесь нужно прописать files, да, и определить, за чем мы следим. Да, мы хотим следить за добавлением файлов, за изменением файлов и за удалением файлов. Помните, мы уже с вами много говорили про рак, да, и каким образом апдейтить, держать в актуальном состоянии базу в этом рак, да, и вот это тоже краеугольная штука, потому что всю базу мы уже знаем и теперь реализуем эту базу, но уже с нашими локальными файлами. Нам ничего не мешает сейчас нажать потестировать шаг и посмотреть, а действительно, действительно ли N8N ожидает изменений в нашем файле. Да, например, напишем Hello World, нажмём сохранить. Так, у нас NVO CM только чтострелила и говорит: "Произошёл ивент, который называется Change, и он произошёл в папке, которая называется 1xT." Прекрасноя, то есть это ровно то, что нам нужно, да? Если мы нажмём, например, сейчас затестировать это всё, да, и, например, добавим ещё один файл, мы увидим, что появился ещё один файл с ивентом add, то есть всё работает прекрасно. Ну и тестируем последнее удаление, да? Удаляем. Отлично. У нас пришёл eventт unlink и файл, который мы только что удалили. Всё работает просто как часы. Нам это и нужно. Дальше мы добавим какую-то развилочку, да? Например, мы хотим понимать, файл был добавлен, изменён, удалён, потому что в зависимости от этого мы же хотим совершать манипуляции с нашей векторной базой данных, да, удалять релевантные записи или добавлять их или изменять. Да, мы только что выяснили, что нам нужен ивент. И, допустим, мы хотим здесь реагировать на change. Мы уже знаем, что называется change, да? Соответственно, если change, тогда мы идём по веточке true, да? Отлично. Давайте пробовать. Тестируем. Отлично. Так как у нас был последний и eventт unlink, мы пойдём по веточке false, да, если true. Смотрите, если вы тут хотите, если вы хотите с этим разобраться плотнее, например, сделать развилки, которые прямо реагируют на разные события файлов, и построить в зависимости от этого работу с вашей векторной базой данных, обязательно заходите в наш проканал. Вот мы там такие прямо технические нюансы жёсткие, которые готовы прямо для продакшена. Обсуждаем, подтачиваем разные боты под ваши нужды, отвечаем на сложные технические вопросы. Всё это прямо там. Обязательно туда запрыгиваете. Вы точно там найдёте массу крутейшей технической информации, которая вас прямо двинет вперёд по тематике автоматизации искусственного интеллекта. Сейчас мы отреагируем на события change, да? Соответственно, если это изменение файла, мы хотим сделать следующее. Мы хотим в нашей векторной базе данных удалить из нашей таблицы documents, да, в которой мы и так будем потом записывать э векторизацию, удалить все записи, в которых есть в метаданных файл ID, который называется Jason Path. Что это такое? Зачем мы это делаем? Мы это обсуждали в буквально пару видео назад. Каким образом мы держим всегда в актуальном состоянии наш рак. Вот обязательно посмотрите, там прямо объяснено, что это за фильтрация, да, что это за методанные. Это краугольная штука, в которой вы должны разобраться. Ну или опять же в нашей прогруппе прямо залетать и всё это там по полочкам тоже разложено, да? Удаляем такие записи и дальше добавляем ноду, которая называется read files from disk. Да. Соответственно, мы только что поняли, что мы работаем с нашим файлом, и мы хотим прочитать файл с этого диска, да, и сам путь к диску мы ведь знаем, да? Потому что вот он у нас тут и лежит, да? Соответственно, мы захотим прочитать этот файл и извлечь из него данные, которые мы захотим векторизовать. Для этого тоже есть нода, называется extract from file. Да, extract from textф file data, дата. Здесь мы прямо оставляем всё без изменения. И дальше извлечённые данные мы уже можем завекторизовать для того, чтобы впоследствии использовать это как долговременную память нашего ассистента. Нам нужен Supс Vector Store. И мы хотим добавить документы в Vector Store. Правильно же? В какую таблицу мы хотим добавить? наши документы. Да, здесь мы оставляем всё по умолчанию. Подключаем нашу модель. А мы уже знаем, да, мы уже использовали нашу аламу для векторизации. Соответственно, у нас есть соответствующая модель, которая позволяет векторизовать данные, да, и добавляем datoader, да, так как к нам уже приходит текст, и мы хотим добавлять метод данные в эти записи. Опять же, что сейчас мы делаем, да, почему это делаем? Мы прямо точечно всё это проговаривали в наших предыдущих видео. Обязательно посмотрите видео про обновляемый рак. Мы прямо сейчас переиспользуем концепты, которые мы там проговаривали, и добавляем текст splitter, да? Добавляем character текt splitter. Оставляем здесь всё как есть. Так. Ну что, это выглядит таким образом, как будто бы если мы сейчас что-то изменим в файле, а, в заданной папке, то система должна сначала понять, что это был чейн, потом поискать в векторной базе данных записи, удалить соответствующие записи, которые соответствуют именно этому файлу для того, чтобы держать актуальность, потом извлечь все данные, да, и потом векторизовать эти данные. и записать это в таблицу documents. Ну, давайте пробовать. Мы запускаем наш workflow, идём сюда, открываем файл и скажем 185 см высотой, да? Пробуем сохранить это. Так, пролетело всё просто очень быстро. Давайте смотреть, что произошло. Так, он определён, что эточе. Всё правильно. Он удалил все релевантные данные, которые были в таблице. Дальше что он сделал? Дальше он, а, прочитал этот файл, да, и вот прямо контент этого файла. Дальше что он сделал? Дальше он извлёк именно информацию, э, которая была в этом файле. И дальше он взял это всё и векторизовал. И это произошло просто на нашем компьютере локальном без выхода в интернет. То есть, если мы сейчас сюда пройдём, отлично. Смотрите, у нас есть викторизованные данные. This is what you know about me. И дальше здесь есть наши методданные, в которых записан файл ID. Это значит, по-хорошему, что теперь наш агент уже может ориентироваться на эту информацию для того, чтобы отвечать на релевантные вопросы про НАСА. Давайте пробовать. Давайте обновим новый session ID сделаем. Ну и так меня спросим, как меня зовут. Так. И только что наша модель завершила работу. Посмотрите, что она задействовала. Она сходила в нашу базу данных, записала историю нашей переписки, потом обратилась в Superbase, достала чанк, где было указано моё имя, и ответила мне на основе этой информации. Ещё раз, это всё произошло прямо на нашей локальной машине без выхода в интернет, бесплатно для нас. Мы не заплатили ни за нейронки, ни за хостинг, ни за что. На этом всё. Я надеюсь, что после этой инструкции у вас прямо получится запустить ваши локальные нейронки. Имейте в виду, что локальные нейронки с маленьким количеством параметров, они даже близко не стоят по своей точности ответов и наполненности информацией с нейронками коммерческими. Поэтому вы, скорее всего, если поставите какие-то нейронки, вот как я поставил, вы будете получать очень низкого качества ответа для того, чтобы понять принцип, каким же образом всё это работает у нас локально на компьютере. Этого более чем достаточно. Поэтому обязательно пробуйте, напишите комментарии в Ютубе, как у вас получилось, не получилось. Конкретно вот эта автоматизация N8 CNN будет в моём бесплатном Telegram-канале. Заходите туда, забирайте. Прямо после этого здесь нажмёте import from file, загрузите и получите прямо эту же автоматизацию. И обязательно заходите в нашу прогруппу, проверяйте, если вы хотите прямо быстро развиваться в теме автоматизации искусственного интеллекта. Я думаю, это лучшее место для вас. Всем пока.