Классификация запросов клиентов с помощью ChatGPT
"Разделяй и властвуй" - говорил нам римский сенат. Конечно, в эту фразу закладывался другой смысл, но для нашей задачи она тоже подходит отлично! Когда количество входящих обращений клиентов в компанию переходит границу "мне нужно еще больше обращений" и к ней добавляется "что мне делать с таким количеством обращений?", тогда перед нами появляется задача классификации обращений, чтобы эти обращения можно было обрабатывать по соответствующему сценарию.
Общая проблематика
До некоторого времени применялись следующие способы сортировки обращений клиентов в компанию:
- Клиент при формировании обращения сам в форме указывал тип обращения.
- На площадках формы размещались в тематические разделы.
- Фильтрация обращений по ключевым словам.
и т. д.
Как задача классификации запросов решается сейчас?
Как известно, каждый из этих способов имеет свои существенные недостатки:
- В B2B рынке клиенты всегда обращают внимание на скорость оформления заказа и скорость обработки обращений. Когда весь день занимаешь закупкой, каждая минута лишнего заполнения критична. Поэтому выбор типа обращения для клиентов не вызывает восторга.
- Чем больше входных каналов, тем меньше контроля.
- Слишком много ошибочных срабатываний. Все начинается с отдельных слов, потом из комбинаций слов, потом регулярные выражения... Но это не приносит и 50% верного определения.
Долгие годы приходилось мириться со сложившейся ситуацией, пока в ИТ мир не ворвался ChatGPT. Понимание контекста - это самое прямое использование ChatGPT (хотя мы и пытаемся его применить для задач с большими данными и БД SQL). Но и тут не все так тривиально.
Описание задачи
Наш клиент - компания-дистрибьютор, которая предоставляет ассортимент оборудования из разных направлений компании:
- Инструменты для работы с сетью.
- Строительные инструменты.
- Аудио-видеоконференцсвязь.
- Умный дом.
- Системы безопасности и мониторинга.
- Заземление.
Как вы видите, оборудование из достаточно изолированных направлений, но несмотря на это, сделать четкое разделение товаров с более чем 50% верным результатом так и не удавалось. В наименовании номенклатуры часто встречаются пересечения. Например, муфты - могут быть и у инструментов для работы с сетью, и у заземления и т. д. Поэтому решать задачу при помощи ключевых слов не лучший вариант. В данной ситуации очень важен контекст. А кто с этим может справиться лучше, чем ChatGPT? Правильно - человек, но это совсем другая история.
Постановка для ChatGPT задачи на классификацию входящих запросов клиентов
Как же описать ChatGPT всю нашу номенклатуру?
Помимо промпта сплошным текстом, который описывает инструкции для ChatGPT, он отлично принимает структурированное табличное представление справочной информации. Ну и для экономии токенов мы представим таблицу в виде Markdown, чтобы избежать дополнительных служебных символов в Excel и ему подобных.
В нашем случае было принято решение разбить таблицу на 3 столбца:
- Тег (название направления продаж).
- Вендоры (описание вендоров, которые относятся к этому направлению).
- Описание товаров (наборы ключевых слов и выражений, которые встречаются в запросе клиентов, относящиеся к этому направлению).
Тюнинг промпта
Чтобы промпт работал быстрее и его ответы были более верными и читабельными, кодом дальнейшем были сделаны следующие доработки:
- Капслоком было подсвечено, что ответ должен содержать только тег, без объяснений (ChatGPT часто любит очень длинно и подробно объяснять свой выбор).
- Указание первым проверять наличие вендоров в запросе клиента (они имеют небольшой список и поиск происходит намного быстрее), и только потом, если прямого упоминания вендора не было в обращении клиента, начинать искать среди описания оборудования.
- Разрешить возвращать более одного тега, если в запросе большой список товаров из разных направлений. Но тег может быть уникальным (не по каждому товару тег).
Тестирование и результаты
На время тестирования мы делали рекомендательные пометки на запросах, чтобы сотрудники могли видеть, что им рекомендует ChatGPT, и затем выставлять верный тег вручную. Это нужно было для подсчета процента верных классификаций ИИ. Результат был отличный - 80% запросов определялись верно! Следующим шагом было включение автоматического проставления тегов и тонкий тюнинг таблицы на большем количестве запросов. Раз в неделю идет разбор ошибок ChatGPT и корректировка таблицы.
Забыл упомянуть важный пункт - B2B очень часто присылает свои запросы в виде файлов. Т. е. в письме буквально пару строк: "Просьба составить КП на основе ТЗ из вложения". Парсинг вложений была отдельная задача, о которой вы сможете прочитать в будущих статьях или увидеть в нашем ТГ-канале https://t.me/devchlog, где мы публикуем наш еженедельный отчет (возможно, перейдем на еженедельный).
Вступайте в Telegram канал проекта NetworkGuru, чтобы не пропустить интересные статьи и вебинары.
Появились вопросы или нужна консультация? Обращайтесь!
Вечный параноик, Антон Кочуков.
См. также:
Авторизуйтесь для этого