← Назад к портфолио

⚡ Telegram-бот с AI и базой знаний с интеграцией Bitrix24

Проблема: Личный Telegram-аккаунт специалиста по автоматизации завален входящими сообщениями клиентов, партнёров и лидов. Ручные ответы занимают часы в день, теряются важные диалоги, а повторяющиеся вопросы отвлекают от проектной работы.

Решение: Система из двух Telegram-ботов: пользовательский AI-автоответчик, который отвечает от лица владельца аккаунта с опорой на базу знаний, и админ-бот для удобного управления этой базой знаний через Telegram-интерфейс.

📋 Задача

Нужно было создать систему, которая берет на себя первичную коммуникацию и ответы на типовые вопросы в личном Telegram, но при этом сохраняет «живой» стиль общения и учитывает специфику проектов (Bitrix24, интеграции, автоматизация, API и т.д.). Основные проблемы:

  • Ручные ответы на однотипные вопросы — запросы про Битрикс24, интеграции, стоимость работ и типовые технические моменты приходят постоянно
  • Отсутствие централизованной базы знаний — полезные ответы и пояснения «рассыпаны» по чатам и файлам, их сложно переиспользовать
  • Невозможность быстро обновлять контент — при изменении услуг/подходов сложно оперативно менять формулировки во всех каналах
  • Нет истории диалогов в разрезе пользователей — тяжело видеть контекст прошлых обсуждений и опираться на него в новых сообщениях
  • Риск неответов — при высокой загрузке некоторые сообщения остаются без реакции или с большой задержкой

Нужен был инструмент, который отвечает как владелец аккаунта, использует структурированную базу знаний и при этом дает удобный интерфейс управления прямо из Telegram.

⚙️ Что сделано

🔹 Ключевой функционал системы:

  • AI-автоответчик в личном аккаунте — отвечает на входящие личные сообщения через Telegram-клиента, имитируя стиль хозяина аккаунта
  • Двухботовая архитектура — пользовательский бот для диалогов с клиентами и отдельный админ-бот для управления базой знаний и тестирования ответов
  • База знаний с семантическим поиском — хранит статьи по Битрикс24, интеграциям, REST API и другим темам; поиск не по ключевым словам, а по смыслу
  • Автоматическая инициализация базы знаний — при первом запуске база заполняется готовыми материалами по Битрикс24
  • Семантический RAG-контекст — при каждом запросе AI получает топ-5 релевантных записей базы знаний и использует их при генерации ответа
  • Хранение истории диалогов — сохраняются и сообщения пользователя, и ответы ассистента; используются последние 6 реплик для контекстных ответов
  • Фильтрация по чёрному списку — система игнорирует сообщения от определенных username (управление списком через админ-панель)
  • Управление знаниями через Telegram — просмотр, добавление, редактирование, удаление и поиск записей прямо из админ-бота
  • Импорт знаний из файлов — загрузка структурированных текстовых файлов с авторазбором категории, темы и контента
  • Статистика по базе знаний — количество записей в разрезе категорий, быстрый обзор наполненности базы
  • Тестовый режим AI — отдельный сценарий, где администратор может писать вопросы в админ-бот и видеть, как AI будет отвечать реальным пользователям
  • Краткие «человеческие» ответы — системный промпт настраивает стиль: до 500 символов, неформальное общение, русскоязычный тон

🔹 Технологии:

Python 3.10+ Telethon python-telegram-bot OpenRouter (Google Gemini 2.5 Flash) SQLite SentenceTransformers NumPy asyncio

🔄 Как это работает

  1. Пользователь пишет личное сообщение в Telegram-аккаунт разработчика — событие перехватывается через Telethon-клиент
  2. Система проверяет: это не бот и не пользователь из чёрного списка; если в списке — сообщение логируется, но не обрабатывается
  3. Текст сообщения передаётся в AI-сервис, который сначала делает семантический поиск по базе знаний и выбирает несколько наиболее релевантных записей
  4. Формируется системный промпт: стиль общения + сжатый контекст из базы знаний + история последних 6 реплик конкретного пользователя
  5. Через OpenRouter вызывается модель Google Gemini 2.5 Flash, которая генерирует короткий, естественный ответ на русском языке
  6. И вопрос пользователя, и ответ ассистента сохраняются в таблицу истории диалогов для дальнейшего контекстного общения
  7. Готовый ответ отправляется в чат от имени личного аккаунта, создавая эффект «живого» присутствия владельца

🧠 Интеллектуальные возможности

Интеллектуальная работа с знаниями и диалогами:

  1. Семантический поиск по базе знаний — использование эмбеддингов SentenceTransformers для поиска по смыслу, а не по точному совпадению слов
  2. RAG-подход (Retrieval-Augmented Generation) — AI всегда отвечает с опорой на реально сохранённые знания, а не только на общую модель
  3. Персонализированный контекст диалога — подгружается история общения с конкретным пользователем, чтобы ответы не были «обнулёнными» каждый раз
  4. Гибкое управление чёрным списком — добавление/удаление username через админ-бот; изменения применяются без перезапуска системы
  5. Структурированный импорт знаний — парсер текстовых файлов извлекает категорию, тему и контент, что упрощает массовое наполнение базы

📊 Результаты

до 70%
типовых входящих сообщений обрабатывается без участия человека
24/7
непрерывная обработка сообщений в личном Telegram-аккаунте
2-5 сек
среднее время генерации ответа через AI
1 база
централизованное хранилище знаний по проектам и технологиям
минуты
на добавление/обновление знаний через админ-бота
0
зависимости от сторонних интерфейсов для управления базой знаний

💡 Техническая изюминка

🎯 Комбинация RAG и персональной истории диалогов:
Система объединяет семантический поиск по базе знаний и историю конкретного пользователя в один промпт. Это позволяет отвечать не «обезличенно», а с учётом того, о чём уже говорили раньше, и при этом опираться на проверенные тексты. В результате AI-ответы звучат естественно и соответствуют реальному экспертному опыту владельца аккаунта.

⚙️ Архитектурные особенности

  • Модульная архитектура — отдельные модули для работы с Telegram, AI, базой знаний, историей диалогов и административной панелью
  • Единый event loop — оба бота (пользовательский и админский) запускаются параллельно в одном асинхронном цикле через asyncio.gather()
  • Инкапсуляция доступа к БД — все операции с SQLite вынесены в сервисы (DatabaseService, KnowledgeService, ConversationService), что упрощает поддержку и расширение
  • Семантические эмбеддинги — использование модели paraphrase-multilingual-MiniLM-L12-v2 и NumPy для расчёта косинусного сходства и ранжирования знаний
  • Гибкая конфигурация — токены, ID администраторов, чёрный список и параметры AI вынесены в отдельный конфигурационный модуль config.py
  • Автоматическая генерация эмбеддингов — при добавлении или редактировании знаний векторные представления пересчитываются автоматически
  • Защита от падений — обработка ошибок при запросах к AI и Telegram, возврат понятных сообщений пользователю при сбоях внешних сервисов

🔧 Дополнительные возможности

🔹 Функции административной панели:

  • Многошаговые диалоги — добавление знаний происходит через интерактивный диалог (категория → тема → содержание)
  • Редактирование с дополнением — при редактировании новая информация добавляется к существующей, а не заменяет её
  • Просмотр с пагинацией — показ первых 10 записей при просмотре всей базы для избежания перегрузки интерфейса
  • Поиск по ключевым словам — быстрый поиск по теме и содержанию через LIKE-запросы
  • Статистика по категориям — количество записей в каждой категории для контроля наполненности базы
  • Тестирование AI в реальном времени — возможность задавать вопросы и видеть ответы с информацией об использованном контексте
  • Управление чёрным списком — добавление/удаление username с подсказками о необходимости сохранения изменений в config.py

📈 Сценарии использования

  1. Личный бренд разработчика/эксперта — автодополнение ответов на типовые вопросы по услугам, технологиям и условиям работы
  2. Консультанты и интеграторы — быстрые ответы на вопросы по CRM, ERP, автоматизации без постоянного ручного ввода
  3. Поддержка клиентов через личный аккаунт — когда коммуникация идёт не только через ботов, но и через «личку»
  4. Обучающие проекты — база знаний как основа для автоответчика по курсам и обучающим материалам
  5. Внутренние ассистенты — использование такой же схемы для внутренних команд (поддержка, сейлз, PM) с отдельными базами знаний

✅ Этот проект подойдёт вам, если:

  • Вы активно коммуницируете в личном Telegram и хотите разгрузить себя от рутинных ответов
  • Нужно, чтобы ответы выглядели «человечески», а не как сухой бот
  • У вас уже есть накопленные материалы/ответы, которые можно превратить в базу знаний
  • Важно сохранять историю диалогов и использовать её при последующих обращениях клиентов
  • Нужен удобный способ управлять знаниями и чёрным списком прямо из Telegram
  • Вы хотите построить AI-слой поверх своего личного бренда или консультационного бизнеса

Нужен AI-автоответчик для вашего Telegram?

Разработаю систему с базой знаний и семантическим поиском, которая будет отвечать за вас: умно, по делу и в вашем стиле

Обсудить проект →