Перейти к содержимому
Антон ГончаровРазработчик ИИ-систем

Telegram и Max · поиск по базе знаний

AI-поддержка по базе знаний

Бот поддержки вымышленного коворкинга: отвечает только по базе знаний из 18 документов, к каждому ответу прикладывает источники, а на вопрос не по теме не выдумывает, а предлагает оператора. Оператор отвечает из своего Telegram — клиент получает ответ в том же чате.

Сценарий: Коворкинг «Квадрат», Екатеринбург — вымышленный: тарифы, переговорные, парковка, правила.

Диалог с ботом: AI-поддержка по базе знаний
Ответы настоящие — сняты с кода бота, оформление как в Telegram.

Открыть демо

Не вводите настоящие персональные данные: это демо, всё удаляется через сутки.

Что показывает демо

  • Гибридный поиск: BM25 по основам слов плюс векторы, результаты сливаются по рангу

  • Ответ со ссылками [1], [2] на фрагменты базы — любой можно открыть кнопкой

  • Отказ вместо выдумки: если база не покрывает вопрос, бот так и говорит

  • Передача оператору с историей диалога и возврат клиента к боту

  • Метрики качества поиска в CI: попадание в нужный документ на 40 контрольных вопросах

  • Один код для Telegram и Max

Как попробовать

  1. Откройте бота

    Нажмите «Открыть в Telegram» или отсканируйте QR-код с телефона. Нажмите «Старт».

  2. Задайте вопрос

    Своими словами или кнопкой-примером. Под ответом будут источники — нажмите на номер, чтобы увидеть исходный фрагмент.

  3. Спросите не по теме

    Например, попросите стихотворение. Бот откажется и предложит оператора — так ведёт себя бот, которому можно доверить клиентов.

  4. Позовите оператора

    Команда /operator или кнопка под ответом. Если оператор на связи, он ответит прямо в этот чат; /bot возвращает к боту.

Что написать

  • Сколько стоит переговорная на 8 человек?
  • Можно прийти с собакой?
  • Есть ли парковка?
  • Как вернуть деньги за абонемент?
  • Можно ли зарегистрировать ООО по вашему адресу?
  • Работаете в субботу?

Команды

/start
начать заново
/operator
позвать оператора
/bot
вернуться к боту
/about
как устроено демо

Без платных нейросетей

В рабочем проекте ответ пишет языковая модель по найденным фрагментам. В демо вместо неё — локальная заглушка: она собирает ответ из самых подходящих предложений базы. Поиск, источники, отказ и передача оператору работают так же, как в рабочем проекте.

Демо работает без API-ключей OpenAI, YandexGPT или GigaChat. Там, где рабочая система обращается к модели, стоит локальная заглушка с тем же интерфейсом — поэтому демо бесплатно, всегда доступно и ничего не выдумывает.

Что будет в рабочем проекте

  • База знаний из ваших документов, сайта, Notion или Confluence с обновлением по расписанию
  • Ответы модели (OpenAI, YandexGPT или GigaChat) строго по найденным фрагментам
  • Операторы в Telegram-группе, Bitrix24 или amoCRM, а не в личке
  • Логи диалогов, доля закрытых без оператора и разбор неудачных ответов

Стек

  • Python 3.14
  • aiogram
  • Max Bot API
  • BM25 + векторы
  • SQLAlchemy
  • SQLite

Основано на

Книги и дисциплины, идеи из которых работают в этом демо.

Комментарий от разработчика

Антон Гончаров

Разработчик ИИ-систем · Python

Для бизнеса

  • Первая линия отвечает ночью и в выходные, а оператору достаётся только то, чего бот честно не знает, — вместе с историей диалога.
  • Каждый ответ — со ссылкой на документ: клиент видит, откуда информация, а вы — какие разделы базы устарели.
  • Самое ценное — список вопросов, на которые бот ответил «не знаю». Это готовый план, что дописать в базу знаний.

Для разработчиков

  • Поиск гибридный: BM25 по основам слов плюс векторы, списки сливаются по рангу (RRF). Модель получает только найденные фрагменты.
  • Отказ — не промпт «не выдумывай», а порог: если фрагменты плохо покрывают вопрос, до модели дело не доходит.
  • Один код для Telegram и Max: транспорт отделён от логики, а качество поиска проверяется в CI на 40 вопросах с ожидаемым документом.

Советы

  • Совет 01

    Начинайте с набора контрольных вопросов, а не с выбора модели: без него любое «стало лучше» — ощущение.

  • Совет 02

    Режьте базу по разделам с заголовками, а не по фиксированной длине: фрагмент должен отвечать на вопрос целиком.

Нужен такой же для вашего бизнеса?

Расскажите о задаче — отвечу, что из демо подойдёт вам, сколько это займёт и что понадобится с вашей стороны.

Другие демо в этом разделе

Все демо
  • Telegram и Max · заявки и CRM

    работает

    Квалификация лидов

    Бот принимает заявку свободным текстом, сам вытаскивает задачу, бюджет, сроки и контакт, оценивает «горячесть» и кладёт карточку на доску сделок.

    • Python
    • Telegram и Max
  • Telegram Mini App · оплата · статусы

    работает

    Магазин в Telegram

    Каталог как приложение внутри Telegram, корзина, тестовая оплата и уведомления о статусе заказа — от «собираем» до «доставлен».

    • Python
    • Telegram и Max
    • React
  • Telegram и Max · запись, предоплата, напоминания

    работает

    Запись на услуги в Telegram и Max

    Бот записывает в барбершоп: услуга, мастер и свободное время кнопками или одной фразой, предоплата, напоминание с кнопками «Приду» и «Перенести», перенос, отмена и расписание глазами администратора.

    • Python
    • Telegram и Max
  • Telegram и Max · баллы, QR на кассе, рассылки

    работает

    Программа лояльности в Telegram и Max

    Карта гостя пекарни прямо в мессенджере: QR-код для кассы, который меняется каждую минуту, баллы и уровни, каждый шестой кофе в подарок, обмен баллов на купоны, бонусы за друзей и рассылки по сегментам с согласием на рекламу.

    • Python
    • Telegram и Max
  • Веб-приложение · сценарий · код на aiogram 3

    работает

    Конструктор сценариев бота

    Бот записи или приёма заявок собирается из шагов: сообщения, кнопки, вопросы с проверкой телефона или даты, условия. Сценарий сразу проходится в превью как в Telegram, а на выходе — готовый код бота на Python.

    • React
    • TypeScript
    • Python