Недавно мы выпустили статью «Всё про Qdrant. Обзор векторной базы данных», в которой подробно познакомились с данным сервисом. Сегодня мы рассмотрим векторную БД с практической стороны. В статье будет описана инструкция по разработке no-code RAG-приложения на основе n8n с использованием Qdrant.
Qdrant — это открытая векторная база данных для поиска документов по схожести, написанная на Rust. Qdrant предназначен для эффективного хранения и поиска эмбеддингов — векторов, представляющих картинки, текст и другие неструктурированные данные в высокоразмерном пространстве.
Работу Qdrant мы рассмотрим в статье на основе no-code RAG-приложения в n8n с использованием OpenAI.
RAG (Retrieval‑Augmented Generation) — это подход, при котором большая языковая модель (LLM) при генерации ответа обращается к внешним данным из базы знаний, предоставленной пользователем (из обработанных документов), а не полагается исключительно на информацию из своей предобученной модели.
Обычные LLM генерируют ответы «из головы» — на основе статичных данных, на которых они были обучены. У таких моделей есть knowledge cutoff — дата, после которой модель не знает новых фактов.
Но с RAG всё иначе:
Документы превращаются в эмбеддинги и сохраняются в векторной БД (например, Qdrant).
-
При запросе LLM:
Генерирует эмбеддинг вопроса;
Выполняет семантический поиск в БД;
Извлекает релевантные куски текста;
Вставляет их в prompt модели.
LLM создаёт ответ уже с учётом этого контекста.
Настройка n8n
Для начала работы нам требуется запущенный n8n.
Запуск n8n мы произведем «одной кнопкой» в Amvera Cloud, где он есть как преднастроенный сервис. Это нам даст возможность развернуть и обновлять n8n одним действием из интерфейса, бесплатный домен с SSL, встроенное проксирование до OpenAI и возможность оплаты рублями моделей LLaMA (если нет иностранной карты для OpenAI).
Переходим в личный кабинет Amvera Cloud.
-
В панели снизу выбираем n8n
Вводим название и выбираем тариф.
Ожидаем запуска сервиса около 1 минуты. Готово.
Теперь, когда мы имеем рабочий сервис n8n, можем приступить к работе.
Переходим к проекту, открываем раздел «Домены».

Кликаем по доступному домену и переходим в интерфейс n8n.
Вы должны попасть на страницу входа. Вписываем данные и идём далее.
Мы попадём в главное меню n8n.

Разработка RAG Pipline
RAG pipeline (Retrieval-Augmented Generation pipeline) — это архитектурная схема работы ИИ‑системы, которая сочетает поиск релевантной информации (retrieval) и генерацию ответа (generation).
Именно pipeline называют весь этот процесс от запроса до ответа.
Наш функционал: пользователь отправляет документ, который далее векторизуется и сохраняется в Qdrant. Далее, при запросе пользователя LLM будет генерировать ответ с учётом информации из файла.
Таким образом, точность ответа от LLM значительно растёт, так как в обычном режиме LLM работает лишь на основании своего опыта и обладаемой информации, чего зачастую не хватает в серьёзных проектах.
Приступим к разработке проекта.
Создаем Workflow. Для этого нажимаем на «+».
Мы попадём в область работы.

Итак, мы начнём с построения процесса ввода документа.
Добавляем первый node: n8n Form

Настраиваем следующим образом:

Нажимаем «Back to canvas», и также делаем с другими nodes.
На этом этапе мы создаём лишь форму для дальнейшей загрузки файла.
Нам требуется добавлять документы в наше векторное хранилище, поэтому присоединяем и ищем Qdrant Vector Store — Add documents to vector store.
Qdrant выполняет функцию векторного хранилища, в котором сохраняются эмбеддинги наших документов вместе с их исходным содержимым и метаданными.
Это позволяет не только хранить векторные представления текстов, но и эффективно выполнять поиск релевантных фрагментов по запросу пользователя.
В нашем случае Qdrant используется как связующее звено между добавленными документами и последующим поиском по смыслу.
На этом этапе нам требуется добавить Credential (личные данные). Поэтому мы возвращаемся в Amvera Cloud за Qdrant.
Запуск Qdrant и получение URL
Аналогично с n8n, Qdrant является преднастроенным сервисом в Amvera Cloud, что позволяет быстро развернуть сервис и приступить к работе с ним.
В панели преднастроенных сервисов выберите Qdrant Vector Store, и также впишите название проекта и выберите тариф.
Далее, в проекте (в разделе «Инфо») скопируйте доменное имя и используйте его как URL следующим образом:
Создание Credential
В n8n под Credential понимается набор данных для подключения к внешнему сервису или API — логин, пароль, токен, ключ, URL и прочие параметры.
Мы уже выбрали Qdrant Vector Store и находимся в окне настройки.
В поле Credential to connect with выбираем Create new credential.
В строке Qdrant URL появившегося окна вписываем URL, как мы показали ранее.
Нажимаем кнопку Save. При успешном подключении высветится зелёное уведомление.

Альтернативный метод создания Credential.
Нажимаем «+», выбираем Credential.
В появившемся окне ищем желаемый сервис (в нашем случае Qdrant Vector Store) и также его настраиваем.
Настройка Qdrant Vector Store в n8n
Мы уже настроили Credential, поэтому выбираем его и идём далее.
В Qdrant Collection мы должны вписать название коллекции из векторной базы данных Qdrant.
В Qdrant все данные группируются в коллекции — это изолированные пространства хранения, в которых находятся векторы, точки и связанные с ними данные (payload). Если провести аналогию с реляционными БД, то коллекция — это как таблица, только для векторных и семантических данных.
Выбираем тип «By ID» и вписываем произвольное название коллекции.

Теперь, когда мы добавили Qdrant Vector Store, нам требуется добавить ещё несколько элементов:
Добавление модели embeddings
Для представления PDF-файла в виде эмбеддингов (Числовых представлений объекта, полученное с помощью нейросети) нам требуется модель, которая будет превращать текст в эмбеддинги.
Мы будем использовать OpenAI.
Подготовка
Сперва мы должны получить API ключ. Его можно сгенерировать по ссылке. Далее —создать Credential по аналогии, представленной ранее. Вписываем лишь API Key.
Нажимаем на «+» c надписью Embeddings и выбираем в списке Embeddings OpenAI.
Возвращаемся на холст
Document Loaders
Нажимаем на +, выбираем Default Data Loader. Изменяем Type of Data на Binary
Text splitter
Здесь мы собираемся настроить, как разбить документ. В нашем проекте мы выберем Recursive Character Text Splitter, который рекомендуется в большинстве случаев использования.
Нам требуется определить размер чанков.
Чанки (chunks) — это небольшие фрагменты текста, на которые разбивается документ перед созданием эмбеддингов.
Иначе говоря:
Чанк — это кусок текста фиксированного размера (например, 300–500 слов), который можно подать модели для получения эмбеддинга.
Если у вас семантически простой документ, ставьте значение Chunk Size малым, если нет — напротив, большое. Мы же поставим усреднённое значение на 400. Chunk overlap рекомендуется ставить на ¼ от Chunk Size
Сейчас проект выглядит так:

Разработка RAG Chatbot
Сперва отдельно от всех создадим новый node: Chat Trigger. Нам требуется, чтобы срабатывал триггер на RAG после того, как сообщение появляется в чате.

Далее нам требуется присоединить AI Agent.
В данном случае мы настраиваем сам AI, который будет отвечать на вопрос пользователя с учётом информации из ранее подготовленного документа.
Без лишних настроек присоединяем его к Chat Trigger.
Настройка AI Agent
Первоначально нам требуется выбрать модель LLM. Мы и сейчас будем использовать OpenAI Chat Model. Для этого нам требуется нажать на +, и в списке моделей выбрать OpenAI Chat Model. Так как мы ранее настраивали Credential для OpenAI, то и сейчас за нас выбрана учётная запись. Далее вы можете выбрать любую удобную для вас модель GPT. Мы будем использовать gpt-4o-mini.
В Memory мы выбираем Simple Memory, здесь без изменений.
В Tool выбираем Qdrant Vector Store, здесь мы вписываем желаемое название и описание. Важно: имя Qdrant Collection должно соответствовать названию коллекции, выбранной ранее.
Limit — это количество фрагментов, которые можно извлечь из семантической базы данных. Вы можете установить это значение выше или ниже, в зависимости от того, сколько фрагментов вы хотите получить из БД.

Также вы можете для повышения эффективности создать системное сообщение, которое будет помогать LLM войти в курс дела.
Для этого в настройках AI Agent, разделе Options нажмите Add Option — System message. Системное сообщение должно описывать LLM его задачу, роль и деятельность. Пропишите его по желанию.
Теперь мы также должны настроить модель для эмбеддингов. Это такая же модель, как и та, которую мы добавили ранее. Поэтому достаточно лишь соединить эти два nodes.

Схема готового проекта

Тестирование и работа проекта
Для работы проекта требуется добавить документ с информацией, которая поможет LLM генерировать более точные ответы. Например, вы можете загрузить документацию какого-либо сервиса.
Для начала работы:
Запустите проект нажатием на Execute Workflow
В сплывающем окне загрузите документ формата .pdf

Ожидаем прогрузки и векторизации документа.
Задаём вопрос в чате.
Получаем ответ с учетом информации из документа.
Итоги
Мы реализовали локальную RAG‑систему на базе n8n c использованием векторной базы данных Qdrant которая позволяет:
Добавлять документы в векторное хранилище Qdrant.
Разбивать их на чанки и создавать эмбеддинги.
Выполнять поиск по смыслу среди загруженных данных.
Передавать найденные фрагменты в LLM‑модель через OpenAI для генерации ответа.
Управлять всем процессом через визуальные workflow в n8n.
Использование готовых нод и связок в n8n позволяет быстро настраивать pipeline без программирования.
Запуск мы произвели в Amvera Cloud, что позволило запустить n8n и Qdrant одной кнопкой из интерфейса, получить бесплатный домен c SSL и встроенное проксирование до OpenAI, а также подключить вывод LLM LLaMA без иностранной карты.