Дообучение бота
Это вводная статья по настройке Wikibot, в случае если он не находит ответ в базе знаний. В статье собраны рекомендации, соблюдая которые, вы существенно улучшите качество ответов бота.
Введение
Если загрузить в бота неподготовленную базу знаний, бот будет отвечать, но иногда он не сможет найти ответ или ответ будет неточным. Эта статья — ключевой документ для понимания работы Wikibot и тонкой настройки бота. Овладев материалом, вы сможете добиться правильной работы бота практически в любых случаях.
Ядро Wikibot - большая языковая модель (далее LLM - Large Language Model). LLM обучается на текстах и большая часть успеха работы Wikibot зависит от качества подготовленных материалов.
LLM понимает текст, но важно помнить, что LLM знает о вашем бизнесе только из документации и что LLM не является специалистом в вашей предметной области.
Общая логика при составлении документации
Пишите статьи простым языком. Разделяйте статьи заголовками похожими на вопросы, например: “Как запустить аппарат”. Если в статье есть заголовок “Как запустить аппарат”, то после него желательно писать: “Чтобы запустить аппарат:…”. Часто содержание статьи не соответствует заголовкам, это снижает качество ответов бота. Используйте разные формулировки при описании одного и того же понятия, например: “Войти в аккаунт”, и “Войти в личный кабинет”, и “Авторизоваться”.
Общая логика обучения бота
Настройте инструкцию агента — инструкция на русском языке о том, что должен делать бот. Пишите её так, как если бы объясняли новичку. Важно понимать что умеет и не умеет агент, подробнее читайте в документации по агентам. Инструкция агента и качество документации играют решающую роль в качестве ответов бота. Если на определенный тип вопросов нужен ответ строго по регламенту без изменений формулировок, то используйте модуль “Первая линия”. Настройте Глоссарий — в каждой сфере есть множество общепринятых аббревиатур, сокращений, сленговых и жаргонных слов. Чтобы бот лучше понимал ваши термины, добавьте их в глоссарий.
Бот всегда отвечает:
- Либо на основании инструкции агента;
- Либо ответом из первой линии;
- Либо на основании документов из базы знаний;
- Либо на основании истории беседы с клиентом;
- Либо на основании общих знаний LLM (только если разрешить в инструкции агента).
Увидев, на основании какой информации ответил бот, выберете вашу ситуацию и следуйте инструкции.
Кейс 1. Бот придумал информацию в ответе
Основная мысль — любая серая зона может рождать галлюцинации, эта проблема всех современных LLM. Если ответ есть в документации, то бот найдет. Если ответа нет документации, то бот может додумать.
Типичный кейс, бот пишет: “Пошлите информации на почту support@вашакомпани.ру”, хотя у вас нет такой почты.
В инструкции агента можно написать так:
У компании есть только почта help@вашакомпани.ру
. Давай клиенту почту компании только в случае А и Б.
Ключевые данные компании, например, реквизиты и контакты, стоит добавить в инструкцию агента.
Кейс 2. Нужная первая линия не сработала
Для поиска в первой линии бот формирует упрощенный вопрос, который учитывает контекст всей беседы. В Журнале можно нажать на Идентификатор запроса - откроется Лог запроса. В этом логе можно видеть все действия, которые выполнял бот.
Шаг Search for L1
содержит упрощенный вопрос, с помощью которого бот искал первую линию.
Добавьте в нужную первую линию данный упрощенный вопрос пользователя.
Если Упрощенный вопрос пользователя сильно отличается от вопросов нужной первой линии, то добавьте в первую линию новый вопрос-ответ.
Если Упрощенный вопрос пользователя содержит числа, даты, имена, то первая линия может не срабатывать т.к. в вопросе пользователя есть дополнительная значимая информация. Что делать с конкретными данными от пользователя нужно прописывать в инструкции агента.
Если срабатывает не та первая линия, усильте нужную первую линии дополнительными вопросами.
Кейс 3. Бот не нашел нужную статью, в которой есть ответ
Если бот не нашел статью, то необходимо добавить к ней больше содержания по сути вопросы. Например, вопрос: “Как скачать фотошоп”. В документации могут быть статьи: Как оплатить или продлить подписку на Adobe Photoshop, Компания Adobe запретила оплату и продление подписки на свои продукты гражданам РФ
Однако обе статьи могут лишь косвенно задевать вопрос пользователя “Как скачать фотошоп”. Если это частный вопрос, то в одной из статей нужно сделать раздел с заголовком “Как скачать фотошоп” и в этом разделе написать конкретные шаги. Также нужно в Глоссарий добавить термин “фотошоп”.
Если статью в вашей документации нельзя поправить, например, по юридическим причинам, то в Обучение => База знаний найдите нужную статью и добавьте “Дополнительный контент”. Такой контент для бота равносилен обычному тексту статьи.
Ещё раз суммаризируем: чтобы бот находил вашу статью, в ней должен быть явно прописан вопрос пользователя и ответ не него.
Кейс 4. Бот нашел нужную статью, но ответил не по той статье
Часто у вас в документации есть похожие статьи на разные случаи. Т.е. бот находит все нужные статьи, но для ответа выбирает не ту статью. Золотое правило — любая серая зона рождает галлюцинации. Бот начинающий сотрудник, когда он понимает контекст, работает хорошо, когда не понимает пытаться угадывать. Наша задача дать боту нужный контекст и/или в инструкции агента писать в каких случаях нужно уточнять контекст.
Поясним на примере, вопрос: “Как сменить онлайн курс”. Предположим в разных разделах документации могут быть статьи с одинаковым “Как сменить онлайн курс” одна статья описывает процесс для физических лиц другая юридических.
Что нужно сделать: В дополнительный контент к каждой статье добавить пояснение для бота: “Данная статья описывает как сменить курс только для Юридического лица”. Переименовать статью из “Как сменить онлайн курс” в “Как сменить онлайн курс для Юридического лица””. Это даст боту больше контекста и он сам сможет уточнять, клиент Физическое лицо или Юридическое лицо.
Однако лучше пойти дальше и написать в инструкции: Если вопрос про смену онлайн курса то уточни, клиент Физическое лицо или Юридическое лицо.
Получив больше информации, агент ответит правильно.
Кейс 5. Бот ответил верно, но ответ не соответствует ожиданиям
Если вам нужен фиксированный ответ по данному вопросу, добавьте его в первую линию.
Кейс 6. Бот не следует инструкции агента
Напишите нам в техподдержку.
Формат запроса:
- Идентификатор бота и номер диалога из журнала (нам нужен вопрос клиента и ответ бота).
- Пояснение, что неправильно ответил бот.
- Строка из инструкции, которая отвечает за поведение бота в данном вопросе.