Создание Telegram-бота на основе RAG: идеи и принципы работы
Зачем RAG-бот в Telegram — кейс из жизни
Привет, Хабр!
Это моя первая статья здесь, и я решил посвятить её проекту, который недавно завершил — Telegram-бот на основе архитектуры Retrieval-Augmented Generation (RAG). Этот бот позволяет отвечать на вопросы пользователя, используя внешние источники данных и возможности современных языковых моделей.
Сама идея пришла из личной потребности: мне нужен был простой, но умный ассистент, который мог бы справляться с задачами в стиле "поиск + генерация ответа". Погружаясь в RAG, я понял, насколько мощным может быть такой подход, даже при использовании относительно простых технологий.
Для того чтобы можно было испытать данного бота, перейдя по ссылке ниже, вы можете бесплатно задать 3 вопроса и оценить релевантность ответов.
Проект всё ещё развивается, и вы можете поучаствовать в его продвижении!
Чем этот бот может быть полезен?
В современном информационном шуме, когда даже краткий поиск требует времени и усилий, важно иметь инструмент, который мгновенно комбинирует «что» и «почему» — извлекает факты и формулирует понятные объяснения.
Вот несколько сценариев, где Telegram-бот на базе RAG показывает свою ценность:
Для работы:
Исследование документации: скидываешь ссылку статью — и получаешь краткий ответ на конкретный вопрос.
Внутренние базы знаний: можно использовать внутри компании для быстрой ориентации в внутренних документах.
Автоматизация поддержки: подключив базу FAQ, бот сможет отвечать на вопросы пользователей и сотрудников.
Для обучения:
Подготовка к экзаменам: загрузи учебный материал и спрашивай любые уточнения — бот выдаст ответ по контексту.
Изучение сложных тем: бот умеет объяснять, приводить определения, формулы, код — всё по делу и без выдумок.
Для повседневного использования:
Уточнение новостей: отправляешь статью с новостного сайта — бот извлекает суть, объясняет термины и предлагает выводы.
Сбор инсайтов из длинных текстов: лонгриды, блоги, обзоры — всё можно превратить в сжатую, релевантную информацию.
Главное — не нужно читать всё целиком. Просто спроси бота.
Как работает бот: от URL до осмысленного ответа
Основные функции:
Интеллектуальное индексирование — обрабатывает статьи с любого URL
Многоязычность — поддерживает вопросы и ответы на английском и русском языках
Настраиваемые запросы — управление стилем и форматом ответов
Поддержка прокси-серверов — работает с API OpenAI в регионах с ограниченным
доступом
Ссылка на источник — всегда показывает подтверждение ответа
Постоянное хранилище — сохраняет проиндексированные статьи между сеансами
С полным списком команд вы можете ознакомиться здесь
Работа бота:
Приведу пример работы бота:
Пользователь отправляет свою статью
- User:
https://example.com/
Бот корректно ее обрабатывает и разбивает на какое-то количество чанков
- Bot: "✅ Article indexed! Processed 15 chunks"
Далее пользователь задает свой вопрос
- User: "What is chain-of-thought prompting?"
И бот выдает релевантный ответ
- Bot: "Answer: A technique that breaks down problems into intermediate reasoning steps..."
Скриншоты:


Новый промпт:
Также вы можете изменить текущий промпт, нажав prompts settings -> write new prompt
.
Пример текущего промпта:
urrent prompt: Expert Research Assistant Guidelines:
Source Accuracy:
Strictly use ONLY the provided context
For missing info: "The article doesn't specify"
Never hallucinate facts
Response Structure:
Core Answer (1 bolded sentence)
Key Evidence (3-5 bullet points max)
Practical Implications (when relevant)
Limitations (if data is incomplete)
Technical Content:
Code: ```python ...
- Formulas: $E=mc^2$ format
- Terms: "API (Application Programming Interface)"
4. Language Rules:
- Match question's language
- Auto-correct grammar subtly
- Use ISO standards for dates/units
Context:
{context}
Question: {question}
Вы же можете изменить его на более вам подходящий.
Установка
Подробную инструкцию по установке можно найти здесь.
git clone
https://github.com/Konstantin-vanov-hub/RAG_bot.git
cd RAG_bot python -m venv venv
source venv/bin/activate # Linux/Mac
venv\Scripts\activate # Windows
pip install python-dotenv==1.1.1
pip install -r requirements.txt
Configuration
Create .env file:
Также вам нужно будет создать свой Telegram token и OpenAI API ключ. Добавьте их в файл .env
, пример, как должен выглядеть этот файл можно посмотреть в .env.example
Со списком всех необходимых файлов для начала работы можно ознакомиться в requirements.txt
Что такое RAG и как он реализован в боте
Архитектура:

Что такое RAG?
RAG (Retrieval-Augmented Generation) — это архитектура, совмещающая в себе два ключевых этапа:
Retrieval (Извлечение): сначала из внешнего хранилища знаний (например, векторной базы или базы документов) извлекаются релевантные фрагменты, которые связаны с запросом пользователя.
Generation (Генерация): затем эти фрагменты подаются на вход языковой модели (например, GPT), которая генерирует финальный ответ, используя как сам запрос, так и найденную информацию.
Таким образом, модель не полагается только на "память", встроенную в параметры нейросети, а обогащает свой ответ за счёт актуальных данных.
Как это применяется в Telegram-боте?
Мой бот реализует классическую цепочку RAG следующим образом:
Пользовательский ввод →
Преобразование текста в эмбеддинг (через Sentence Transformers / Hugging Face модель) →
Поиск ближайших фрагментов из базы данных (использую FAISS для векторного поиска) →
Формирование запроса к языковой модели (например, OpenAI API) с учётом найденных документов →
Генерация и отправка ответа пользователю в Telegram.
Какие данные можно использовать?
Вы можете подгружать любую информацию: документацию, статьи, внутренние базы знаний компании, заметки и даже логи. Главное — правильно их предварительно обработать (чанкать, эмбеддить и сохранять).
Такой подход позволяет использовать LLM максимально эффективно: она не "выдумывает", а опирается на факты, которые вы ей дали.
Заключение
Как я уже говорил проект еще не закончен и может быть доработан. В любом случае я буду рад если вы зайдете на мой проект и оставите feedback – вдруг именно ваш кейс станет следующей фичей проекта!