Skip to main content
Print

Цепочки

Цепочки – это визуальный инструмент построения сценариев взаимодействия с Большими Языковыми Моделями (LLM). Цепочки позволяют организовать работу с данными, процедурами и процессами, находящимися в Функциональном Приложении или во внешних источниках. С помощью Искусственного Интеллекта (ИИ) можно выполнять множество различных полезных действий — выполнять “умный поиск”, автоматизировать анализ, протоколировать и резюмировать аудио и видео файлы, предлагать варианты решений и выполнять другие действия на основе данных пользователя и возможностей моделей ИИ.

Интерфейс конструктора цепочек

Примечание: В настоящее время ведутся работы по локализации интерфейса. До окончания этих работ часть надписей выполнена на английском языке. 

 

Панель инструментов конструктора цепочек

 

Создание цепочки.

Удаление цепочки.

Переключение на вкладку “Код” – основное рабочее пространтство. 

Переключение на вкладку “Параметры”.

Переключение на вкладку “API”

Экспорт цепочки в формате, совместимом с n8n.

Запуск цепочки на исполнение.

Иконки на рабочей области: 

  • Увеличение масштаба;
  • Уменьшение масштаба;
  • Масштаб по размеру окна;
  • Блокировка композиции. Защита от случайных изменений.

Вкладка “Параметры”

Во вкладке параметры отображается таблица используемых параметров с указанием их названия, типа и иконкой  

“корзина”, нажав на которую, можно удалить ненужный параметр. Указание параметров необходимо для настройки взаимодействия с LLM. 

Добавление параметра. При нажатии открывается Диалоговое окно. в котором необходимо указать имя параметра и выбрать из выпадающего списка его тип.

Некоторые модели, могут обрабатывать только текстовую информацию, соотвтетственно, для работы с такими моделями необходимо согдать параметр “Короткий текст” или “Многострочный текст”. Для моделей, которые могут обрабатывать файлы (файлы изображений, аудио или видео- файлы), необходимо указать параметр “Вложение”. Типы данных “Число” и Число с запятой” нужны для запросов на какие-либо вычисления.

Вкладка API

Автоматически сгенерированная документация для вызова созданной цепочки по API.

Описание основных компонентов Конструктора цепочек

Триггер

Любое внешнее или внутреннее событие, запускающее цепочку. 

Узел “Manual trigger/Триггер“. Обязательное начальное звено в любой цепочке.

Узел “Memory/Память”

Узел “Memory/Память”, отвечающий за выделение памяти для хранения сообщений чата, истории запросов и ответов. 

Для того, чтобы настроить использование памяти, необходимо двойным шелчком мыши открыть диалоговое окно “Memory/Настройка памяти”.

В открывшемся диалоговом окне необходимо выбрать таблицу, в которую будут записываться данные чата (поле Table/Таблица). Поле Session Key/Ключ сессии заполняется автоматически. В поле Context Window Length/Размер контекстного окна – вводится число фраз-запросов, формирующих контекст диалога, к которому должна обращаться ИИ-модель при генерации ответа.

Таблица для записи чата должна быть создана заранее и для нее обязательны следующие поля:

1. message (многострочный текст) – это сообщение или ассистента или человека;

2. session_id (короткий текст) – id чата;

3. position (целое число) – позиция (для модели важен порядок сообщений).

Узел “Action/Действие”

Узел “Action/Действие”, позволяющий запускать какую-либо процедуру (Blockly или SQL) или другую цепочку. 

Для того, чтобы настроить запуск процедуры, необходимо двойным щелчком мыши открыть диалоговое окно “Action/Выбор действия”.

В открывшемся диалоговом окне выбрать нужную процедуру или другую цепочку. Процедура (или цепочка) должна быть создана заранее. 

Узел “If/Условие”

Узел, позволяющий направить выполнение сценария цепочки по разным веткам в зависимости от выполнения условия, определяемого во внутренней логике данного блока.

Будучи размещенным в рабочей области,  узел “If/Условие” имеет один коннектор слева (для вводных данных) и два коннектора справа – True и False (для вывода результатов вычисления условия). Для настройки условия необходимо двойным щелчком мыши открыть диалоговое окно “If/Настройка условия”.

В открывшемся диалоговом окне можно выбрать логический оператор “И” или “ИЛИ”. А также можно настроить одно или множество условий. Условие добавляется кнопкой “+ Add condition/Добавить условие”. Настройка условия производится в диалоговом окне следующего уровня, открывающегося при нажании на поле “Condition 1/Условие 1”.

В поле “Left/Входные данные” формате JSON указывается источник данных для обработки. Из этого источника звено получает операнды для сравнения. 

В поле “Equal/Сравнение” выбирается знак сравнения: “Равно”, “Не равно”, “Больше”, “Меньше”, “Contains/содержит”, “Starts with/Начинается с”, “Ends with/Заканчивается на”.

В поле “Value type/ Тип значения” выбирается тип сравниваемых данных: “String/Строка”, “Number/Число” или “Object/Объект”.

В поле “Right/Выходные данные” указывается логический итог сравнения “1” (Истина) или “0” (Ложь).

Соответственно, если заданное условия истинно, то далее задействуется звено, подключенное к коннектору “True/Истина”, в обратном случае срабатывает коннектор “False/Ложь”.

Более подробная информация о настройке и использовании узла “If/Условие”.

Узел “Merge/Слияние”

Узел, осуществляющий процесс объединения информации из разных источников в единый набор данных. 

Будучи размещенным в рабочей области, узел “Merge/Слияние” имеет несколько (до 10) коннекторов слева (для вводных данных) и один коннектор справа для вывода результатов слияния данных. Для настройки объединения необходимо двойным щелчком мыши открыть диалоговое окно “Merge/Слияние”.

В открывшемся диалоговом окне можно выбрать режим слияния данных и указать число источников данных. В поле “Mode/Режим” доступны варианты “Append/Добавить” или “Combine/Комбинировать”. В поле “Number of inputs/Число источников” указывается число от 2 до 10, соответсвенное количество коннекторов будет отображено на звене цепочки в рабочем пространстве.

В режиме “Добавить” данные просто последовательно добавляются друг за другом, увеличивая количество элементов (список + список).

В режиме “Комбинировать”данные объединяются на основе заданного правила (по ключу – “Match Field”, позиции – “By Position” или по обоим вариантам – “All Combinations”)

Более подробно различия этих режимов описана в статье “Добавить или Комбинировать в чем разница?”

Под-узел “Структурированный вывод/Structured Output Parser”

Structured Output Parser/Структурированный вывод” — это специальный под-узел, который обеспечивает получение структурированных данных от AI-модели в соответствии с заданной JSON-схемой.

Главная функция этого узла — заставить большую языковую модель (LLM) вернуть данные не просто текстом, а в нужном формате, который можно легко обработать следующими узлами цепочки. Для настройки двойным щелчком мыши нажмите на узел в рабочей области.

В открывшемся диалоговом окне определите нужную вам структуру выходных данных. Для этого вы определяете JSON-схему  — описание того, какие поля и в каком формате должна вернуть ИИ-модель. Или приводите JSON-пример того, что хотите получить, а Appliner сам создаст схему.

Как правильно подключить под-узел “Структурированный вывод/Structured Output Parser”

Под-узел “Структурированный вывод” присоединяется только к узлу “AI Agent/ИИ-агент” при включенной опции “Активировать Structured Output Parser”.

 Добавьте на рабочую область “родительский”  узел “AI Agent/ИИ-агент”:

Откройте диалоговое окно настроек узла двойным щелчком мыши.

Найдите и включите опцию “Включить парсинг вывода” внутри этого узла

После включения опции у вашего AI-узла появится новая точка подключения для вывода парсера – “< >”. Более подробно работа с под-узлом “Структурированный вывод” описана здесь.

Узел “ИИ-Агент/Agent AI”

Один из важнейших узлов цепочки, предназначенный для создания автономных AI-помощников, которые не просто генерируют текст, а совершают действия, самостоятельно решают, какие инструменты ему вызвать и в каком порядке, чтобы выполнить вашу задачу.

 Узел “ИИ-Агент/Agent AI”, размещенный в рабочей области, имеет 5-6 коннекторов:

  • крайний слева – для входных данных;
  • с иконкой “робот”  – для подключения одного или нескольких узлов типа “Chat Model/ИИ-модель”;
  • с иконкой “гаечный ключ” – для подключения узла типа “MCP-tool/Инструмент”;
  • с иконкой “шестеренка” – для подключения узла типа “Память”;
  • подключаемый в настройках коннектор “< >” для под-узла  “Структурированный вывод/Structured Output Parser”;
  • крайний справа – для выходных данных.

Для перехода в диалоговое окно настроек необходимо дважды щелкнуть кнопкой мыши на изоражении узла в рабочей области.

В открывшемся диалоговом окне в поле “Mode/Режим” необходимо выбрать режим запроса (промпта). Возможен выбор из двух вариантов:

  • Define (Определить ниже) — вы сами пишете промпт прямо в настройках узла;
  • Template (Шаблон) / Из предыдущего узла — агент берет промпт из данных, которые пришли от предыдущего узла (например, из чата, вебхука или другого узла).

В поле “Prompt/Запрос” размещается запрос в ИИ-модели.

В поле “System message/Системное сообщение” размещается уточняющая информация для ИИ-модели: роль, от имени которой решается задача, что  и как должна делать модель, стиль ответа и т.п.

Переключатель “Включить парсинг вывода” открывает дополнительный коннектор для соответствующего под-узла.

Узел “MCP Client Tool/MCP Инструмент”

MCP Client Tool/MCP Инструмент” — это специальный узел, который позволяет AI-агенту использовать инструменты с внешних MCP-серверов (Model Context Protocol).

Работает как универсальный переходник между AI-агентом и любым сервером, который поддерживает протокол MCP. Это могут быть серверы для поиска в интернете, работы с базами данных, блокчейном, Google-сервисами и т.п.

 Для перехода в диалоговое окно с настройками необходимо дважды кликнуть мышкой по изоражению узла в рабочем пространстве.

В открывшемся диалоговом окне необходимо указать:

  • Адрес внешнего MCP-сервера;
  • Метод соединения с MCP. Доступен выбор между HTTP Streamable (современный протокол с потоковой передачей) и SSE (устаревший, но доступный для обратной совместимости);
  • Тип аутентификации для подключения к MCP серверу. Варианты: Без аутентификации, посредством токена или посредством HTTP-заголовков.

В зависимости от поставленных задач, к одному агенту могут быть подключены несколько узлов типа “Инструменты”.

Узлы “ModelName Chat Model/ИИ-модели”

Уже встроенные в платформу Appliner узлы для подключения к популярным ИИ-моделям. Их количество постоянно растет. В зависимости от поставленных задач, можно использовать как одну из них, так и целый оркестр из LLM-моделей, подсоединенных к узлам типа  “ИИ-Агент/Agent AI”. Рассмотрим посдовательность работы с узлом “ModelName Chat Model/ИИ-модель” на примере узла “DeepSeek”.

Для настройки модели щелкните по узлу, расположенному в рабочей области, двойным щелчком мыши.

В открывшемся диалоговом окне введите нужные параметры в соответствующие поля.

Параметр Temperature (Температура) – управляет “креативностью” или “предсказуемостью” ответов. Возможны варианты от 0 до 2, с шагом 0,1. 

Tемпература 0-0,3 – максимально точный ответ. Температура > 1 – максимально неожиданный.

Max Tokens (Максимум токенов) – ограничивает максимальную длину ответа модели (в токенах).

Frequency Penalty (Штраф за частотность) – регулирует повторное использование уже употребленных токенов в тексте. Положительное значение – текст более разнообразный, отрицательное – менее. Диапазон от -2 до 2.

Presence Penalty (Штраф за присутствие) – регулирует способность модели придерживаться одной темы диалога. Положительное значение – модель более свободна в выборе тем. Отрицательное – менее. Диапазон от -2 до 2.

Top P (Ядерная выборка / Nucleus Sampling) – альтернатива Temperature. Ограничивает набор токенов, из которых модель выбирает следующий.

Integration/Интеграция – необходимо выбрать из выпадающего списка заранее созданную интеграцию с ИИ-моделью. 

Узел “RouterAi Chat Model/ИИ-Роутер” 

 Узел “RouterAi Chat Model/ИИ-Роутер” – отличается от вышеописанного узла тем, что он обеспечивает взаимодействие не с конкретной LLM, а с агрегатором ИИ-моделей. То есть, создав интеграцию с сервисом RouterAi, можно переключаться между конкретными моделями в настройках узла.

В окне настроек для данного узла имеется дополнительное поле “Plagins/Плагины”, в котором предоставляется выбор возможных инструментов для распознавания текста из графических файлов (в частности, pdf) при взаимодействии с ИИ-моделью.

Варианты выбора:

  • pdf-text (для текстовых PDF). Извлечение текста из PDF‑файлов, которые изначально содержат текстовый слой (т. е. созданы, например, в Word, а не отсканированы);
  • Mistral OCR (для отсканированных PDF). Интеллектуальное распознавание и структурированное извлечение содержимого из сложных документов (PDF, изображения, сканы), включая текст, таблицы, математические формулы, изображения и их взаимное расположение;
  • native (для моделей с нативной поддержкой файлов). Прямой приём файлов (в т. ч. PDF) моделью без отдельного плагина‑препроцессора. Пользователь просто прикрепляет файл к запросу, и модель «понимает» его содержимое.

Узел “Векторное хранилище Эпплайнер”/Appliner Vector Store

Узел “Векторное хранилище”/Vector Store — это специальная база данных, которая хранит и ищет информацию не по ключевым словам, а по смыслу (семантике). Для хранения данных используется таблица в модели данных приложения на платфрме Эпплайнер.

Как это работает, простыми словами:

  • текст разбивается на куски и с помощью специальной модели переводится в набор чисел — векторное представление. Эти числа описывают суть текста;
  • эта числовая “формула смысла” сохраняется в базе данных вместе с исходным текстом;
  • когда ИИ-модель получает вопрос, система переводит его в числа и ищет в базе тексты с самыми похожими математическими формулами. Это и есть семантический поиск.

При двойном клике левой клавишей мыши открвается окно, в котором можно выбрать таблицу в модели данных приложения, в которой будут храниться вектора.

Схема работы в цепочке с другими узлами. Вот классическая схема RAG-процесса:

  • “Загрузчик данных” обрабатывает читает файл PDF/Word;
  • “Разделитель текста” – рабзивает текст на фрагменты;
  • “Эмбеддинг – превращает фрагменты в числа;
  • “Векторное хранилище” – сохраняет числа в БД.

При формировании ответа ИИ-модели на входящий запрос:

  • “Триггер” запускает процесс;
  • “ИИ-Агент” ищет информацию в “Векторном хранилище” (подключенном как инструмент);
  • “ИИ-модель” на основе полученной от “ИИ -Агента” информации генерирует ответ на запрос пользователя.

  Узел “Векторный преобразователь”/ModelName Embedder

Узел “Векторный преобразователь”/ModelName Embedder работает как автономный узел обработки данных и обеспечивает преобразование текста в векторное представление (embedding) в любом месте цепочки.  Имя языковой модели указывает, к какой интегрированной модели узел обращается с запросом на векторизацию.

 Для настройки кликните двойным щелчком мыши по узлу на рабочем столе.

 В открывшемся диалоговом окне введите нужные данные:

Text/expression (Текст/выражение) – указывается, какая именно часть данных из предыдущих шагов рабочего процесса нужно преобразовать в векторное представление. Например, если поле с текстом называется text или data: {{ $json.text }} или {{ $json["data"] }}

  • Model (Модель) – название языковой модели (предустановленно);
  • Dimentions (Размерность) – указывается, если необходимо уменьшить размерность выходного вектора. Возможные варианты для модели text-embedding-3-small: 256, 512, 1024, 1536, по умолчанию устанавливанется 1536;
  • Timeout (Время ожидания) – максимальное время выполнения запроса в секундах;
  • Integration (Интеграция) – выбирается заранее созданная интеграция с ИИ-моделью;
  • Strip New Lines (Удалить переносы строк) – опция удаления символов переноса строки из входного текста.

Как это работает: В узел передается текст из предыдущего шага (например, из Read File), узел обращается к модели  и на выходе отдает набор чисел — список векторов.

Этот узел пригодится, когда нужно, например, сравнить два текста между собой, на дубликаты или на схожесть смыслов, или разбить текст на категории.

Под-узел “Векторизация”/ModelName Embeddings

Под-узел “Векторизация”/ModelName Embeddings обеспечивает преобразование текста в векторное представление (embedding) и является источником данных для других узлов. Имя языковой модели указывает, к какой интегрированной модели узел обращается с запросом на векторизацию.

 Для настройки кликните двойным щелчком левой клавиши мыши по изображению узла на рабочем столе.

В открывшемся диалоговом окне введите нужные данные:

  • Model (Модель) – название языковой модели (предустановленно);
  • Batch size (Размер пакета) – количество фрагментов текста, обрабатываемого за одну итерацию (опционально);
  • Dimentions (Размерность) – указывается, если необходимо уменьшить размерность выходного вектора. Возможные варианты для модели text-embedding-3-small: 256, 512, 1024, 1536, по умолчанию устанавливанется 1536;
  • Timeout (Время ожидания) – максимальное время выполнения запроса в секундах;
  • Integration (Интеграция) – выбирается заранее созданная интеграция с ИИ-моделью;
  • Strip New Lines (Удалить переносы строк) – опция удаления символов переноса строки из входного текста.

Под-узел “Векторизация”/ModelName Embeddings нужен в первую очередь для построения RAG-систем (поиск по базе знаний). Он используется только в связке с узлами баз данных, например, с узлом “Векторное хранилище”/Vector Store, к которому присоединяется в качестве источника. Когда в базу будут загружаться документы, она будет автоматически вызывать этот узел, чтобы превратить текст в векторы и сохранить их.

Узел “Пакетный цикл”/Loop Over Items

 Узел “Пакетный цикл”/Loop Over Items предназначен для пакетной обработки данных. Простыми словами: этот узел берёт большой список данных, режет его на маленькие фрагменты(пакеты) и отдаёт их по очереди.

 Для настройки кликните двойным щелчком мыши по узлу на рабочем столе.

Ключевой параметр настройки — Batch Size (Размер пакета).

Принцип работы выглядит так:

  • на вход узел получает массив из 100 элементов;
  • вы устанавливаете Batch Size (Размер пакета), например, = 10;
  •  узел берет элементы 1–10 и отправляет их дальше по цепочке;
  • как только обработка первых 10 закончена, узел берет элементы 11–20;
  • так повторяется, пока не закончатся все 100 элементов;
  • когда всё готово, узел склеивает результаты обработки всех пакетов в один общий результат и отдаёт его через выход “done”.

Выключатель Reset internal state before execution (Перезагрузка внутреннего состояния перед исполнением) необходим для формирования более сложных циклов, когда нужно, чтобы  узел «забыл» всё, что он обработал раньше, и начать работу заново с новым набором данных, который пришёл на вход.

Когда это нужно использовать?

Защита от блокировки (Rate Limiting): Почти все API (Google, CRM, ChatGPT) имеют лимиты: “не более 10 запросов в секунду”. Соответственно, Узел “Пакетный цикл”/Loop Over Items с патчами по 5 штук решит эту проблему .

Экономия ресурсов: Если вам нужно проверить 1000 сайтов (сделать Ping), запуск 1000 проверок одновременно может перегрузить сервер. Разбивка на пакеты сделает нагрузку плавной.

Работа с пагинацией (много страниц): Когда вы запрашиваете данные из API, которое отдает результат постранично (страница 1, страница 2…). Этот узел (особенно с опцией Reset) помогает ходить по страницам, пока данные не кончатся.  В сочетании с одним или несколькими дополнительными узлами типа “Цикл/Loop” и/или “If/Условие” можно настроить сложные циклы.

Под-узел “Разделитель текста”/Token Text Splitter

Под-узел, который используется для подготовки текстовых данных перед отправкой их в большие языковые модели (LLM). Его основная задача — разбить длинный текст на небольшие, перекрывающиеся фрагменты (чанки), чтобы они гарантированно не превысили лимит токенов модели.

Принцип работы простыми словами:

Преобразование в токены: Полученный текст он сначала разбивает не на символы или слова, а на BPE-токены (единицы, которые понимает модель).

Разделение на части: Затем он нарезает эти токены на кусочки заданного вами размера (например, по 500 токенов).

Сборка обратно: Каждый кусочек токенов конвертируется обратно в читаемый текст.

Для настройки под-узла щелкните по нему двойным щелчком мыши.

Для настройки доступны два ключевых параметра:

Chunk Size (Размер чанка): Определяет, сколько токенов будет в каждом фрагменте текста. Нужно выбирать с учетом лимита модели, с которой вы работаете.

Chunk Overlap (Перекрытие чанков): Определяет, сколько токенов из предыдущего фрагмента попадет в начало следующего. Это помогает сохранить контекст и не “потерять” смысл на стыках частей текста.

Особенности использования: если на вход приходит несколько элементов данных, то в настройках этого под-узла выражения всегда будут ссылаться только на первый элемент из всего списка.

Этот под-узел используется в сценариях RAG (поиск и генерация ответа по вашим данным) или при обработке больших документов, где весь текст не помещается в контекст модели за один раз.

Под-узел “Рекурсивный разделитель текста”/Recursive Text Splitter

Под-узел “Рекурсивный разделитель текста”/Recursive Character Text Splitter — работает с символами и старается разделяет текст так, чтобы не разорвать слова, предложения и абзацы, сохраняя структуру текста. В отличие от Token Text Splitter, который режет по токенам, не заботясь о структуре.

Принцип работы под-узла простыми словами:

Начинает разделение текста с крупных блоков, пытается разбить его на фрагмент по разделителям (например, по переносам строки nn).

Проверяет размер: Если получившийся фрагмент все еще больше заданного вами Chunk Size (размер чанка), он спускается на уровень ниже и режет тот же кусок уже по предложениям (ориентируясь на точки).

И так до конца: Если снова не помещается — режет по запятым, затем по пробелам (словам). Это гарантирует, что в итоге вы получите максимально осмысленные элементы текста.

Настройки почти аналогичны вышеописанному под-узлу “Разделитель текста”, с той разницей, что считаются не токены, а символы. Для настройки доступны два ключевых параметра:

Chunk Size (Размер чанка): Определяет, сколько символов будет в каждом фрагменте текста. 

Chunk Overlap (Перекрытие чанков): Определяет, сколько символов из предыдущего фрагмента попадет в начало следующего. 

Особенности использования: этот под- узел — стандартный выбор для большинства задач RAG (поиск по документам) . Его используют для:

  • загрузки PDF, документов Word или больших текстов из базы знаний;
  • отправки данные в векторную базу;
  • подготовки текста для LLM с сохранением смысловой структуры.

Что выбрать?

Под-узел “Рекурсивный разделитель текста”/Recursive Character Text Splitter — для осмысленных текстов (статьи, книги, документы).

Под-узел “Разделитель текста”/Token Text Splitter— когда известен жесткий лимит модели и токены важнее структуры.

    Пошаговая последовательность действий при создании цепочки, а также особенности настройки описаны в статье “Создание и запуск цепочки”.

 

Оставить комментарий

Оглавление