Алгоритм работы
Описание основных этапов обработки запросов пользователей
При получении запроса от пользователя в Wikibot последовательно запускаются модули:
- Проверка баланса
- Предобработка
- Первая линия - Level 1 support (L1)
- Поиск по базе знаний и генерация ответа
- Постобработка
Проверка баланса
На данном этапе проверятся наличие кредитов. Если пакет кредитов исчерпан, то запрос пользователя переводится на оператора.
Предобработка
Данный этап происходит в несколько шагов:
- Проверка коротких сообщений. Если длина запроса пользователя равна 0, то запрос пропускается.
- Обработка приветствий. Из запроса пользователя удаляется приветствие. Если длина полученного сообщения меньше 3, то возвращается ответ на запрос с типом GREETING.
- Обработка благодарностей. Из запроса пользователя удаляется фразы, выражающие благодарность. Если длина полученного сообщения меньше 26 (5 символов, если включен агент) и не содержит знака ”?”, то возвращается ответ на запрос с типом GRATITUDE.
- Перевод на оператора. Если запрос пользователя содержит слово “оператор” или его длина больше 1000, то запрос переводится на оператора.
- Проверка параллельных запросов. Если от пользователя поступает запрос “Б”, в то время пока выполняется его предыдущий запрос “А”, то запрос “Б” будет переведен на оператора. Запрос “А” будет пропущен.
Первая линия
На данном этапе проверяется соответствие запроса пользователя фиксированному вопросу\ответу. Более подробную информацию Вы найдете в разделе Первая линия. В случае, если запрос соответствует какой-либо категории Первой линии, то данный запрос переводится на оператора, либо на запрос возвращается фиксированный ответ.
Поиск по базе знаний и генерация ответа
На данном этапе происходит поиск релевантных документов и генерация на их основе ответа. Если ответ удалось сгенерировать, то возвращается полученный результат. В противном случае возвращается результат с типом NO_ANSWER.
Постобработка
На данном этапе происходит форматирование ответа согласно шаблонам ответов бота с учётом рабочего времени оператора.