На данный момент, составление древа знаний - это самый надежный и конфигурируемый способ создания базы знаний для чатбота RTNO. Работа этого сервиса основывется на способности бота проходить по древовидной структуре, анализируя смысловую составляющую каждого уровня, чтобы в итоге найти файл, содержащий максимально релевантную информацию для составления грамотного ответа на пользовательский запрос.
Изначально, пустое древо выглядит как на картинке ниже
Состоит само древо из трех уровней - домены, субдомены и лейблы(файлы). Каждый из этих уровней помогает чатботу определить тему пользовательского запроса и сузить поиск, что в итоге приведет к верной информации как для пользователя, так и для вашей аналитики.
Далее будем использовать онлайн магазин одежды, как наглядный пример
1) Домены
Домены - верхнеуровневые темы, на которые разделена полная информация о вашем бизнесе. Это те главные сущности, на которые можно разделить все вопросы довольно общими словами.
В примере с магазином одежды, домены могут выглядеть примерно так:
Иногда, глядя на список этих тем, может быть сложно отнести запрос пользователя к одной из них, например, вопрос "А какие майки вы доставляете в Московскую Область?" звучит, как будто он относится и к доставке и продукции, но нашему магазину нужно, чтобы подобные вопросы относились именно к доставке. Имення для этого мы даем возможность дать каждому домену короткое описание, которое может выглядеть примерно так:
1) Домен: Вопросы по продукции, Описание: Вопросы, связанные непосредственно с самой одеждой, ее характеристиками, описанием и инструкциями.
2) Домен: Вопросы по доставке, Описание: Вопросы, связанные с доставкой нашей продукции, ее сроками, условиями и возможностями
3) т.д....
Описание добавляется нажатием на иконку "?" при наведении на домен:
Таким образом, RTNO chat выбирает первый уровень контекста и продолжает проходить древо по субдоменам, также записывая этот уровень в аналтику для вас.
2) Субдомены
Субдомены - второй уровень древовидной структуры, где происходит более узконаправленный поиск по темам. Например, давайте рассмотрим, как могут выглядеть субдомены для домена "Вопросы по доставке":
То бишь, если пользователь задал вопрос по типу "Можете ли вы оформить доставку в Рязань?", RTNO chat на доменном уровне определит, что вопрос относится к домену "Вопросы по доставке". Далее, уже без дополнительного описания, чатбот определит, что вопрос относится к подтеме "Область доставки".
На доменном и субдоменном уровне, поиск проводит сама модель ГПТ, которая проводит поиск по естественной речи, так что именно грамотная и четкая формулировка позволит выбрать нужные темы
3) Лейблы(Файлы)
Лейблы или файлы - последний уровень древа знаний. Сам файл не является существенным элементом древа, так что его наименование не имеет значение, оно служит лишь для вашего удобства.
NB: Названия домена, субдомена и файла должны быть уникальны
Файлы созданы, чтобы разделять субдомены на еще более мелкие и конкретные смысловые блоки, например, для разделения деталей о стоимости доставки в Москве и в регионах РФ, можно реализовать следующую структуру:
Сам файл состоит из двух важных частей, информация и инструкции.
Информация - текстовый блок, по которому производится векторны поиск, чтобы определить, что этот лейбл подходит к пользовательскому вопросу
Как мы говорили ранее, поиск по доменам и субдоменам произодится моделью ГПТ, но в случае файлов поиск производится немного по другой технологии, а именно по векторному поиску. Если интересно, прочитать про это можно здесь
Инструкции - сама информация, которая передается чатботу, как контекст для правильного ответа пользователя. "Интсрукции" здесь довольно общее понятие, не обязательно предоставлять пошаговую инструкцию. Как раз в этом блоке и проявляется магия искусственного интеллекта больше всего, чуть позже добавим в эту статью примеры того, как чат может играть с пользователем в слова или общаться с ним в манере персонажей из фантастики.
Пример для понимания:
То есть, когда пользователь спросит вопрос по типу "Сколько стоит доставка в Москве?", RTNO chat выберет домен "Вопросы по доставке", субдомен "Стоимость доставки" и файл "Стоимость доставки в Москве", тем самым внимая в себя следующую информацию:
Доставка по Москве и области осуществляется либо СДЭКом, либо курьерской службой наших партнеров, в пределах МКАДа доставка начинается от 100₽. За МКАДом доставка стоит от 200₽
На основе этого, его ответ будет:
Доставка по Москве и области осуществляется либо СДЭКом, либо курьерской службой наших партнеров. В пределах МКАДа доставка начинается от 100₽, а за МКАДом стоимость доставки составляет от 200₽. Какой-нибудь другой вопрос? И не могли бы вы дать мне свой номер телефона? Это поможет нашей команде поддержки предоставить более точный ответ. 😊
Когда мы уточняем, что мы находимся на улице Арбат с запросом "так я на арбате, сколько именно сюда будет стоить??", его ответ звучит так:
Доставка на Арбат в Москве будет стоить от 100₽. Если у вас есть еще вопросы или нужна помощь, пожалуйста, оставьте свой номер телефона, чтобы наша служба поддержки могла связаться с вами. 📞
*Номер телефона спрашивается по конфигурации
Это завершает краткий экскурс по системе древа знаний. Чуть позже, мы добавим примеры интересных реализаций этой системы в эту же статью.