Как за сутки выявить "боли" клиентов в чат-боте с помощью AI: Разбираем десятки тысяч сессий
Введение: быстрый анализ обращений — ключ к пониманию клиента
Многие компании, использующие чат-ботов на основе ИИ, сталкиваются с проблемой: как эффективно анализировать огромные объемы диалогов? Ручной анализ десятков тысяч сессий нереален. Эта статья – практическое руководство для тех, кто хочет быстро (меньше чем за сутки!) и качественно разобраться в проблемах, с которыми сталкиваются клиенты при общении с чат-ботом. Подход, описанный здесь, не требует глубоких технических знаний, но предполагает базовое понимание Python и работы с LLM (большими языковыми моделями) через API.
Глоссарий: говорим на одном языке
Прежде чем погрузиться в детали, давайте определимся с терминами:
- LLM (Large Language Model) – большая языковая модель (например, GPT-4o, DeepSeek, LLaMA 3, Gemini 1.5 Pro).
- Промпт (Prompt) – текстовая инструкция/команда для LLM.
- Саммаризация (Summarization) – краткое изложение сути текста, выделение главного.
- Агрегация (Aggregation) – группировка схожих данных.
- Ранжирование (Ranking) – упорядочивание данных по определенному признаку.
- Чат-бот – программа-собеседник, отвечающая на вопросы пользователя по сценарию или с помощью генеративной модели.
- CSI (Customer Satisfaction Index) - индекс удовлетворённости клиентов
Исходные данные: что нам понадобится
Для анализа нам потребуются только реплики клиента в рамках одной сессии чат-бота. Реплики бота не учитываем – практика показала, что это самый эффективный подход. Ответы бота могут создавать дополнительный шум при классификации. Но многое зависит от выбранной LLM модели.
Важно: Если ваша система собирает оценки CSI, используйте их! Сформируйте выборку сессий с низкими оценками – это поможет сфокусироваться на самых проблемных диалогах.
Целевой столбец данных для анализа должен содержать все реплики клиента в рамках одной сессии, объединенные в одну строку. Каждая реплика отделена от остальных ';'
Классификация: наводим порядок в хаосе
Чтобы структурировать информацию, разделим все обращения на несколько высокоуровневых классов. Классы зависят от специфики вашего бизнеса. Вот примеры:
- "Проблемы": Запросы, связанные с возникшими трудностями.
- "Продукты и услуги": Вопросы по использованию продуктов/услуг.
- "Информация": Запросы на получение информации.
- "Услуга_1" : Запросы связанные с использованием данной услуги.
Можно детализировать классы, выделив отдельные услуги. Главное – чтобы классы были понятными и охватывали все типы обращений. Помните, классам необходимо будет дать четкое и понятное определение в промпте. Если есть сомнения, добавьте класс "Другое" – туда попадет все, что не вошло в основные категории.
Пошаговый алгоритм анализа: от данных к инсайтам
Предлагаемый подход состоит из нескольких этапов:
- Классификация: LLM относит каждый диалог к одному или нескольким классам.
- Саммаризация: LLM кратко формулирует суть каждого диалога.
- Агрегация: Объединяем похожие саммари внутри каждого класса, отсекая редкие случаи (например, менее N вхождений).
- Ранжирование и анализ выбросов: Сортируем саммари внутри класса по частоте встречаемости. Ищем аномально частые запросы.
- Визуализация: Строим диаграмму для наглядного представления результатов.
- (Опционально) Детализация: При необходимости углубляемся в анализ отдельных диалогов или групп саммари.
Возможные трудности: будьте готовы
Многозначность: Один диалог может затрагивать несколько тем. LLM может отнести его к нескольким классам. Это нужно учитывать при обработке результатов.
Вариативность саммари: Даже при высокой стабильности результатов, саммари одного и того же запроса могут незначительно отличаться (порядок слов, склонения). Это может усложнить агрегацию. Решение – ручная проверка и объединение похожих саммари в постобработке.
Опечатки: В редких случаях в названиях классов могут быть ошибки. Обычно это единичные случаи, которые можно игнорировать.
Пример промпта: как "объяснить" задачу LLM
Вот пример промпта, который можно использовать для LLM (классы даны для примера, замените на свои):
Важно: Если вы используете LLM через API с ролевой моделью (system, user, assistant), последнюю строку диалога (Реплики клиента: {dialog}) лучше передавать в роли "user". Если нет, то всё кладите в system.
Обработка результатов: превращаем данные в таблицу
После обработки данных с помощью LLM вы получите пары "Класс;Саммари". В некоторых случаях в одной ячейке может быть несколько таких пар. Позже поиском по этой колонке вы сможете находить нужные вам диалоги, среди популярных саммари.
Для дальнейшего анализа создайте таблицу через агрегацию данных: извлекаете саммари и подсчитываете их количество для каждого класса. В итоге получите таблицу
- Первый Столбец: Саммари/Проблема.
- Остальные столбцы: Классы.
- Ячейки на пересечении: Количество вхождений данного саммари в данном классе.
Эта таблица – основа для построения диаграммы или ранжирования саммари по частоте встречаемости.
Если вы все сделали правильно, то сможете построить точечную диаграмму на примере ниже. Где по оси ординат у вас количество вхождений данной проблемы по оси абсцисс классы, которые вы выделили. Точка показывает порядковый номер данной проблемы в списке.
Так мы видим, какие вопросы заботят клиентов больше и к каким классам они относятся.
Заключение: быстрый старт для анализа клиентского опыта
Описанный подход позволяет получить общее представление о проблемах и запросах клиентов в чат-боте. Это – первый шаг к более глубокому пониманию клиентского опыта. Если нужна детализация, то во-первых, можно вычитывать диалоги частотных саммари, во-вторых, можно использовать LLM для более подробного анализа отдельных диалогов (об этом – в следующей статье!).
А можно ли взять модель с очень большим контекстным окном и просто написать такой промпт и передать ей все диалоги? Такое вполне возможно, но скорее всего большое количество информации потеряется и вы получите некое обобщение и не сможете вычитать диалоги, которые вас интересуют.
Хотите узнать больше?
Если у вас есть вопросы, есть предложения, нужны подробности или notebook с примером кода, свяжитесь со мной: LinkedIn.