Корпоративный Telegram бот с ИИ и базой знаний

Описание задачи

Необходимо разработать Telegram-бота для внутреннего использования в компании. Бот должен отвечать на вопросы сотрудников, используя заранее загруженную базу знаний: инструкции, часто задаваемые вопросы (FAQ), записи типовых диалогов. Ключевое требование - бот не придумывает ответы, если информация отсутствует в базе, а сообщает об этом. Также требуется возможность легко обновлять/дополнять базу знаний без остановки работы бота.

Технические требования

  • Реализация на чистом Python (библиотека python-telegram-bot или аналог)
  • Наличие простой админ-панели (можно в виде веб-интерфейса или через Telegram команд)
  • Возможность загружать документы (PDF, txt), папки с файлами
  • Автоматическое структурирование и индексирование контента базы знаний
  • Генерация векторов эмбеддингов для поиска (LLM (ИИ) на выбор: OpenAI, локальная модель)
  • Ответы только на основе найденных фрагментов базы, без фантазирования (grouding/retrieval-augmented generation)
  • Скажите чётко, когда данные отсутствуют: "Извините, в базе знаний нет информации по этому вопросу"
  • Возможность обновлять и добавлять документы в фоновом режиме, без перезапуска бота
  • Логи взаимодействия, системный журнал

Этапы разработки

  • Этап 1: Проектирование архитектуры - определить схему базы, способ индексации и программные компоненты
  • Этап 2: Разработка модуля парсинга документов (из pdg и txt) - извлечение, разметка
  • Этап 3: Разработка движка семантического поиска/ответа на базе классических методов Vector Search ± ранговая фильтрация
  • Этап 4: Создание телеграм-интерфейса - команды, личные сообщения, обработка контекста (диалогов)
  • Этап 5: Реализация администрирования - загрузка файлов из адми-команды / панель, просмотр истории и ручное регулирование поиска
  • Этап 6: Тестирование, юнит-тесты, отлов edge case (когда два документа противоречат друг другу)

Условия для исполнителя

  • Полный рабочий код и документация
  • Оценка дальше уточняется после задания по архитектуре
  • Предпочтительный язык: Python версии 3.10+ (asyncio)