# Сделай ИИ агента в 100 раз умнее с помощью KAG

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

- **Канал:** Владимир Карпухин
- **YouTube:** https://www.youtube.com/watch?v=wYE4JluWhOw
- **Дата:** 24.10.2025
- **Длительность:** 58:22
- **Просмотры:** 21,471

## Описание

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

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

Приватка закрыта!
---------------------------------

KAG - https://github.com/OpenSPG/KAG
Модели KAG на huggingface - https://huggingface.co/OpenSPG

Polza AI - https://polza.ai/?referral=n9Nii7iXEs&utm_source=blog&utm_medium=cpc&erid=2VfnxvNAT29
n8n - https://n8n.partnerlinks.io/9f51nckey33z
beget - https://beget.com/p2340235/cloud/marketplace/n8n

В этом видео я, Владимир Карпухин, покажу как сделать ИИ агента в 100 раз умнее с помощью KAG (Knowledge Augmented Generation)! Полный гайд по технологии граф знаний KAG, которая превосходит классические подходы. Объясню что такое KAG, почему KAG лучше RAG и KAG лучше GraphRAG. Покажу как сделать ИИ агента умнее через практическую реализацию. Продемонстрирую архитектуру граф знаний - как KAG находит связи между сущностями и извлекает контекст

00:00 - Что такое KAG?
06:03 - KAG builder
13:53 - KAG solver
21:20 - Обзор на UI. Добавляем LLM и embedded
26:10 - Загружаем документ в KAG. Создание knowledge base
35:45 - Ищем инфу в KAG. Создание application
39:50 - Выводим KAG по api
47:41 - Почему KAG лучше GraphRAG?
48:52 - Установка KAG на сервер
54:45 - Где уже используется KAG? Контекстное окно LLM

## Содержание

### [0:00](https://www.youtube.com/watch?v=wYE4JluWhOw) Что такое KAG?

KAG это лучший способ сделать вашего ИИ агента  умнее и точнее в 100 раз. В этом видео я покажу,   как быстро создать граф знаний в KAG, загрузить  туда документ, найти информацию в этом документе   и сделать всё это за несколько минут. А ещё  я расскажу, почему KAG, Knowledge Augmented   Generation лучше, чем RAG и Graph RAG. На тему  KAG очень мало информации в интернете, но я решил   это изменить. План видео такой. Видео про KAG.   KAG что такое KAG? Это первое, что мы разберём,   что такое knowledge segmentation, как оно работает  вкратце. Потом мы разберём, почему это лучше, чем   RAG и graph RAG. Разберём, как работает KAG более  подробно поймём, как им пользоваться, и установим   его к себе на сервер. Ну, поехали. KAG. KAG  Knowledge Augmented Generation или KAG, я не знаю,   как его называть. Это генерация, дополненная  знаниями. Это фреймворк, предназначенный для   логического рассуждения и ответов на вопросы  в профессиональных предметных областях. Ничего   непонятно, поэтому я написал вот. Что? Поехали. По  порядку. Обычный RAG. Мы разбирали,   много про него говорили, есть ролики на  канале, смотрите и так далее. Обычный RAG,   он тупо ищет инфу, мгновенно вытягивает её  из библиотеки. Что такое библиотека? Это   это вот очень упрощённое объяснение, пока что без  сложных терминов. Вот прямо на пальцах объясняем.    То есть он тупо достаёт информацию книжечки, да,  информацию с книжечек в библиотеке, но остаётся   проблема с контекстом и не связанными данными.   Ориентируется только на векторное сходство.    Есть ролик про RAG. Вот у меня стрелочка идёт  вот сюдасюда. То есть вот у меня это из видео   про light RAG. Рассказываю, как работает обычный  KAG. То есть просто текст преобразуется в вектор   и сравнивается с векторами уже внутри векторной  базы данных, а потом берёт ближайшие и вытягивает   их. Если вам ничего непонятно сейчас было, тут  у меня тайм-код где-то там видео полный гайд на   recк там на 2 часа. Очень много информации. У  вас никаких вопросов не останется, если вы его   глянете. Если вы это знаете, то продолжаем. Ну вот  смотрите, допустим, у нас такой вопрос. Кстати, я   вот старался, рисовал, как вам арт, мне нравится.   Ну вот, допустим, у нас вопрос query. Query - это   запрос на английском. Расскажи про Apple. И а  обычный рек находит два чанка. Он находит чанк,   а следующий, где написано то, что яблоко - это  фрукт, на дереве растёт, потому что, ну, слово   Apple и яблоко, они очень близки по векторному  значению, это можно сказать одно и то же. И второй   чан, который он находит, это, например, то, что  яблока - это компания Apple. А непонятно вообще   о чём речь, да? Вот она описана проблема. То, что  проблема, если в одной книге говорится про фрукт   яблока, а в другой про компьютер Apple, он может  запутаться и принести обе книги. Он не понимает,   о чём идёт речь. Он просто ищет похожие слова,  но не смысл и логику. Ну да, и проблема тут с   контекстом, с несвязанными данными - это проблема  скорее несвязанных данных. Также остаётся проблема   контекста, то, что в чанке нет полной информации,  непонятно вообще, о чём идёт речь. Потом у нас   идёт графк, который я разбирал в прошлом ролике,  тоже отличное видео, посмотрите. Он уже умнее,   он с контекстом, он со связанностью данных.   Проблем меньше. Вот видите, я специально нарисовал   связанность данных. Есть сущности entities и  отношения relationships. Тут я это не отобразил,   извините. Ну, сейчас я его найду тут. Ну вот, да,  из прошлого ролика пройтрек. Сущность entities,   то есть это вот такие вот кружочки и отношения это  вот эти вот рёбра, отношения между сущностями. Он   решает многие проблемы, которые особенно есть в  обычном рег, но это всё равно поисковая система,   он просто достаёт чанки. Да, там очень много всего  применено, но это просто поисковая система,   да. А вот KAG или как Knowledge augmented  Generation, это уже next level. Это агент,   профессиональный библиотекарь, который выстраивает  план поиска, ищет, рефлексирует и, если надо,   ищет заново. То есть это гораздо более мощная  штука. Надеюсь, я вас заинтриговал. Здесь тоже   используются графы, тоже используются сущности  отношения, тоже используются вектора, но здесь   по-другому это выстроено, другая архитектура.   Сейчас об этом по поподробнее поговорим. И что   получается? RG - это поисковик. Graph RAG. Ну,  как помните, это фреймворк. Допустим, вот мы,   речь идёт про LightRAG, да, какой-нибудь. Это  более умный поисковик, но всё же это поисковик.    А KAG KAG - это полноценный агент, специально  заточенный под поиск. Можно, конечно же,   мудрить и строить тот же KAG самому, может даже  в n8n, но зачем, если есть готовое решение,   которое работает качественно. И у KAG есть супер  крутой UI, это важно. И смотрите, какая ситуация.    Когда мы говорили про рег, это понятно, мы  его самостоятельно строим по сути. То есть это,   ну, просто векторная база данных. Оттуда достаются  чанки. Когда мы говорили про graphRAG, там были   graphRAG фреймворки такие как Zep, а такие  как LightRAG, такие как graphRAG, их, короче,   многое количество их. Ну, там ещё есть и другие  фреймворки, определённое количество их существует.    А Граффити назывался не Zep - это компания. Ну,  неважно. А RAG - это как бы тоже фреймворк, но   проблема в том то, что это конкретный фреймворк.   То есть пока что кроме этого решения Кэк я других   не встречал. Это при том то, что KAG появился как  давайте как буду называть. KAG появился давно,   осенью 2024 года по меркам Ии в прошлом веке. Это  очень давно. И почему-то с тех пор, ну, никто не   стремится сделать какое-то подобное решение. Хотя  можно было бы, на самом деле. Потребность в этом   есть, скажем так. Что это за фреймворк? Вот это  вот репозиторий на Гитхабе. Ссылка, естественно,   будет где-нибудь там в Telegram-канале, скорее  всего. KAG конкретный фреймворк от компании Open   SPG. Geg knowledgeed generation. Это китайская  компания, которая сделала KAG. Информации про   него в интернете реально вообще, ну, я очень  мало видел. Может быть, где-то на китайском   языке она есть, но на англоязычном Ютубе я там  три ролика нашёл про KAG. Но, по крайней мере,   есть документация, есть вот репозиторий на  Гитхабе, есть вот что-то ссылка на Vчаchat. Vча,   что это китайская соцсеть, самая популярная, не  настолько популярное решение, как там графрег и   всё остальное. Вот такой репозиторий. И что  важно, у этого репозитория там есть сразу UI   usеer интерфейс прикольный, потому что вот мы  разбирали, например, LightRAG в прошлый раз,   там был usеer интерфейс, а вот graphRAG от  Microsoft, который там юзер интерфейса нет,   и это как бы не круто, да, ну что-то не хочется  такое. Хочется, чтобы он был, чтобы вы простили

### [6:03](https://www.youtube.com/watch?v=wYE4JluWhOw&t=363s) KAG builder

жизнь. А теперь мы разбираем подробно,  как работает кэк, почему это круто. У KAG   согласно его документации, я документацию  специально скачал. Там были проблемы с тем,   чтобы её нормально скачать. Я, короче, её скачал  и оставлю у себя в Telegram-канале. Приходите,   подписывайтесь. Можете закинуть её там в ноутбук  LM, например, чтобы по ней найти какую-то   дополнительную информацию. И, ну, и закиньте  ещё туда ссылку на репозиторий, да, к примеру,   который я только что показывал. Поехали. Как  работает какг? Почему это круто? Есть три основных   составляющих в Кэг. Есть гбиilder. Давайте как  буду говорить. Как builder, есть как солвер,   как modelл. Как builder - это, а, получается  первая составляющая, которая отвечает за то,   чтобы выстраивать как бы граф знаний. Ну, как его  называть? Ну, граф знаний, да? То есть это когда   мы загружаем документ и он выстраивается вот в  специальную систему, по которой потом можно будет   эффективно искать информацию. Как солвер. - это  непосредственно искатель информации, это агент,   который ищет информацию умный, навороченный.   То есть вот это два - это основные столпы. Как   модул - это всё то, что является лмкой а в большой  языковой моделью в устройстве как в целом. То есть   вот тут у нас в какбилдере задействуется лмка,  в как солвере тоже задействуется лмка. И вот как   модул это она и есть. Ну и погнали подробнее про  каждый из них. Начнём с какбилдера. Какбиilderдер,   смотрите, изначально у нас есть документ, он  делится начанки семантически. Что это значит? А   вот написано, да, семантическое деление исходного  файла на чанки на фрагментах. Это значит то,   что получается не просто разорванные чанки. Как  вы помните, когда мы делали кг или вы делали кг,   у вас была явно проблема такая, то, что вы делите  документ на чанке, а он обрезается на полусловия.    И это не круто. Есть, конечно, всякие решения  прямо внутри. Я видел, для того, чтобы делать   семантическое деление начанки, это тоже полезно,  если вы делаете обычный рэг. Но смотрите, как тут   это реализовано, да? То есть он делает логически  завершённые чанки примерно одинаковой длины, чтобы   каждый чанк был не рандомным отрывком текста, а  осмысленным, понятным куском. Например, обычное   деление начанки как происходит, да? Оно просто вот  так идёт. Типа Володя снимает про N8 и всё, конец   предложения, конец чанка. А вот семантическое  деяние начанке, оно понимает то, что мысль не   закончена и заканчивает мысль. Володя снимает про  N8N и не только. Делается это с помощью lm внутри,   по-моему, насчёт этого не уверен. Но как ещё  в целом это можно сделать? Потом, смотрите,   мы разделили начанки, и следующий этап - это вот  они просто загружаются в векторную базу данных.    То есть как обычно reg работает, то есть чанки  разделили, загрузились в векторную базу данных.    Потом идёт следующее: извлечение информации.   Это извлечение как бы сущностей и relationships,   как они называются, рёбра, отношения. Вот  только чуть по-другому, более мудрёно. Смотрите,   LM читает каждый чанк, который выделился  фрагмент, и использует специальный инструмент   open I. Это такая штука, это open information  extraction. Что он делает? Он находит в тексте   три главных элемента. Они называются  субъект, предикат и объект. Субъект кто?    Предикат, что сделал и объект, с чем это связано.   Это называется SP триплеты, то есть SP - это   получается субъект. Пи - это предикат, о объект.   Всё, всё понятно. Вот вам наглядный пример. Кто   Иван что сделал? Написал. Что написал? Книгу.   Субъект у нас Иван. Предикат у нас написал,   то есть что сделал. И объект - это у нас книгу.   То есть понятно. Потом идёт согласование. Это   этап называется knowledge alignment. он склеивает  дубликаты, там разбирает синонимы и прочее. То   есть в обычном рек тоже такая проблема возникала,  в йтре у меня тоже такая проблема возникала. То   есть очень знаете, что у меня было вот прямо есть  вот, например, квадрант и я загружал транскрипцию   своих роликов. А, ну я предварительно её готовил  перед этим тоже через там лэмки, через чат GPT,   не помню, через что, через GM, по-моему. И он  неправильно у меня слово квадрат расшифровал.    То есть у меня было в одной транскрипции ролика  вот так слово квадрант записано, а во второй   нормально. Вот так квадрант. И у меня в итоге  втрек было две вот таких вот сущности: и квадрант,   и квадрант. Там как бы тоже есть штука, которая  занимается тем, чтобы уда удалять дупликаты и   прочее, но она не такая эффективная. А вот здесь  вот склеивание дупликатов, понимание синонимов,   оно работает прямо гораздо более эффективно. Вот  на вот пример есть, да, чанк АС Пушкин, есть чанк   Александр Пушкин. Это склеивается в один чанк,  чтобы не было лишней грязи. То есть он понимает,   ас Пушкин, Александр Пушкин понимает, что это одно  и то же, и склеивает информацию. Это тоже важно,   чтобы там не захломлять. Потом он добавляет  описание. LM не просто извлекает Пушкин,   он также создаёт для этой сущности, для Пушкина  короткое резюме, summary и описание desриption.    Это нужно, чтобы другие части системы всегда  знали, о каком именно Пушкине идёт речь. Потому   что бывает такое то, что в случае, если два  разных Пушкина, например, да, однофамильца,   они будут разными сущностями. То есть это  тоже всё учитывается и для них делается вот   самредискрипtion. Вот как раз другие части системы  всегда будут знать, о каком имени Пушки не идёт   речь. имени, господи, о каком именно Пушкине  идёт речь? Да вот, потому что это может быть   однофамилец и как билдер это учитывает.   В чём разница между desрипtion и Summary?    А Desрипtion - это описание, общая описательная  информация, помогающая LLM понять точное значение   экземпляра. А Summary - это краткое содержание  экземпляра. Ну, то есть вот Пушкина, да, например,   в контексте исходного документа. Тут грань такая  тонкая, но она есть. То есть разница. То есть   здесь более общая инфа. Здесь именно в контексте  документа. Дальше это всё заносится в граф,   если что, вот я же тут всё отобразил, да? Вот  он сематический делит санчанки, вектор database.    Извлекли информацию, согласовали. То есть мы  сделали вот согласование knowledge alignment,   добавили описание и вот загружаем в graph  database. Смотрите, в graph database субъекты   объекты становятся сущностями entities. Субъект  объект у нас, к примеру, это вот Иван, объект,   книга, да? А предикаты вот такие, как написал,  они становятся рёбрами или relationships. Вот   специально перетащил из ролика про этого про  лайтрек. Ну вот объекты, вот ээ эти edges,   рёбра, relationships. Субъекты, объекты у нас  останятся сущностями, вот, например, Володя,   да? А отношениями с рёбрами становятся предикаты  становятся рёбрами. И что важно, они ещё ссылаются   на свои исходные чанки. сущности и, а, рёбра,  сущности и отношения, скорее, давайте так будем   говорить. Они ссылаются на свои исходные чанки,  из которых они были извлечены. То есть вот на   вот эти вот чанки, да, которые у нас выделились,  да, на первом этапе. Вот тут вот. О, у меня что   же такая штука есть? Что я не пользуюсь? Короче,  они ссылаются на свои исходные чанки, из которых   они были извлечены. Эти чанки лежат в векторной  базе данных, как я показал, вот там наверху. И   это называется взаимное индексирование. То есть  на выходе получается структура знаний, привязана к   исходному тексту чанкам. То есть они друг на друга  ссылаются, да? Есть то, что находится в чанках,   отношениях и сущностях.   Они друг на друга ссылаются. Это тоже эффективно.    Называется это взаимное индексирование, mutual  indeксиing. И вот про индекс, потому что, ну,   мало ли, индекс - это как оглавление в книге  для базы данных. Если искать нужную страницу   без оглавления, надо листать всю книгу, а с  оглавлением быстро находишь нужное место. В   базе данных индекс помогает быстро найти записи,  не перебрая всё подряд. Индексирование - это   создание такого оглавления индекса для данных.   Это специальная структура внутри базы данных,   которая содержит список значений и указывает, где  в таблице хранится нужная информация. Благодаря   индексам поиск данных становится намного быстрее,  да, то есть они друг на друга ссылаются. Это круто   работает. Как билдер мы разобрали, то есть как  происходит построение а базы данных, графа знаний,   точнее, потому что здесь база данных как бы и  векторная задействуется, и графовая, Neo OFO 4G,   она помню называется. Она вот хорошо знакома. Я  привык, как выглядят эти буквы. Вот это не УФо 4J,   но я не часто это вслух произносил, поэтому  я не помню, как это произносить правильно.    То есть вы видите то, что тут уже есть разница с  графРК, то есть тут есть более мудрённые штуки и   есть подозрение, что это будет работать более  эффективно, да, но и токенов, скорее всего,

### [13:53](https://www.youtube.com/watch?v=wYE4JluWhOw&t=833s) KAG solver

тоже будет больше тратиться. KAG Solver - это уже  штука, чтобы искать. То есть это тот самый агент,   который в этой базе данных ищет инфу. Мы  сначала специально под него подготовили   нашу не базу данных, давайте так говорить,  подготовили для него граф знаний. И теперь   мы под специально подготовленный граф знаний  запускаем специального агента, который знает про   этот граф знаний. А смотрите, как он работает.   Он использует логическую форму, logical form   для декомпозиции запроса и выполнения гибридного  поиска. Как солверы преобразует сложные вопросы,   требующие нескольких шагов рассуждения, мультихоп  quies, они называются, в последовательность чётких   команд. Короче, преобразование запроса из обычного  человеческого языка в последовательных специальных   задач. Он умный. Он реально умный. Это специальный  агент, заточенный под поиск, и вам не надо его   настраивать. Это готовое решение. Хотя на самом  деле в девелопер версии, это мы разберём, когда   будем сейчас ставить всё на сервер, там можно его  настраивать. И смотрите, какой у нас пример, да,   сложный многошаговый запрос, исходный вопрос.   Как часто случалась чума в городе, где родился   композитор концерта Домажор ОБ 3 номерше. Это,  если что, название концерта, музыки, песни, я не   знаю, как это назвать, произведение музыкального.   Он планирует сначала пленни преобразует запрос в   логическую форму. То есть как солвер разбивает  этот сложный вопрос на несколько простых шагов,   используя логическую форму, logical form.   Специальный язык команд, состоящий из функцией   retrieval, то есть поиск. Sord сортировка, meth  математические выражения и output - это вывод.    Смотрите, как это происходит. То есть первый шаг,  он ставит себе найти композитора и ставит вот   такие штуки, да? Retrieval S = S1, а work смажор  OP3 номер 6. P = comper O1 = person. Смотрите, что   происходит. А, как я говорил, SPO триплеты, как вы  помните, которые мы вот тут вот разбирали, где они   SP триплеты, так это они есть. То есть получается  вот Sделяем субъект. Субъект - это у нас работа C   [ __ ] OP36, то есть это произведение музыкальное.   Предикат у нас композер, композитор. Объект у нас   person, то есть человек. Вот так вот он посчитал  нужным. Здесь он находит у нас Антония Вивальде.    Потом он ищет место рождения композитора. То  есть, видите, он прямо взял запрос и разбил   его на шаги. То есть первый шаг получил инфу.   Ага. Сделал второй шаг. То есть он анализирует,   он это уже полноценный агентка внутри системы в  Lтре. В обычном реке такого тем более нет. Мы,   конечно, к обычному рекре, ну, подвязываем и  агента, чтобы он сам это всё делал. Но всё-таки   это готовое решение. Понятное дело, то, что не не  под всё это подойдёт, но в целом штука полезная.    Теперь он ищет место рождения композитора. То  есть получается S берёт О1, объект один, то   есть person, вот как было видно. Потом P предик2,  это равняется birth place, то есть месторождения.    И объект он выбирает place, получается Венеция,  да, найти количество случаев чумы в этом месте.    Он ищет, получается, ищет количество случаев чумы  в этом месте, но ничего не находит. И смотрите,   что он делает. Он ничего не находит, и он  рефлексирует. То есть система видит то,   что ответ не получен, и запускает механизм  рефлексии. То есть там специально стоит ещё   элемент, который понимает, насколько полученный  ответ соответствует запросу пользователя. И если   он видит то, что не очень-то соответствует или  плохо соответствует, он запускает механизм заново,   но уже с учётом рефлексии. То есть рефлексирует  он переформулирует вопрос вот таким образом.    Какие конкретные записи или исторические данные  подробно описывает количество случаев Чему Венеции   в середине X века, чтобы это точно найти, да? То  есть он уже достал отсюда инфу, то что там место   рождения Венеция, там XV век и так далее. И дальше  у нас идёт переформулировка вопроса. А зачем я два   раза написал? Ну ладно. Потом идёт логическая  форма, новый запрос, то, что он ищет S1 City,   Венеция. А поиск находит то, что чанк следующий.   Шума случалась в Венеции 22 раза в период с 1361   по 1528 год и финальный ответ 22 раза. Также есть  пример следующий. Смотрите, вот, например, с meth   math, то есть запрос требующих числовых расчётов.   Если мы закинем числовые расчёты просто в recк   или в graf reg, то он затупит, то есть у него  нет специального отдельного элемента для этого.    А тут эта штука встроена. То есть как солвер  может использовать функцию meth для выполнения   математиче для выполнения математических  расчётов. Исходный вопрос: какова сумма 30 + 6?    И возраст основателя Тесла в 2027 году.   Типа там Илона Маску, например, 42 года,   я не знаю, сколько ему лет. Давайте 44. И тогда  будет 30 + 6, будет 36 + 34, это будет 70. Ну,   например, да, я не знаю, сколько ему лет. Вот что  он делает. Первый шаг: вычисли 30 + 6. Вычисляет,   есть. Найти основателя Tтеesla. То есть вот тут  он использовал F, тут он уже использует retтривал.    Находит основателя Tтеesla, извлекает сущность  маск. Потом найти год рождения. Он находит год   рождения, потом а вычисляет возраст основателя,  тоже вычисляет, то есть он нынешнюю дату,   здесь почему-то двадцамой год написан. Нынешний  год вычисляет минус год основателя и получается   возраст Илана Маска. И потом он находит сумму  двух результатов, то есть выполняется финальное   суммирование. То есть вы понимаете то, что эта  штучка прикольно работает. Как бы можно и через   Envoмен там, и через обычного Еагента подключить  к нему просто там лайтрек и дописать к нему то,   что нужно уметь делать математические расчёты. Но  это готовое решение. Почему бы не воспользоваться   готовым решением, да, в случае, если оно уместно?   Потом не знаю, нужны ли такие подробности. Ну   давайте, раз я написал, разберём. Ну в целом я  это уже сказал, на самом деле. То есть вот то,   что у нас есть функция logical forms. Вот такие  вот функции основные. Retrieval - это извлечение   данных. Он ищет информацию на основе с триплетов.   супикат, предикат, объект. Это может быть точный   поиск или гибридный поиск. Сорт, сордировка  результатов поиска, например, по возрастанию   или убыванию используется для упорядовачения  извлечённых данных. МФ математические вычисления   deс, я не знаю, как это считается. Dдюз, да, для  вывода ответов на основы результатов извлечения   или вычисления. Сюда входят логические операции  сравнения. И output - это вывод. используется для   непосредственного вывода переменных результатов  предыдущих шагов в качестве окончательного ответа   или промежуточного результата. Дальше мы переходим  к как model. Как model - это набор улучшений LM.    И получается, везде, где фигурирует LM в работе  KAG - это как модул. То есть там для извлечения,   для вот выстраивания плана, как нужно искать,  э для создания, а графознаний. Там используется   LLM. И везде, где оно используется, это как бы  как model. эту как model заточили под следующие   задачи, да, её заточили под понимание языка,  под логическое мышление, под генерацию ответов,   да, вот тут написано NL, NLU, NLI, NLG, и LLM  улучшает за счёт системных промтов. И вроде как   есть специальные ft модели КАГ, но я что-то туда  не вникал. И они, кстати, действительно есть. Я,   честно скажу, я не пробовал ими пользоваться.   Я подключал просто обычные модели, там Open   AI. В документации у них есть вот ссылка на Hagin  Face. Давайте я сейчас покажу вам. Вот смотрите,   это Hugin Face компания Open SPG SPG. У них вот  есть две модели, но вот смотрите, тут ничего нет.    Написано Realme MD exist, but content is empty. И  то же самое в этой второй модели. По крайней мере,   тут есть, кстати, ещё у них датасет вот для  фантюнинга, то есть как finker training dataset.    Вот здесь гораздо больше уже скачиваний. А вы  можете взять вашу модель какую-нибудь и сделать   фантюнинг. То есть это как раз для датасет для  фантюнинга. То есть вы просто всё это скачиваете и   фантюните вашу модель, любую, какую вы хотите.   У вас на выходе получается модель зафонтюненная   под задачи какг, и это должно работать  эффективнее. Вот. Но я это не пробовал,   честно говоря. Ссылку я оставлю в Telegram-канале  на это, на hgene. А теперь переходим к практике.

### [21:20](https://www.youtube.com/watch?v=wYE4JluWhOw&t=1280s) Обзор на UI. Добавляем LLM и embedded

Сейчас будет обзор UI, э, как загрузка документов,  поиск и вывод по API и проблемы API. Смотрите,   когда мы установили на сервер, установка будет  позже, у нас встречает вот такой вот интерфейс.    Здесь есть следующие вкладочки. Это knowledge base  application. Потом есть Tutorial. Это у нас ссылка   на документацию на сайте Open SPQ SPG, точнее.   Вот так она выглядит. Я прикреплю её на файлом,   чтобы удобно было закидывать там куда надо.   Ноутбук LM, например, вот этот сайт плохо читает,   видимо, из-за того, что он китайский. Также есть  тут ссылка на их веб-сайт. Вот он открывается,   да? Вот у нас Open SPU PG, точнее есть. Switch,  то есть можно поменять на китайский, не знаю,   если вы знаете китайский, на английский.   Это ссылка на репозиторий. А это у нас,   а, дополнительная, получается, настроечки. У нас  тут есть модель configuration, то есть то, где мы   добавляем модели. Тут нам нужна lm и нужна модель  для того, чтобы преобразовать векторы. Потом   есть data source configuration, это конфигурация,  конфигурация data sourсов. Потом есть мониторинг.    Это мы, а, сейчас оно прогрузится. Это мы  можем мониторить, что у нас происходит. Вот   token output, например, ну и так далее. Number  of active users. И потом есть user configuration,   потому что в Open SPG устроено так, то  что тут может быть несколько пользователей.    А как-то так. Ну и logout, то есть чтобы выйти из  аккаунта. Естественно, мы начнём с Knowledge Base,   чтобы создать Knowledge Base. Смотрите, прежде  чем создавать Knowledge Base, мы должны подключить   какую-нибудь модель в модель configuration. Что  интересно, я пробовал подключать Open AI LLM вот   через эту штуку, но она почему-то не подключается.   Модель OpenI подключается, кстати. То есть с этим   проблем нет. Можете подключить модель Open Router.   Я подключу модель польза AI. Тоже сделаю это через   Openouter. Можно, в принципе, так сделать. Вот  он их сайт. Здесь просто за рубли можно платить.    Удобно. У меня тут вот я пополнил баланс рублями.   Перехожу в ключи API. А давайте создам ещё один   API ключ. Вот нажмём создать API ключ. название.   Ну, пусть будет какг двной лимит. Без лимита   тоже лимит не хочу ставить, просто встаём ключ.   Готово. Копируем его и закидываем сюда. То есть   мы выбираем тут модель Type, выбираем чат. Потом  опять-таки мы ставим сюда. Visible range - это,   короче, есть private, есть паблик. То есть у  нас там есть несколько аккаунтов, есть несколько   пользователей. Если private, то будет видно только  для вас и для админов. Паблик будет видно для   всех. Потом а name модели можете тут прописать  польза i lm URL здесь нужно будет поменять. То   есть здесь по дефолту стоит URL Openроутера. Я  поставлю тут URL, а пользы AI. Чтобы это сделать,   нужно нажать на документацию API, перейти вот  сюда вот и нажать на интеграцию тут слева. Ну,   допустим, вот N8N. Можно, на самом деле, на любую  нажать. И вот тут нам дают URL. Отлично. Берём его   URL ставим сюда. Вот польза AI API V1 model.   Нужно прописать, какая будет модель. Давайте   возьмём GPT41 nano. Чтобы задействовать, нажмём на  модели EИi пролистаем. Тут найдём Open AI. Здесь   есть много разных моделей, но мне нужна Open AI.   Давайте GPT41на, потому что она дешёвая и быстрая.    Хотя давайте Mini. GPT41 mini возьмём. Вот всё  скопировали название именно вот там вот вот   здесь вот нажали на штучку, заходим сюда и ставим  вот название модели Openice/ GPT41. Надо можете   поставить там другую, какую хотите, но я поставил  Charge GPT. Мне кажется, для таких задач это   лучше всего подходит. Нажимаем OK. Подвязываем LLM  модель. И сейчас нам нужно будет ещё embed модель   подвязать. Для mbd модель тоже можно взять пользу  AI через Opener не получится тут как это, ну,   это просто этикетка, вот эта вот Open router. Вот.   Поэтому нажмём Open AI. А, смотрите, делаем то же   самое. Здесь пропишем типа польза AI embeded,  пусть будет модель type. Выбираем тут eding,   потому что мы embeded модель подключаем. Ну, пусть  будет правила, не так это важно. Сейчас API key.    Мы берём тот, который мы брали. Вот у нас API key.   Мы копируем, ставим его. Название модели нам нужно   выбрать соответствующее, потому что нам нужна  bed модель. Вот у нас документация, кстати, где   мы зашли в N8N. И тут есть вотдинги. Вот нажимаем  postbed endings. Тут нам, кстати, дают отдельную   URL, видите, да? Вот. Копируем, переходим  обратно. И в base URL мы ставим уже другое.    То есть мы раньше ставили просто API, польза AI  API V1, а здесь нужно добавить ещё сbedings и   выбрать модель. Модель можно выбрать вот  эту. Давайте embeding 3 large от Open AI модели.    Только здесь надо будет писать open AI. Поставить  сш вот такой вот получается open AI/texting 3   large. И добавляем. У меня выдал ошибку. Скорее  всего, всё-таки вот эту штучку нужно убрать,   потому что он сам его добавляет при запросе. Жмём  о'кей. То есть просто опять польза AI опять в   один. Да, видите, сработало. В остальном всё также  оставляем, потому что он сам там добавляет в URL с   вот этот вот. Отлично, мы добавили и то, и другое.   Переходим в knowledge base, knowledge base. Здесь

### [26:10](https://www.youtube.com/watch?v=wYE4JluWhOw&t=1570s) Загружаем документ в KAG. Создание knowledge base

мы прописываем chinese name of knowledge base.   Что такое chinese name? Можно прописать просто на   английском любое имя. Давайте напишем Володя DB.   Здесь мы тоже пропишем это же название, но English   требует то, что а combination of letters and  numbers at least list free characters. То есть,   короче, здесь можно с большой буквы написать и он  отстанет. А здесь с маленькой буквы, потому что   компания китайская, требует Chines name. Ладно.   Потом Knowledge based description. Это, кстати,   важная штука, потому что она будет использоваться,  видите, написано: "Which is used as prompt   during knowledge extraction". Сейчас же будет  рлмка создавать из нашего документа какого-то   структурированного, неструктурированного, а наш  получается граф знаний. И чтобы он составил его   корректно, ему нужно прописать промт, о чём будет  этот граф знаний. Давайте, ну, займёмся этим. Вот   я с помощью клода составил full. Что тут написано?   This is knowledge base about automation AI and no   code low code technologies. This knowledge based  contains transcription from video content covering   the following. То есть N8N, AI agents, automation  workflow, low cod, no code, AI technologies, the   content focuses on practical implementation, step  by step guides, technical insides. Ну, короче,   я собираюсь сюда грузить транскрипции своих  роликов. Потом касательно public, то же самое,   что было с моделью, можем выбрать private или  public, пусть будет private. Knowledge base type   мы выбираем, смотрите, если мы ставим local, то  мы будем, короче, на локально будет расположена.    Если external knowledge base, то здесь можно  подключить MCP-сервер с внешней базой данных.    Но я, честно говоря, это не делал. Я в это особо  не вникал. На самом деле у меня вот по ка know   Knowledд segmented generation вот этому есть ещё,  короче, большое количество открытых вопросов,   потому что информации по нему не так много в  интернете. Я во всём разобраться не смог. Поэтому,   если вы разобрались в этих вопросах, в которых,  честно признаюсь, я не до конца разобрался,   пишите об этом в комментариях. Свяжемся  с вами, я вам напишу в Телеграме,   расскажете про это поподробнее. Но суть в том  то, что здесь можно подключить MCP сервер. Ну,   кстати, попробуйте вообще, как для ваших задач  интересно, а какие будут у него отзывы у разных   людей? И напишите об этом в комментариях тоже  потом. А local. Ну, сейчас будем делать local,   потому что мы будем создавать knowledge base.   А потом, а, здесь нужно написать имя database,   оно не меняется, здесь оно называется как. Когда  мы устанавливаем как на сервер, вместе с ним   устанавливается вот Neofo 4J, это графовая база  данных. И как раз она и будет задействоваться. То   есть здесь ничего менять не надо. Там по дефолту  будет стоять вот такой пароль, вот такое вот имя   пользователя и вот такой вот URI. То есть здесь  вообще ничего менять не надо. Единственное,   что мы ещё указываем - это vector configuration.   То есть мы как раз выбираем тут ту модель, которую   мы добавили векторную. И language. The age - это  китайский. In, ну, по-моему, китайский. Ну, хотя   какой ещё тут может быть? In - это английский.   Нажимаем save. А, смотрим, что происходит.    Готово. New success. Теперь мы можем перейти сюда  внутрь. По порядочку. Это knowledge base build.    Сюда мы будем через create task загружать наши  документы. Потом есть knowledge model. Вот у нас   а создался уже какой-то граф, да? Видите, тут есть  какие-то значения. В Ceg know Knowledge segmented   generation устроено так, то что он изначально  здесь закидывает уже какие-то общие понятия,   да, вот, например, а медицина, да, транспорт,  билдинг, то есть он закидывает общие понятия,   потому что он как бы под это рассчитан. Потом  knowledge exploration, пока что тоже ничего   нет. Retrieval - это мы будем тестировать наш  поиск. Он говорит там: "Сначала сделайте этого   build retrieval first. " Ну, сделайте что-нибудь  загрузите. Короче, кофигуреation, то то, что мы   только что настраивали, мы можем это поменять.   Например, промт нас не устраивает или   имя. Английское имя мы уже не поменяем. Вот  китайское можем поменять и прот самое главное   можем поменять и публичность, и как мы подтягиваем  нашу базу данных. Ну и всё остальное, кроме vector   configuration. Vectктор configuration уже поменять  нельзя будет. То есть определяйте сразу при   создании. Лучше протестируйте, какой вам больше  понравится, потом уже создавайте уже окончательное   решение. И Permissions - это у нас разрешение  для разных пользователей, да? То есть тут могут   быть разные пользователи. под это заточено у нас  какг мы можем их добавлять, то есть вот здесь вот   давайте им определённые там разрешения, да, либо  adminнистратор о own давайте загрузим документ.    Здесь мы создаём документ task. Нажимаем это  мы создавали knowledge base, а здесь создаём   knowledge, то есть типа знания, да? Это база  знаний, а это как бы само знание создаём. Здесь   надо ввести имя. Ну давайте напишем трек. Ролик  протрек загружу. Data source local file - это если   мы будем сейчас загружать свой файл. Language  document. Knowledge base это смотрите, какая   штука. Есть, короче, китайский сайт. Вот здесь  нажмёте, он называется вот так. Он называется   uQ. com. И почему-то написано было Sparrow token.   Sparrow token. Короче, есть какой-то китайский   сайт Sparrow, как я понял. Туда можно загружать  ваши там, я не знаю, как назвать даже базы знаний.    Короче, ваше знание можно загружать и его можно  вот сюда вот подтягивать. Для этого нужен токен.    Потом buildк data - это я вообще не разобрался,  что это, если честно, но там тоже как-то связано.    Короче, это много данных. Короче, это массовые  данные. Я пока что в это не вникал, честно скажу.    Разберётесь, будет классно. Напишите мне. Real  time data - это тоже можно подключить real time   данные, чтобы они в реальном времени отображались.   По-моему, базу данных здесь можно подключить.    А мы будем local файл делать. Есть два варианта:  structure content или unstructure content. Видите,   например, tabular content, то есть в таблицах,  ну, то есть таблиц там и так далее. Unstructure   content - это просто, ну, без структуры  определённый контент. Давайте выберем Unstructure   content. И так как я загружаю транскрипции  роликов, вот у меня вот пролайтрек загрузим.    Сейчас я покажу, как он выглядит. Кстати, в целом  смотрите, как он выглядит. То есть я просто взял   свой ролик пройтрек на Ютубе, который лежит,  который вам тоже надо посмотреть, чтобы больше   разобраться в этой теме, в теме reg. На самом  деле здесь как будто бы не очень много текста,   но его на самом деле много. загрузил его в лэмку  и попросил очистить там нормально всё сделать,   выделить там тезисы и так далее, чтобы текст был  более чистым, чем то, как выглядит транскрибация   на Ютубе. Два файла, кстати, нельзя. Давайте  всё-таки один выберем. Если мы хотим второй   файл загрузить, мы будем создавать просто ещё  один knowledge. Потом жмём next step. Смотрите,   на nextстепе у нас что есть. Во-первых, у нас есть  max segment length. Что это такое? Вот мы можем   нажать preview extraction results. А preview  steps - это чтобы предыдущий шаг показать. А,   но у нас просит что-то выбрать. Пока что выберем  как гибрид индекс. А он, кстати, сначала показывал   на китайском, на китайском preview extraction  results, но потом я нажал ещё раз, и он подвязал.    Он нам показывает чанк, то есть он покажет у  нас на 500 эти символов или токенов. Наверное,   всё-таки о символах здесь идёт речь. А вот он  такой длинный получается, да? Можем написать 200 символов токенов, опять нажать preview  extraction results. Да, он его сократил,   как я говорил, он же извлекает по умному. То есть  там семантическое извлечение чанков идёт. И из-за   этого он не обрезает просто по условия, он именно  видит законченное предложение и законченную мысль   анализирует и таким образом делает извлечение.   Потом у нас идёт индексметод. Смотрите, всё то,   о чём я рассказывал, все те преимущества, которые  были, вот тут только что, только что вот тут вот,   вот это всё про нашего какбилдера крутого, это  всё относится к KGгибрид и индекс. Это вот об этом   речь. Если хотите как бы максимизировать ваш кага,  выбирайте как гибрид индекс, он самый мощный. Ну,   тем не менее остальные вот я тоже тут тут  а пояснил, да, то есть вот как Gibrid inx   есть Atomic Query index. Ну вот, например, да,  создание карточек, да. Компания Восток активно   работает в сфере возобновляемой энергетики. В  2023 году её дочернее предприятие Восток системы   объявило о закрытии своего московского офиса. И он  выделяет длинный текст на маленькие ча карточки,   да, две карточки он создаёт. Например, компания  Восток работает в сфере возобновляемой энергетики   и дочернее предприятие Восток закрыло московский  офис в двадцать третьем году. Есть outлайн индекс,   он использует структуру документа, чтобы найти  нужную инфу. То есть он больше по заголовкам,   да, так сказать, ищет Summary index  ищет по Summary. Table index - это   целенаправленная обработка табличных данных  для включения вот структурированной информации   в граф знаний. Нан index - это обычный к по  сути, то есть это просто поиск по чанкам,   которые у нас тоже выделялись. А если хотите,  как я говорю, максимальное преимущество, можете,   конечно, каждый из них потестить по-разному,  но вот больше всего будет круче всего работать,   как гибрид индекс, поэтому я его и выберу. А  можно вообще все выбрать? Ладно, нафига нам   все? Давайте как гибрид индекс оставим. Давайте  выберем как гибрид индекс и чандекс. Посмотрим.    Ну и вот это тоже. Едем дальше. Потом extraction  model. То есть здесь мы уже выбираем нашу лэмку,   которая для этого будет задействована. Ну и  выбираем ту, которую мы подключали. Openage   GPT41дина. Она может быть любая, которую  вы подключили. Нажимаем complete и ждём.    Вот он пишет: "Successfully created". У нас пошёл  процесс. Можем нажать log. И тут у нас показывает,   что происходит. То есть у нас вот создание  индексов, э, чтение, splitter, разделение,   extractor как гибрид идекс. Кстати, наверное,  я вот эти добавил зря, потому что они потратят   токены. Я ими пользоваться по итогу не буду. Надо  было только как гибрид индекс выбирать. А он уже,   кстати, всё сделал, векторизовал, делает  алайнмент. По идее, он закончил, да, финиш.    Давайте посмотрим, сколько токенов я потратил.   Я больше ни на что не тратил. Вышло, а, 4 руб.    Нормально, кстати, не очень много выбрал. модель  mini GPT 41 mini. Теперь мы что можем сделать?    Можем зайти в Retrieval и проверить наш поиск.   То есть, во-первых, мы можем выбрать несколько   индекстайпов. Давайте выберем один. Всё-таки  выберем модель, которую мы используем. ЛМку   Open Solar Service - это можно подключить внешнюю  модель для поиска, но я в это тоже не вникал.    Извините, я решил честно говорить, куда я вникал,  куда не вникал. С этим я не разобрался. И давайте   найдём что-нибудь. То есть у нас видео было  пройтрек. Давайте найдём типа что такое lightре. Вот он нам не даёт готовый ответ, он нам  это работает как поиск в knowledge base,   то есть это без агента пока что, да, про агент  сейчас расскажу. Вот он нам закидывает, кстати,   графовую базу данных, ну, base, да, где нам  показывают entities и так далее. Вот в виде листа   тоже можно посмотреть. И находит нам чанки. Чанки  application. Нажимаем Application и жмём create

### [35:45](https://www.youtube.com/watch?v=wYE4JluWhOw&t=2145s) Ищем инфу в KAG. Создание application

an application. Нужно здесь можно загрузить там  лого аппликейшна, нажать название тест Володья ДБ,   пусть будет. Короче, это псевдоним. Я не помню,  что за псевдоним. По-моему, псевдоним URL для   публичной публикации. Ой, ну публичной публикации.   Давайте напишем там ЛО, пусть будет description.    Ну это краткое описание типа из Давайте на  русском. Кстати, когда мы создавали knowledge   base, по-моему, я пробовал писать на русском.   То есть вот тут, когда мы создавали, я показывал   только что на русском, оно не пропускало. То есть  там нужно именно на английском писать. Но я насчёт   этого не уверен. Я уже забыл. Это приложение.   Приложение для теста. Готово. О'кей. Есть у нас   приложение. Что у нас тут есть? У нас есть опять  же permissions. Для мемборов администраторов. Есть   мониторинг по приложению, там Active users, token  интеграции. То есть вот как раз попI мы его будем   выводить. У нас есть получается само приложение.   Выбираем language in, потому что английский. Здесь   нужно добавить knowledge base. Knowledge base.   Добавляем ту, которую мы только что создали.    Вот нажимаем сюда Волозь. ДБ, то есть он это как  раз уже тот агент, как бы в обёртке приложения   это почему-то называется, который будет искать  по нашей Knowledge Base. То есть это получается   уже как solве. Смотрите, Think Pipeline - это  штука попроще. Короче, вот это для сложных задач,   то есть прямо таких ух, а это для средних и  простых задач. Честно говоря, я в это тоже   особо что-то не смог нормальную информацию  про это найти, потому что где-то писали то,   что как Thinker Popline в документации, причём то,  что там типа задействуется специальная модель LLM,   которая именно под это обучена, хотя она не может  задействоваться, потому что мы PI подключаем свою   lm. А, смотрите, кстати, интересный момент. Я  только что включал как Thinker Pipeline. Вот,   давайте я покажу. Я у него спрашиваю, что  такое Light L light light. Здесь режим   deepфинкинга выключить нельзя, de призонинга.   Я спрашиваю, и он отвечает следующее: а, sorry. Error, no configuration setting for rewrite  prompt, please retry. Короче, видимо, вот это   вот это реально подключение специально до обучной  модели, и поэтому он выдаёт ошибку. То есть, а,   когда мы используем нашу лэмку, которую мы  подвязали, да, то нам нужно выбирать Think   Pipeline всё-таки, потому что здесь он тупо не  работает. Спросим опять же, что такое Lightrack.    Давайте включаем deprasoning. И здесь он уже  начинает работать в режиме think pipeline. Вот   он начал, да, global planning. То есть, как  я и говорил, поехали. Смотрите, то есть он,   во-первых, начал думать, да, First I need to  understand what is light, reference to relates, ну   и так далее. Он делает logical form chain, делает  retrieval concept light track, ну и так далее. То   есть делает SPO триплеты, как я говорил, то есть  субъект предикат, объект starting task step 1. То   есть вот он что-то делает, а находит документы и  в итоге отвечает, да? Flightrack - это open source   платформа, которая использует технологию Open  graph. О, господи. Graph R, объединяя графы базы   знаний и Large Language Models. Она предназначена  для повышения точности поиска и обработки   информации, особенно в связанных документах, такие  как книги и статьи. Трек включает в себя функции,   такие как переоранжирование результата. Ну,  короче, всё то, что я говорил в роликах. Вот можно   интегрировать системы вроде N8N для автоматизации  процесса. Что мы можем сделать дальше? Можем   нажать вот здесь вот publish и нажать Publish  updates. Всё, мы опубликовали наше приложение.    Что это вообще значит? если оно у нас установлено  на сервере в графе integraation, смотрите,   что есть. А мы можем сделать публичный URL-адрес,  так как у меня здесь просто IP-сервера, то есть   почему у меня просто IP-сервера? Потому что у  меня не привязан домен. Мы можем привязать домен,   и тогда у нас будет здесь домен вместо IP-сервера.   И мы можем как бы публично опубликовать наше   приложение, да? Всё. То есть мы копируем ссылку,  у нас как бы вот опубликовалось наше приложение,   да? Ну, по сути, ничего не указывает на то,  что это как. То есть если только эмблема есть,   мы можем её поменять, как вы помните, да? Здесь у  нас просто обычный интерфейс, похожий начар GPT.    Здесь просто небольшое описание и просто ответы  на основе нашей базы данных. Графо знаний, да,   скорее. Давайте тут спросим, что такое, ну,  Lightrack. Опять спросим, что такое Lightrack. Вот он пишет: Lightrack - это версия  Retrievalmented Generation в области   искусственного интеллекта. Ну, короче, понятно,  да, он отвечает на основе. Потом что мы можем ещё

### [39:50](https://www.youtube.com/watch?v=wYE4JluWhOw&t=2390s) Выводим KAG по api

сделать? Это вывести по API. Для этого нужно  ad API добавить. Назовём его как-нибудь так.    сработало. А вот он создался какой-то. Нормально.   Ссылку кидает сразу на документацию. Можно нажать,   посмотреть, как делать запросы по API. И тут  оно описано. То есть вот у нас есть example.    А для запросов PPI здесь это подробно написано  в документации. Я это всё сохранил. Я вот её   загрузил всю в ноутбук LM. И давайте вот попросим  его сделать типа, а как сделать запрос о API в   как сейчас нам ответит, да, необходимо API ключ  получить. Нужно создать сессию. Вот тоже важная   штука. сессию как бы, ну, короче, создать сессию  нужно, да, вот по такому вот запросу показывает,   какие headers добавить, параметры body и пример  запроса CRL для создания сессии. И в ответе будет   возвращён ID, который является session ID.   А потом уже делаем ещё один запрос для того,   чтобы получить доступ к нашему диалогу. Чтобы  было понятнее, я создал в N8N вот такой вот   два HTP реквеста. Первый у нас создать сессию. То  есть мы заходим сюда внутрь. Здесь мы прописываем   следующее. Это есть у нас документация. Вот  у нас вот session create. Вот оно у нас всё   прописано. Можем нажать cop, а перейти в наш N8N,  добавить узел HTP request. Так как мы скопировали   вот тут вот, а, CURL, видите, нажимаем copy. Можем  здесь просто нажать импорт CRL и вставить вот это   всё и нажать импорт. И оно у нас добавится.   Ну, криво, кстати, добавилось, поэтому, ну,   короче, надо это проконтролировать. Можете вот  этот вот workflow использовать. Я его скину,   тоже закину. Суть в чём? Здесь в URL мы пишем наш  URL опять в один чат session create, чтобы создать   сессию. Потом мы пишем авторизацию, а это наш API  ключ, который у нас вот тут вот создался. Мы его   копируем. Вот его, кстати, поменять и нужно.   И вот сюда вот ставим. Вот видите, он другой.    Потом content type, мы жмём application Jon базе  content Type отправляем JSON. Здесь мы пишем, ну,   как вот тут показано, да, VL мы добавили, header  authorization API ke мы добавили, content type   application Jon прописали. И в базе нужно добавить  name и user number. Name я написал вот тут вот,   пусть будет N8N. Ну, имя пользователя. Ну,  давайте Володя напишем или имя сессии. А,   usern 1 2 3 4 5 6 пусть будет. И жмём Execute  Step. Вот мы создали сессию. Нам вернули ID,   который нам нужен, 13. Да. Теперь нам нужно, чтобы  взаимодействовать с нашим как бы приложением вот   этим вот, которые мы создали по API, теперь  нам нужно прописать вот этот URL такой же,   который у нас есть. Но теперь мы пишем, вот он в  документации показан. Вот у нас уже другой а IP,   другой URL IP chat complex. Вот мы так и  пишем. PV1 chat complections. В хедрах мы пишем   authorization, то же самое. P ключ accept мы пишем  текent stream, как тут показано. Вот content type   application JSON. Вот прописали. И в JSone пишем  получается у нас session ID. Session ID у нас было   12, как вы, как вы помните. То есть мы создали  сессию вот тут вот, и нам прислали ID в ответ 13,   точнее, да? Поэтому мы вот тут прописываем  session ID 13. Think enabled - это мы можем   включать или выключать вот эту штучку, вот эту  вот deep reasoning user number мы пишем тот,   который мы указали при создании. Здесь content  type мы пишем текст, потому что мы отправляем   текст. И content мы пишем наш, собственно,  запрос. Давайте напишем запрос. L - это что? Так, давайте поставим thinking true, чтобы прямо  наглядно показать кое-что. Нажмём Execute Step. Ну   и ждём просто, пока он обработается. Смотрите, что  я хотел показать. Специально включил как f enable   true. И что он нам вернул? Ой, ребята, страшно  показывать, что он вернул. Он вернул очень много   данных. И тут вообще непонятно, что к чему. И у  меня только что было, кстати, написано 23 Мб. То   есть он вернул, сейчас почему-то оно изменилось.   Вернул он очень огромный файл. Вот, кстати,   показывает. Я вот нажму download специально,  чтобы посмотреть, что он вернул. Вот. То есть   у меня я файл этот закрыл, потому что у меня комп  начал подвисать. 23 Мб в Jсо. И возникает вопрос:   "И как вообще с этим работать в NN? Что это вообще  значит? Почему он так много данных возвращает? " Я   тоже об этом задумывался и пришёл к такому выводу.   Он отвечает в режиме стриминга. Что такое режим   стриминга? Только что показывал вот здесь вот в  приложении. Когда он нам что-то отвечает, он пишет   поэтапно. Ну, например, это что? Ну, и как вы мо  могли заметить, там в чате GPT в клоде, когда вы   общаетесь, вам часто отвечает в режиме стриминга,  да? Вот. То есть он пишет нам по буковкам. Сейчас   он начнёт писать. Вот видите? хоп-хоп-хоп-хоп-хоп.   Как это работает режим стриминга? То есть он   отправляет нам а символы по мере генерации. То  есть по факту это кучу отдельных джейсонов. То   есть нам ответ приходит в джейсоне. Это  куча отдельных джейсонов, которые вот   так отправляются. Проблема в том то, что N8N, а в  узлах HTP request не поддерживает режим стриминга.    Он его поддерживает в AI эжентах, вот в этих.   Вы через него можете его включить, он будет у   вас нормально работать. Сейчас показывать не буду,  можете проверить. То есть вы заходите сюда внутрь,   нажимаете Ad option и вот enable streaming. Он  должен быть включён. Всё, это всё поддерживается,   а, это работает. Но вот в узлах HTP requве, когда  вы что-то подвязываете. То есть, если я тут вызову   тоже, например, чат GPT и включу режим стриминга,  он не будет работать. И в этом-то вся и проблема.    То есть он ждёт, пока весь наш ответ сформируется,  пока все наши стримингсоны отправятся, потом он их   все вместе собирает и отправляет нам, склеивает  и отправляет нам единый файл. Из-за этого он   не по не отображается в реальном времени, и это  происходит достаточно долго. Вот этот, например, в   режиме финкинга у меня 47 секунд обрабатывался. И  чтобы было понятно, о чём речь, мы сейчас возьмём   и то же самое отправим а через обычную консоль.   Ну, сейчас я просто скопировал узел из N8N и   попросил преобразовать клод его в обычный CR. Ну,  можно было это вручную сделать, но мне лень. То   есть, видите, он просто преобразовал наш запрос  в обычный CURL. По идее, если мы сейчас откроем   обычный узел HTP request, нажмём CRL и вставим  это, то у нас должно получиться, да, то же самое,   что мы только что скопировали. Ну, он нам написал  обычный CRL. Зачем мы это сделали? Теперь мы можем   нажать сделать следующее. открыть терминал, у вас  по-любому есть на компе терминал, там Mac, не Mac,   неважно. И просто вставить этот C URL. У нас  получается отправляется сейчас запрос к какг по   HTPреквесту. То есть мы сейчас делаем то же самое,  что мы делали через N8N, но через консоль. То есть   я сейчас делаю это через свой Mac. И отправляем.   И смотрите, как он присылает ответ. Вот видите,   он начал по чуть-чуть его присылать. Вот, вот,  вот это и есть режим стриминга. Вот он его   присылает. Он, он нам каждый джейсончик присылает  по отдельности. Вот видите? хоп-хоп-хоп-хоп-хоп.    Если мы это делаем в invсьмен, он просто  склеивает всё одно и только потом нам закидывает,   потому что узел HTP не поддерживает режим  стриминга. Я не знаю, когда это добавят. А,   и, кстати, я пытался выключить стриминг, но это  не работает. Может, я не разобрался, но я долго   пытался вникнуть в это, и стриминг почему-то  не выключается вообще. Через N8N прокидывать   как no jugmented generation не получится. Это  нужно будет делать через код, но там в целом   не так сложно, то есть, а, не такая сложная  схема. Плюс очень часто его можно использовать   вот действительно вот в таком интерфейсе.   Можно, кстати, взять этот интерфейс за основу,   ээ, закинуть в клод и там с помощью вайп-кодинга  его доработать так, как вам нужно, поменять там   дизайн и так далее. Вот. Но пока что через nm это  сделать не получится. Смотрите, как это работает.    У нас получается много лишней инфы. То есть вот  у нас каждый отдельный джейсончик присылается,   он одинаковая структура. Тут есть дата, вот есть  answer. Lightrack - это метод, используемый в   области обработки естественного там тдад. При этом  сохраняя ВСО, смотрим, то же самое пишет ПБПб,   пбпбп, пбпбп. При этом сохраняя высокое качест  вот в чём разница. То есть просто высоту высокое   качество. То есть он уже чуть больше ответ  добавил. И тут идут остальные метаданные. То   есть ID везде добавляется ID везде добавляется  референс формат чан и так далее. Как-то так   это работает. Поэтому через N8N прокидывать не  получится, это проблема. Можно подключить MCP,   кстати. А я не пробовал это делать. Здесь есть ещё  MCP, но MCP работает только в девелопер моде. То   есть этот я установил через prodдаction mode,  по-моему, это так называется. А там есть ещё   developвеelпер mode. Сейчас я про них расскажу,  как будем устанавливать на серверах. Вот такая вот

### [47:41](https://www.youtube.com/watch?v=wYE4JluWhOw&t=2861s) Почему KAG лучше GraphRAG?

проблема API. Едем дальше. Почему как лучше граф  RG? Ну, это чтобы резюмировать. Вот я написал так,   чтобы резюмировать. Смотрите, как лучше графрек,  потому что как умнее, он не просто ищет похожие   кусочки текста, а понимает связи между знаниями.   Он умеет думать и связывать разную информацию,   чтобы дать точный правильный ответ. Графрек  только показывает, как связаны разные факты,   как ещё их логически объясняет, как лучше работать  с сложными вопросами, где много шагов решения, как   помогать серьёзных темах, например, в медицине или  законе, где важно не ошибаться. Ну для этих задач,   конечно, его донастраивать придётся. Короче,  как это умный детектив, который ищет подсказки,   складывает там картину, аграрфрек - это  как карта, которая показывает связи,   но не объясняет почему. Короче, как это вот  суперпрофессор среди систем поиска ответов,   которые превосходят графрек в нескольких важных  аспектах. Когда вопрос очень сложный, он делит   его на фрагменты, как я говорил, и поэтапно  выполняет, создаёт карту знаний Mutual иксин,   как он называется? Двойной индекс, по-моему,  тут переводится, да? Mutual index, взаимное   индексирование. Выравнивание знаний идёт. В целом  всё. Я не знаю, зачем я добавил вот этот фрагмент,   если честно, про то, что он лучше графрек.   Понятно, да. Но, кстати, как дороже йтрек,   но по идее дешевле, чем графрек. Я не прямо  проверял эту информацию, но, судя по всему,   это так. Ну, а теперь будем устанавливать на  сервер, да. Инструкция для установки я оставлю

### [48:52](https://www.youtube.com/watch?v=wYE4JluWhOw&t=2932s) Установка KAG на сервер

в Telegram-канале. Я её специально написал через  clд. Сейчас по ней будем устанавливать. И есть   два варианта установки - это девелопер и  product mode. Мы будем ставить producte.    Developer mode мы ставим а через Python. Product  mode ставится через docker. Его ставить проще. Мы   будем ставить producte. Но через девелопер mode  можно больше всего настраивать, можно больше его   кастомизировать. По конфигурации сервера,  во-первых, в документации этописано. Я вот   спросил у ноутбук LM, который отвечает на основе  документации. Он показывает то, что CPU больше   восьми ядер, RAM- 32 ГБ. Ну, это рекомендованные  штуки, диск больше 100 Гб. Ну, короче,   нормально так. Такая конфигурация,  то есть требует мощностей необходимых. А у меня,   честно сказать, сейчас сервер не такой мощный. Я  для теста брал четыре ядра CPU, 10 ГБ RМ и 50 ГБ   диска. Установку написал клод. Здесь могут быть  странные моменты, но она работает. Какие странные   моменты, сейчас покажу. В целом, можете, если вы  не разбираетесь в установке чего-либо на сервер,   можете не заморачиваться, она рабочая здесь. Ну,  всё нормально. Как обычно, я поставил Убунту 2404,   оформил сервер на Бегете. Если что, у меня там  ссылка есть. Можете перейти моя реферальная. Буду   благодарен, если вы по ней себе там сервер  зарегаете. Мне за это копеечик там упадёт   какая-то. А, но можете взять любой сервер. Я  здесь для Убунту 2404 взял эту установку. Можете,   кстати, эту установку закинуть тоже в клод или в  любую другую нейронку. И, как я говорил, я оставлю   её в Telegram-канале своём, поэтому переходите,  подписывайтесь и с помощью какой-то любой другой   нейронки установить на сервер и задать там  какие-то вопросы, которые вам непонятны. Хотя   здесь, по идее, должно быть всё понятно. А для  начала нам нужно настроить Firewall. Для тех,   кто разбирается, у меня почему-то, а, когда я  устанавливал, у меня отваливался по 22. Если   вы не знаете, через По 22 мы подключаемся  к нашему серверу. Подключаюсь я, кстати,   вот через программу Рус. Я про неё тоже много  раз рассказывал, повторяться не буду. То есть   про неё есть информация и в ролике про reg. Можете  посмотреть и разобраться. То есть мы подключаемся   просто к нашему серверу. Самый простой этап.   Сначала разрешаем SSH, потом Firewall. А SSH - это   вот порт 22, через который мы подключаемся к  нашему серверу, вот где у нас есть консоли,   чтобы делать все наши изменения. У меня  почему-то во время установки отваливался по 22,   и получается то, что я не мог заново подключиться  к серверу и продолжить установку. Вот поэтому я   добавил вот эти вот штуки. Возможно, если вы в  этом разбираетесь, для вас это может показаться   странным, но если вы не разбираетесь, делайте  просто всё по инструкции. Копируем команду, первую   вставляем. Можно их, кстати, все разом скопировать  и вставить, но я не хочу. Я хочу поэтапно. Это   мы обновляем систему. Пока что систему мы  обновили, высвечивается вот такая штучка.    Просто нажимаете Enter. Всё, готово. А, нет, не  до конца обновили, но просто во время обновления   вот такая штука вылезла. Всё готово. Теперь  устанавливаем UF W. Готово. Потом разрешаем SSH. Готово. Теперь мы, ну, всё сразу скопируем.   Разрешаем порты для KГ. Готово. Включаем   Firewall. Как я говорю, можно сразу вот так все  скопировать и поставить. И проверяем правила. 22   для SSH, остальные для других всяких штук. Должно  показывать вот это. Ну, он это и показывает. Потом   устанавливаем Docker. Вот, например, удаляем  старые версии Docker, если есть. Ну их нету,   потому что у нас сервер пустой, но Клод  мне такую инструкцию написал. Ладно,   пусть будет. Потом устанавливаем зависимости,  добавляем официальный ключ, добавляем репозиторий.    Обновляем список пакетов, устанавливаем доки,  распускаем доки, поправляем установку. Давайте   просто всё скопирую. Я могу нажать вот сюда shell,  а вы просто всё скопируете в документе. Всё,   оно вот так всё ставится. Ничего страшного, то,  что тут есть вот решёточка и комментарий. Это ни   на что не влияет. И просто ждём. Всё готово.   Пишет Docker version. Ну, короче, установлен.    Потом устанавливаем к. Мы создаём директорию. То  есть мы сейчас создём просто как бы папку внутри   нашего сервера. Вот OptG, и переходим в неё. Когда  есть команда CD, это значит то, что мы переходим в   папку. Вот видите, мы перешли в папку. Было вот  так, стало вот так. Мы сейчас внутри папки кг,   которую мы создали. Теперь мы скачиваем docker  compostфайл, то есть пишем вот CR, ставим. Опять   же это всё можно сделать просто скопировать.   Просто копируйте и всё. Теперь смотрим, что   скачалось. Ага, скачалось. Ну, а теперь запускаем  всё. Давайте всё скопируем сразу и поставим. И   ждём, пока оно скачивается. Всё готово. У нас всё  установилось. Вот оно сейчас прогружается. Теперь,   а, нужно выйти из логов, потому что мы зашли в  логи, нажать Ctrl C. Давайте нажмём Ctrl C. Всё,   мы вышли из логов. Отлично. Теперь проверяем  доступ. Мы берём наш IP. IP вашего сервера. Может   быть, там домен, вы подключили к нему. Открываем  в браузере. У меня IP сервера - это такой. Я его   удалю потом после записи, поэтому можете не  пытаться туда зайти, если у вас такие мысли   возникли. Всё. То есть вот тут HTP два слэша IP  порт 887. И открываем в браузере. Открыли. У вас   тут будет ещё штука, чтобы ввести логин пароль.   Вы вводите логин пароль. И после этого у вас   высветится такая штука. Вас заставит ввести новый  пароль. Новый пароль вы вводите, какой хотите. Но   я вот написал как Володя. Всё готово. И у вас всё  появилось. Вот тут можно переключить на язык. Всё,   весь интерфейс, как я показывал. Ну и чтобы  проверить дополнительно, что всё работает, можем   ввести вот эти команды. Dockerps. Готово. Да, всё  запущено. Вот у нас есть докер и прочее. Проверить   порты можем. Готово. И проверить firewall. Всё,  всё работает. Вот итоговая схема доступа такая.    Вот это у нас для webui используется порт  887, а для API у нас используется 887/шаp.    для Neofa 4 в браузере, то есть графа базы данных,  используется наш порт, а, ну, наш IP потом 7474,   потом minми консоль используется 9001. Ну, и  подключение к серверу вот такое вот. А это,   если что, мой опять тут везде ведён, надо  его поменять. Мы всё установили на сервер.

### [54:45](https://www.youtube.com/watch?v=wYE4JluWhOw&t=3285s) Где уже используется KAG? Контекстное окно LLM

Поздравляю. Дальше я всё рассказывал. Я не во всём  разобрался. Вопросы остаются открытыми. Если у вас   есть желание и вы шарите, то можете разобраться и  написать в комментариях к этому видео. Свяжемся с   вами в ТГ. Как я уже говорил несколько раз по  ходу ролика, там, да, есть некоторые пробелы,   в которые нужно вникать. Тема новая, по  ней особой информации в интернете нет,   но мне кажется, она стоит от того, чтобы её  дальше изучать. Смотрите, где уже используется   как надо сказать. Для этого я спросил у ноутбук  LM, где он используется в реальных проектах,   потому что они на Гитхабе про это писали у себя,  но искать самому мне лень. Вот они пишут то,   что он используется в электронном правительстве,  типа government Q& A, потом в электронном   здравоохранении тоже используется. Ну вот как-то  так. То есть он заточен под такие прямо серьёзные   задачи. И главный вопрос, который возникает, мой  любимый, получается reg игра reg. Всё написано.    Мем про админов ТГ каналов. Я такой мем видел, то  что типа админы Telegram-каналов пишут всё время,   типа iPhone, всё, дизайнеры всё, их заменят  нейросети. Кодеры всё их заменят вайп-кодеры. Нет,   R играфрек не всё. Кг - это очередной инструмент.   И вообще он стоит дорого. Для разных задач   подходит разные. Ну да, это правда. Но, но как  обычно, да, понятный вывод, то, что для разных   задач используем разное. Всё равно в этом всём  нужно разбираться. Но вообще есть вероятность то,   что сейчас делают разных кг. Как я говорил, это  пока что один фреймворк эгре тоже разных сделают,   побольше таких всяких интересных и прочих готовых  решений. Они будут закрывать очень много задач,   да, и то есть вам под большое количество всяких  задач сейчас приходится с нуля выстраивать   системы, да, там в квадранте, в reg и так далее,  а тут появятся всякие готовые решения. И ещё   интересное наблюдение, да, то, что контекстно  кном, ну, сейчас мы туда просто чёнки подаём,   да, когда мы используем там rec или графрек и так  далее. А можно же туда весь документ запихивать.    Это же называется тоже кэ, только оно пишется  через букву C. Не, не K, а C. Вот так вот. Я   про это тоже рассказывал в видосе, который  называется полный гайд на RG. А, посмотрите   на канале. Вот это Cash Tagmented Generation. Там  суть в том то, что вы запихиваете в контекстное   окно lм весь документ, он кэшируется и это может  нормально работать. Но проблема в том то, что для   прямо большого количества данных это не сработает,  потому что они тупо туда не влезут. Но контекстное   окно lм постоянно растёт, и когда-нибудь,  возможно, получится просто запихнуть всю   информацию, на основе которой должна отвечать ЛМ,  в системный промт. Это работать будет лучше всего,   потому что это реально работает лучше всего. Но  до этого ещё далеко, очень далеко. И не факт,   что такое вообще когда-то будет, потому что, ну,  как вы запихнёте в SQL, у вас там в базе данных,   я не знаю, где-нибудь, ну, короче, у вас  информация там на сотни гигабайт текстовой,   как вы это запихнёте в контекстное окно lm это  какая должна быть lm, чтобы туда всё запихнуть?    То есть всё равно reg, мне кажется, будет  актуален, но возможно для более простых задач,   для небольших документов, всё будет впихиваться  в системный промт. Вот, например, 1 млн токенов   клод. В клодто у них сейчас контекстное окно у  Son 4. 5, по-моему, по API - это миллион токенов.    Чтобы вы понимали, миллион токенов - это сколько?   Это примерно один полный четырёхтомник войны мира.    Расчёты могут быть кривыми, но это всё равно очень  много. То есть прикиньте, всю войну мир взяли,   все четыре тома. И это всё, если вот так запихнуть  в код, это будет примерно как раз там 900. 000 или   миллион токенов. Проблема в том то, что у нас  не останется контекстного окна для того, чтобы   туда вопросы задавать, потому что там уже всё  забито. Но в любом случае оно постоянно растёт,   и данных туда сейчас помещается очень много, и  этим надо пользоваться кшигрированием, да. Но если   данных очень много, то используем reg, используем  Light R, используем Kegl Shagmented Generation. В   целом вот так. Спасибо за то, что посмотрели это  видео. Смотрите и другие ролики на моём канале,   например, вот это. Пока. Обожаю это говорить.   Это моя любимая фраза за весь ролик. Yeah.

---
*Источник: https://ekstraktznaniy.ru/video/15183*