Задача
Помочь найти ответ и не потерять контекст обращения
Документы отдела уже были собраны в общем репозитории, но для ответа на вопрос всё равно нужно было открыть нужный файл и найти в нём информацию. В клиентском обращении к этому добавляются уточнение задачи, подготовка ответа и передача результата сотруднику.
Я разделил эти действия на два понятных пути: прямой вопрос по базе знаний и обращение, в котором окончательное решение принимает ответственный сотрудник.
Вопросы по документам
Ответ можно проверить по источнику
Доверенный пользователь получает доступ через персональный пароль, привязанный к его Telegram ID. Он задаёт вопрос в боте. Если непонятно, о каком проекте речь, бот сначала просит уточнить запрос. Затем он ищет подходящие фрагменты в локальном индексе документов и готовит ответ на их основе.
Под ответом есть кнопки для открытия источников. Если AI недоступен, бот показывает найденные фрагменты, чтобы человек мог продолжить поиск сам. Вопрос по базе не превращается в клиентскую заявку.
Клиентские обращения
Бот готовит ответ, сотрудник решает, что отправить
Когда приходит обращение, бот уточняет недостающие сведения о задаче и сроке, подбирает документы и составляет черновик. Сотрудник видит текст вместе с контекстом и источниками: может исправить его, отправить на доработку или одобрить.
Карточка обращения и история действий сохраняются только после подтверждённой отправки. Если из-за сетевой ошибки непонятно, дошло ли сообщение, бот не повторяет его автоматически: сотрудник проверяет чат и отмечает результат. После правки старую кнопку одобрения нельзя использовать для отправки прежнего текста.
Проверка в работе
Доработал сценарии после реальных диалогов
Сначала бот мог принять вопрос сотрудника о проекте за клиентскую заявку. Я разделил эти сценарии и добавил уточнение для расплывчатых вопросов. Длинные ссылки на документы заменил короткими кнопками, а основные действия вынес в меню, чтобы не приходилось помнить команды.
Отдельно проверил сбои: при недоступности AI сотрудник видит ручной путь обработки, а при временной недоступности GitHub бот использует последнюю сохранённую версию индекса. Доступ к базе можно выдать и отозвать из меню владельца.
Результат
Работающий бот с проверяемыми ответами
Бот уже работает с реальными обращениями. Он отвечает на вопросы по документам с указанием источников и помогает сотруднику довести клиентское обращение до отправленного ответа. Я сформулировал сценарии и требования, проверял диалоги в Telegram, задавал изменения и принимал результат по тестам; код и проверки делал совместно с AI-инструментом.
Для основных сценариев пройдено 30 автоматических тестов. Карточки обращений и история действий хранятся в SQLite.