Использование RAG в Telegram-ботах: как сделать с помощью Make
Использование RAG в Telegram-ботах: как сделать с помощью Make
Представьте вечер, полусонный офис, чайник бурчит, а у вас догорают нервы от однотипных вопросов клиентов: где прайс, как получить счет, где мануал и почему бот отвечает такую ерунду. Я однажды застал такой момент в компании, где менеджеры уже шутили, что их Саша-бот просто вежливый попугай. Тогда мы собрали груду внутренних документов, QA из саппорта и решили прикрутить Retrieval-Augmented Generation – RAG – прямо в Telegram. То есть бот перестал фантазировать, начал искать факты в базе знаний и отвечать человеческими словами. Дальше было проще: чтобы не городить серверную архитектуру на коленке, взяли Make, связали Telegram, поиск по документам и генерацию ответов. Ушло пару вечеров и пачка чая, зато ощущение, что железо наконец работает на нас, а не наоборот.
Если коротко, RAG – это схема, где модель сначала вытаскивает релевантные куски знаний из вашей базы, а потом пишет ответ на их основе. Не шаманство, а простая дисциплина: документы в порядок, индексация, нормальные эмбеддинги, аккуратные запросы. И в этой связке Make выступает связным офицером, который принимает сообщения из Telegram, отправляет их в ваш поиск, потом в модель и возвращает ответ пользователю. Без лишней драмы и с удобными логами, чтобы не сидеть на холодной консоли ночью.

Что такое RAG по-человечески и зачем он в Telegram
RAG делает две вещи: находит релевантные документы и формулирует ответ на их основе. Важно, что модель получает в контекст не пустоту и не память о былой славе, а конкретные выдержки из файлов. Поэтому бот перестает путать цены из прошлого года с текущими, перестает уверенно отвечать на то, чего нет, а если не уверен, честно просит уточнить. В Telegram это особенно заметно: у вас короткие сообщения, много уточнений, голосовые, картинки, а пользователь ожидает вменяемый ответ в пару секунд. Когда добавляете RAG, бот быстро вытягивает нужные статьи из базы знаний, цитирует и даёт ссылки. В результате люди меньше пишут в саппорт, а саппорт наконец спит, иногда.
В российских реалиях чаще всего база знаний сидит в Notion, в Google Docs, в PDF на Яндекс Диске, в Confluence, иногда в CMS сайта. Все это можно привести к порядку, нарезать на фрагменты, отправить в векторное хранилище вроде Qdrant, а затем отдавать боту по запросу. Если интересует вопрос как использовать rag в живом проекте – думайте в терминах аккуратного склада: правильные полки, ярлыки, и чтобы дверь не заклинило в самый нужный момент.
Как это собирается: Telegram + Make + ваша база знаний
На схеме всё просто. Telegram дает входящие сообщения, Make забирает их и раскладывает по этапам. Сначала нормализуем запрос: чистим хвосты, вытаскиваем язык, тему, иногда намерение. Потом через HTTP или готовый модуль дергаем ваш ретривер, который возвращает 3-5 самых подходящих фрагментов из базы знаний. Затем формируем промпт и шлем его в модель. Итоговый ответ идёт назад в Telegram, плюс прикладываем ссылки на источники. Если пользователь прислал PDF или голосовое сообщение, Make подхватывает файл, запускает распознавание и дальше по той же схеме. Звучит длинно, а в сценарии это несколько аккуратных блоков, которые приятно настраивать в визуальном редакторе.
Архитектура без боли
Вам нужны четыре кирпича. Телеграм-бот через BotFather – он дает токен и право писать пользователям. Сценарий в Make – это ваш конвейер. Ретривер – компонент, который по эмбеддингам ищет релевантные куски текста. И генератор – модель, которая на основе найденного формирует ответ. Ретривер можно собрать на Qdrant или Weaviate, генератор взять из доступных API или поставить локально через LM Studio, а обвязку и очереди делает Make. У кого-то весь RAG живет в AnythingLLM, и это тоже рабочий вариант: в Make стучитесь в HTTP endpoint AnythingLLM, получаете ответ и не городите лишнего.
Подготовка данных, от которой зависит все
База знаний – это не папка «Всякое». Возьмите прайсы, регламенты, инструкции, офферы, ответы саппорта, FAQ, описания тарифов и выгрузки из CRM. Разбейте их на фрагменты по 500-1000 токенов, добавьте метаданные – раздел, версия, дата, источник, автор. Дубли и старые цены уберите, а спорные места пометьте, чтобы модель не тащила лишнего. Векторы считать можно через открытые эмбеддинги с русским языком, а хранить в Qdrant. Тогда при запросе «как продлить подписку на курс после 3 месяцев» вы получите не корзину случайных цитат, а аккуратные указания из нужного раздела. И именно это экономит деньги и нервы.
Настраиваем бота в Telegram и соединяем через Make
Бот создается за пару минут, главное – токен храните в секрете и не светите в скриншотах. В Make берете модуль Telegram Watch updates, добавляете фильтр, чтобы ловить только личные сообщения или только из конкретного чата. Затем добавляете функцию нормализации текста – убираете упоминания, стикеры, системные артефакты. Дальше HTTP-запрос к вашему ретриверу, где в параметрах текст запроса и несколько служебных полей. Ретривер возвращает массив фрагментов, их обрезаете по длине, формируете промпт и отправляете генератору. Ответ приходят с подсказками и ссылками – собираете текст, добавляете цитату в конце и отправляете в Telegram Send message. Всё. Первая версия готова настолько быстро, что даже удивительно, почему раньше вы этого не сделали.

Контекст, сессии и вежливое забывание
В чатах вечно не хватает памяти. Пользователь спрашивает сегодня о тарифах, завтра присылает файл и требует продолжить с того места. В Make делайте привязку по chat_id и храните последние реплики в Data Store, Redis или в вашей базе. Срок жизни сессии держите 30-60 минут, чтобы не раздувать контекст. На каждую реплику подмешивайте 1-2 прошлых сообщения и самые свежие документы RAG. Если контекст распух – режьте по важности: сначала системные правила, потом извлеченные факты, потом история диалога. И главное, если ничего релевантного не нашлось, не заставляйте модель угадывать – лучше честный ответ с предложением уточнить или ссылкой на форму связи.
Файлы, голос и таблицы
Люди в Telegram отправляют не только текст. Подключите распознавание речи, если аудитория любит голосовые. PDF и DOC прогоняйте через парсер, чтобы их можно было индексировать и прикладывать цитатами в ответ. Таблицы с ценами держите как отдельный источник правды и в RAG добавляйте метку свежести, иначе бот будет цитировать старый курс. Иногда удобней вообще вывести цены из генерации и отдавать через функцию: запросил – получил строгое число. Тут кстати пригождается режим function calling, который демонстрировали на вебинаре Yandex Cloud про LLM и RAG – модель решает, когда дергать внешнюю функцию, а не сочиняет числа.
Многоагентность, если задачи посложней
Когда бот должен и понять намерение, и найти документы, и позвать калькулятор, и оформить заявку, удобней разделить обязанности на агентов. Исследования в духе MA-RAG показывают, что такая кооперация повышает точность и снижает глупые ошибки. В Make это решается несколькими ветками сценария с фильтрами по намерениям: один агент классифицирует задачу, второй отвечает с RAG, третий оформляет заявку в CRM. Звучит громко, а на деле – пара аккуратных маршрутов и вебхуков, чуть больше логов и дисциплины в именовании переменных.
Кейс из реальности: отдел продаж онлайн-курсов
Был проект, где Telegram-бот должен был отвечать на вопросы о программах, сдавать квизы, подсказывать срок рассрочки и бронировать консультации. Документы – лендинги, PDF с учебным планом, публичная оферта, шаблоны писем. Мы собрали базу, порезали на фрагменты, залили в Qdrant, завели два агента: один понимал, что нужно пользователю, второй давал ответ с цитатами. Make связывал все это с Telegram, календарем и платёжными ссылками. В итоге время до первого ответа сократилось до секунд, менеджеры включались только на нетиповые вопросы, а конверсия в оплату выросла – не из магии, а потому что люди наконец получали внятные пояснения и не ждали вечность. Если интересует как использовать rag в продажах, этот подход работает трезво и без спецэффектов.

Подводные камни, о которых обычно вспоминают в 3 ночи
Главная боль – мусор в данных. Если в базе лежат три версии одного прайса, RAG принесет не то, что вы хотели. Второе – агрессивная генерация. Модель любит помогать и иногда додумывает факты, поэтому добавьте в правила явное ограничение: не изобретаем цены, не обещаем сроки, даем ссылки на источник. Третье – язык и морфология. Русские тексты любят длинные слова и редкие формы, поэтому уделите внимание эмбеддингам, поддерживающим кириллицу. Четвертое – приватность. Не отправляйте персональные данные в сервисы без юридической опоры, а токены храните в секретах Make. И последнее – скорость. В узких местах ставьте кэш: типовые ответы можно отдавать сразу, не дергая ретривер, а тяжелые операции отрабатывать асинхронно и досылать результат отдельным сообщением.
Сколько это стоит и на чем экономить
Деньги уходят на три вещи: хранение векторов, генерацию и сам Make. Хорошая новость в том, что ретривер обычно копейки, а генерация – основная статья расходов. Сократите контекст, не пихайте в модель километр текста, храните короткие фрагменты. В Make следите за количеством операций, объединяйте ветки и режьте шум. На старте уложиться в разумный бюджет вообще несложно, особенно если часть задач вынести в кэш и функции. Индексацию документов запускайте по расписанию, а не при каждом чихе, логирование держите в разумных пределах и чистите старые записи, тут уж без сантехники никак.
Что можно сделать сегодня вечером
Заведите бота у BotFather и получите токен. Откройте Make, создайте простой сценарий: входящее сообщение, нормализация, заглушка в виде «сейчас думаем», отправка в Telegram. Сложите в одну папку свежие прайсы, офферы и FAQ. Поставьте Qdrant или подключите облако, посчитайте эмбеддинги, проверьте пару ручных запросов. После этого добавьте HTTP-запрос в Make к вашему ретриверу и подключите модель. Через пару часов у вас появится первая версия RAG-бота. Не идеальная, но отвечающая по делу. Дальше уже косметика: ссылки на источники, мини-логика по намерениям, кнопки быстрых ответов, автовопрос на уточнение, аккуратная аналитика по темам.
Где учиться и чем дополнять
Если хочется ускориться, загляните в подборку материалов. В сети есть статья про связку AnythingLLM и LM Studio для простого Telegram-бота, это хороший старт, когда хочется локальности и контроля. Найдете вебинар Yandex Cloud про LLM с RAG и function calling – пригодится, когда надо подмешивать функции вроде калькулятора или бронирования времени. Исследования по многоагентным схемам вроде MA-RAG помогают понять, как делить задачи между агентами, чтобы меньше ошибаться. А чтобы не изобретать велосипед каждую неделю, используйте готовые сцены и блоки, где уже закатаны ретривер, память и обработка медиа.
Хотите научиться автоматизации рабочих процессов с помощью сервиса make.com и моделей? Подпишитесь на наш Telegram-канал. Для системной прокачки и аккуратной практики есть курсы и готовые заготовки: Обучение по make.com и набор рабочих схем Блюпринты по make.com. Там без воды, с живыми примерами: Telegram, Notion, Google Drive, CRM, платежи и весь этот цирк, но с расписанием.
Чек на здравый смысл и вопросы легальности
Если бот общается с клиентами, не надо таскать в RAG персональные данные без основания. Храните минимум, логируйте безопасно, убирайте чувствительные поля. Токены и вебхуки держите в секрете, права в Make раздавайте аккуратно. В публичных ответах избегайте юр-консультаций, обещаний скидок и всего, что потом придется объяснять в чате с юристом. И сразу договоритесь с командой, какие типы вопросов закрывает бот, а где нужен живой специалист. Это не про запреты, это про то, чтобы спать спокойно, а не поправлять бота в 5 утра.
FAQ
RAG и обычный чат-бот – это одно и то же?
Нет. Обычный бот опирается на сценарии и зашитые ответы. RAG каждый раз тянет факты из базы знаний и формирует ответ на их основе. Поэтому он устойчивей к редким вопросам и меняющимся документам.
Мне обязательно нужен свой векторный индекс?
Не обязательно, но лучше иметь. Можно использовать готовые платформы, где поиск и генерация идут пакетом. Свой индекс дает контроль над данными, скоростью и ценой.
Какая модель подойдет для генерации ответов на русском?
Подойдет любая, которая уверенно работает с русским и длинным контекстом. Главное – тестируйте на ваших документах и ограничивайте фантазию четкими правилами и коротким промптом.
Как ограничить выдуманные ответы?
Жестко прописать системные инструкции, возвращать только то, что поддержано извлеченными фрагментами, и добавлять ссылки на источники. Если ретривер ничего не нашел – просить уточнить вопрос.
Как подключить Telegram к Make без боли?
Создайте бота у BotFather, заберите токен, в Make добавьте модуль Telegram Watch updates и укажите токен. Настройте один сценарий для входящих сообщений, второй для служебных событий, чтобы не перемешивать логику.
Можно ли обрабатывать голосовые и файлы?
Да. Сценарий в Make принимает файлы, прогоняет через распознавание или парсер, отдает в ретривер и возвращает ответ. Прикладывайте цитаты и ссылки, чтобы пользователю было понятно, откуда взялась информация.
Что делать с длинными документами, например PDF по 80 страниц?
Резать на фрагменты, добавлять метаданные, хранить версии и помечать актуальность. Не пытайтесь засунуть весь документ в контекст модели – это дорого и бесполезно.
Сколько времени уйдет на первый прототип?
Если документы уже собраны, на базовый сценарий обычно хватает одного-двух вечеров. Больше всего времени съедает уборка данных и форматирование.
Как учитывать историю диалога в Telegram?
Сохраняйте последние сообщения по chat_id в Data Store или своей базе, подмешивайте пару реплик к каждому запросу. Ограничивайте размер контекста и очищайте сессии по таймеру.
Где посмотреть готовые сцены и обучиться?
Для практики и быстрых стартов загляните сюда: Обучение по make.com и сюда: Блюпринты по make.com. А зарегистрироваться и начать можно на официальном сайте Make.


