Автоматизация с RAG + n8n + Telegram

Выкладываю свою продвинутую RAG-схему на n8n, которую использую в боевом проекте для Telegram-бота поддержки.

Что делает схема:

🗂 Следит за папкой в Google Drive 📥 Автоматически загружает и обрабатывает новые файлы (PDF, Excel, Google Docs, CSV) 🧠 Векторизует контент с помощью OpenAI (embeddings) 📦 Кладет всё в Supabase в виде RAG-хранилища (pgvector) 🤖 После этого бот умеет отвечать на вопросы, извлекая данные из файлов как ассистент, с поддержкой SQL-запросов для табличных данных 📩 Работает как Webhook и как чат-агент

Где применима:

  • Поддержка пользователей с документацией в Google Drive
  • Обработка внутренних инструкций, регламентов, справок
  • Внедрение RAG + AI в процессы без кода
  • Бизнес-боты, которые “читают документы” и отвечают осмысленно

Я использую её:

👨‍💻 В работе своего Telegram-бота поддержки https://t.me/Bot_Console_bot

⚡ Отвечает на вопросы пользователей по документации

📊 Понимает табличные данные

🤖 Умеет быть ассистентом на уровне ChatGPT, но с твоими файлами

Скачать workflow можно 👉 тут

🧠 Кратко: Что делает этот workflow

Этот workflow:

  1. Следит за Google Drive папкой.
  2. При загрузке нового файла: Определяет его тип. Извлекает текст или данные. Сохраняет содержимое и метаданные в Supabase + PostgreSQL. Индексирует данные в векторное хранилище с помощью OpenAI embeddings.
  3. Затем ты можешь: Через Webhook или чат-агента отправить вопрос. Модель найдет релевантные документы (RAG). Ответит, используя контекст найденных документов.

🔍 Подробно по этапам:

📂 1. Мониторинг папки в Google Drive

  • Узлы File Created и File Updated следят за указанной папкой
  • При изменении файла запускается пайплайн обработки.

📥 2. Загрузка и извлечение текста из документа

  • Set File ID: сохраняет ID, название, тип, URL файла.
  • Download File: скачивает файл.
  • Switch: выбирает обработчик в зависимости от mimeType: application/pdf → Extract PDF Text Excel / CSV → Extract from Excel / Extract from CSV Google Docs → Extract Document Text

🧹 3. Очистка и подготовка

  • Delete Old Doc Rows, Delete Old Data Rows: удаляют старые записи из documents и document_rows по ID.
  • Insert Document Metadata: вставляет или обновляет метаинформацию.
  • Insert Table Rows: сохраняет строки табличных данных.
  • Summarize, Set Schema, Update Schema for Document Metadata: агрегируют и сохраняют схему (для табличных файлов).

🧠 4. Обогащение и векторизация

  • Embeddings OpenAI1: генерирует вектор embeddings.
  • Default Data Loader, Character Text Splitter: разбивают и формируют блоки текста.
  • Insert into Supabase Vectorstore: сохраняет embeddings в documents с помощью функции match_documents.

💬 5. Запросы и ответы

  • Пользователь отправляет вопрос через: Webhook (Webhook, Webhook1) ChatTrigger (When chat message received)
  • Edit Fields, Edit Fields3, Edit Fields4: приводят структуру данных к нужному формату.
  • RAG AI Agent: Получает контекст из Supabase VectorStore1 Использует OpenAI модель (OpenAI Chat Model) Включает память (Postgres Chat Memory) Выполняет SQL-запросы при необходимости (Get File Contents, Query Document Rows)
  • Возвращает ответ через Respond to Webhook.

🛠 Инфраструктура:

  • Supabase: documents: для хранения текста и embeddings. document_metadata: ID, название, схема. document_rows: табличные строки как jsonb.
  • PostgreSQL: Используется для инструментов LangChain и как "память чата". Есть функция match_documents() с pgvector расширением.

💡 Использование:

  • Загрузи новый документ в папку GDrive — всё остальное автоматизировано.
  • После этого, можешь задавать вопросы в чат или по API, и агент найдет релевантный текст из документа, чтобы ответить.

Еще больше интересного про автоматизацию и ИИ в моем Telegram канале 👉

1
1 комментарий