Используем ChatGPT для Text to SQL: анализ заказа клиента
Ваши сотрудники хотят регулярно получать аналитику, но не знают точных критериев отбора? Полученные отчеты не приносят никакой пользы, но на их составление тратится огромное количество времени? Тогда нужно отдать самим пользователям возможность самостоятельно «на ходу» формировать нужные им отчеты, но для этого нужен универсальный конструктор отчетов. Тогда пользователи превращаются в аналитиков и начинают изучать SQL или «монструозные» системы анализа Tableau, Power BI и другие BI-системы. Но сегодня есть куда более простое решение, с приходом ChatGPT у нас появляется «переводчик», который может перевести что угодно с человеческого языка на машинный (в нашем случае на SQL-язык).
Цели
КАМам, продуктовым менеджерам, руководству компании необходимо анализировать текущую ситуацию по продажам, искать способы достижения новых результатов, проверять гипотезы, оценивать результативность своих действий и т.д. Чаще всего для этого используют показатели из отчёта ЗК.
ЗК клиента хранится в системе учёта. Мы используем для этого 1С Торговля. Для его анализа сотрудники обращаются в ИТ отдел. Передают нам в текстовом виде в свободной форме, какие показатели они хотели бы видеть в отчёте. Специалист 1С подбирает наборы полей, по которым будет производиться выборка и готовит отфильтрованный отчёт. Далее пользователи его проверяют и чаще всего просят откорректировать. Потому что, например, в поле "Бизнес-регион" нет нужной им страны, т.к. там содержатся только регионы РФ. Или им нужно рассчитываемое поле, т.к. готового поля в этом отчёте нет и т.д. В результате, чтобы получить нужный отчёт, пользователю приходится отдавать его на доработку 2-3 раза. И это не решается с написанием более точного ТЗ. Пользователь должен увидеть результат своего первого запроса, чтобы перейти на следующие этапы. Но самый большой недостаток такой схемы — что в итоге пользователь получает только вид своей узкой грани, которую он "загадал" у себя в голове на основе знаний данных отчёта, которые у него есть в голове. Когда по факту набор данных в отчёте может предоставить намного более ценную информацию для клиента. Но найти ту грань, которая ему принесёт максимум пользы, он сможет только просмотрев большее количество этих граней (выборок).
Проблематика и решения
Ранее были попытки начать повсеместно использовать системы для аналитиков на подобии Tableau, но это достаточно дорогостоящее ПО, которое требует соответствующего уровня знаний этого ПО у пользователей (требуется долгое обучение).
Поэтому было принято решение применить умения ChatGPT для решения данной задачи. Для пользователя это должно было выглядеть следующим образом: он заходит в раздел ЦРМ и вводит текстом в свободной форме запрос, что он хочет получить из отчёта. Например: "Квартальная прибыль по продукции ЗЗ, где клиенты были из Москвы." На выходе он должен быстро получить готовую таблицу, после анализа которой, он сможет откорректировать свой запрос и получить новую выборку. Ответные выборки должны быть максимально точные!
Технические аспекты работы с ChatGPT
Для решения этой задачи сразу было понятно, что:
-
Работа ChatGPT будет через API, потому что пользователи будут с ним работать через ЦРМ.
-
Мы должны рассказать ChatGPT о структуре нашего отчёта ЗК.
-
Мы имеем ограниченный бюджет. Как обычно, чтобы расходы не превосходили пользы, которую мы получим.
Путь к решению
Ниже мы расскажем наш путь до решения этой задачи. Он оказался не коротким и содержал очень много интересных задач, решения которых не найти в просторах интернета.
Более подробный отчет будет вестись в нашем отдельном ТГ канале DevChallengesLog
Шаг 1 Интеграции ChatGPT: Расширяем Горизонты
Продолжаем наше погружение в мир ChatGPT! После первоначального знакомства с базовыми функциями, мы переходим к следующим этапам использования этой мощной технологии.
1️⃣ Базовый Уровень: Наше первое знакомство с ChatGPT началось с версии 3.5, которую мы интегрировали бесплатно через библиотеку gpt4free, найденную на GitHub. Эта библиотека позволяет нам подключить ChatGPT к нашей CRM-системе. Цель - познакомить пользователей с функционалом ChatGPT, научить их формулировать запросы и общаться с AI, как это обычно делают с голосовыми ассистентами.
2️⃣ Продвинутый Уровень: Второй способ - это использование ChatGPT-4 через браузер. Это позволяет нам работать не только с текстовыми запросами, но и анализировать загруженные файлы, картинки, анализировать сайты. Этот метод предназначен для более опытных пользователей, которые умеют составлять эффективные запросы и готовы применять ChatGPT для решения более сложных задач, включая графический анализ.
3️⃣ Автоматизация с API: Третий и самый продвинутый уровень – интеграция с API ChatGPT для автоматизации внутренних процессов. Это позволит нам анализировать данные, получать инсайты и предложения, автоматизировать рутинные задачи. Работа с API будет невидима для пользователей, но существенно повысит эффективность наших систем.
🔍 Далее: Мы будем детально описывать каждый этап интеграции, поделимся опытом и примерами использования ChatGPT в реальных задачах. Следите за обновлениями!
Шаг 2. Успешная Интеграция c GPTForFree
Сегодня мы с гордостью объявляем об успешной реализации первого уровня подключения ChatGPT через библиотеку GPT4Free. Вот как мы это сделали:
🔧 Технические Детали:
- Подключили библиотеку GPT4Free
- Создали API-метод на нашем микросервисе, который был интегрирован с CRM.
- В CRM добавили форму для диалога с ChatGPT.
👍 Преимущества Библиотеки GPT4Free:
- GPT4Free хорошо описана, что упростило интеграцию.
- Выбрали модель 3.5 Turbo, наиболее стабильную и продвинутую.
- Остальные модели, которые обещают работу с gtp4 (bind) оказались очень нестабильными и медленными.
🧪 Тестирование и Отзывы Пользователей:
- Выбранная группа пользователей активно тестировала систему, задавая разнообразные вопросы.
- Интересно, что большинство вопросов было непрофессионального характера, например, поиски рецептов.
🔄 Улучшение Контекстного Взаимодействия:
- Доработали систему для передачи контекста с каждым сообщением, что повысило качество диалога.
- Контекст хранится в течение суток для обеспечения последовательности беседы.
⚙️ Технические Нюансы:
- Иногда возникали сложности с обработкой контекста, что может быть связано с дополнительной настройкой с нашей стороны.
- Нам приходилось отправлять весь контекст диалога с каждым новым сообщением пользователя. Это не типовое использование библиотеки.
✨ Выводы:
Модель 3.5 Turbo показала себя с лучшей стороны, обеспечивая быстрые и точные ответы.
Пользователи успешно адаптировались к новой системе и уже готовы перейти к следующему этапу использования ChatGPT.
👨💻 Примеры Кода с Библиотекой GPT4Free:
# Инициализация модели
gpt = OpenAIGPT(model='gpt-3.5-turbo')
# Отправка запроса
response = gpt.generate(prompt="Привет, как дела?")
print(response)
Этот код показывает, как можно взаимодействовать с ChatGPT, отправляя запросы и получая ответы в CRM.
Следите за нашими обновлениями, чтобы узнать больше о следующих этапах интеграции ChatGPT!
Вступайте в Telegram канал проекта NetworkGuru, чтобы не пропустить интересные статьи и вебинары.
Появились вопросы или нужна консультация? Обращайтесь!
Вечный параноик, Антон Кочуков.
См. также:
Авторизуйтесь для этого