Автоматизация с 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:
- Следит за Google Drive папкой.
- При загрузке нового файла: Определяет его тип. Извлекает текст или данные. Сохраняет содержимое и метаданные в Supabase + PostgreSQL. Индексирует данные в векторное хранилище с помощью OpenAI embeddings.
- Затем ты можешь: Через 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 канале 👉