Контекст задачи. Анализ данных розничной сети для проверки предпринимательской гипотезы
Я работаю в небольшой консалтинговой компании архитектором ИТ-систем управления товародвижением и коммерческими процессами на платформе SAP.
На прошлой неделе в рамках пресейла занялся непривычной для себя задачей проверки предпринимательской гипотезы на данных.
На входе имеется:
- Рабочая гипотеза: в сети Х есть существенная неэффективность в процессах пополнения магазинов товарами в преддверии планируемого снижения цен.
- Данные: выгруженные в csv файлы фактические данные из ERP системы для анализа этой гипотезы (справочники товаров и магазинов, история запасов, продаж, цен)
- Желание не инвестировать долго в дохлую лошадь. Поэтому для начала хочется быстро проверить наличие примеров подтверждающих гипотезу и дать оценку сверху для существующих экономических потерь.
- Макет целевого отчета. К этому времени мы с коллегами уже обсудили в первом приближении образ конечного результата, т.е. сделали макет целевого отчета и требования к отбору в него данных.
Я сейчас прохожу курс “Рациональная работа” в ШСМ, поэтому для иллюстрации гипотезы вот диаграмма причинно-следственных связей, которую я сделал в рамках упражнений по разделу 11. Гипотеза выделена зеленым блоком, а также видны другие причины, которые могут приводить к тем же результатам
День 1. Черновик отчета с помощью ноутбука Jupiter c Python и чата с Deepseek/ChatGPT
Что делать с данными в первом приближении понятно, сырые данные есть - значит, нужен инструмент их обработки, с помощью которого можно реализовать процессинг и делать это мелкими и быстрыми итерациями.
Сначала я подумал про Excel. У меня большой опыт анализа данных в Excel, который в основном сводится к мастерскому владению функцией ВПР и сводными таблицами. Вот беда - у Excel ограничение на 1 млн строк, а в выгруженных файлах по 5 млн строк и это еще до того, как мы начинаем их соединять между собой.
Затем я вспомнил что у меня на рабочем компьютере до сих пор стоит дистрибутив Anaconda с ноутбуком Jupiter - это такая web-IDE для работы с Python в основном в области анализа данных. С Python я познакомился в 2019 году в рамках курса по анализу данных на Курсере и тех пор забыл примерно всё про синтаксис и библиотеки. Ну разве что осталось бытовое понимание, что библиотека pandas вроде хороша для работы с табличными данными.
Учить по честному Python пару месяцев ради задачи, которую надо решить за часы - не вариант. Значит будем читить и воспользуемся ИИ.
Поэтому в первый день я попеременно общался с моделями Deepseek R1 (chat.deepseek.com) и o3-mini (chat.openai.com) и писал код в Jupiter.
Результаты - примерно за 4 часа получена первая версия целевого отчета (с кучей недостающих аналитик) и я испытываю смешанные чувства:
- С одной стороны, я точно понимаю что производительность фантастическая. Без помощи ИИ я бы по старинке читал документации к библиотекам, статьи, stack overflow и та же работа на незнакомом инструменте затянулась бы как минимум на месяц.
- С другой стороны, такая работа вызывает глубокое и сильное раздражение. Чату всё время надо аккуратно задавать контекст, копировать имеющийся код или писать от руки правильные названия переменных. Когда копируешь код в jupiter, он не работает в с первого раза именно из-за неточного попадания в контекст, приходится разбираться и править на месте руками.
Вечером после работы я рефлексировал над проделанной работой и решил, что мне нужен AI, который сам видит контекст задачи (мой код и желательно данные), чтобы не тратить время и нервы на написание текста с контекстом в каждом промте.
Сначала попробовал VS Code с плагинами. Результат отрицательный. Пара самых популярных плагинов нужного типа (Github copilot и еще какой-то) отказываются даже начинать работать без впн, а впн для работы с ними конфликтует с рабочими впн для подключения к клиентам.
В качестве третьей попытки выбрал Сursor (www.cursor.com). Это брат-близнец VS Code со встроенными интерфейсными возможностями для общения с ИИ. Тут всё удалось найти, поставить, и настроить где-то за час. Бесплатная версия дает на 2 недели попробовать работу без особых ограничений и не жалуется на то, что ты в России.
День 2. Итоговый отчет с помощью AI Copilot от Cursor. Наслаждаемся полетом!
На второй день я продолжил итеративно развивать получившийся пайплайн и его результат - итоговый отчет.
Сначала скопировал код из Jupiter в Cursor и убедился что он работает, а дальше начал добавлять фичи.
С Cursor можно работать по разному, нижу опишу что я попробовал.
Способ 1 . Просим в чате решить относительно большие куски задачи
Вот картинка с иллюстрацией. Верхний зелёный блок - это то что уже было нижний - код, добавленный ИИ в отчет на вопрос в чате справа.
Примечание для занудных как я: строка 7 уже была до ответа ИИ, я ошибся с выделением на скрине.
Способ 2. Пишем комментарий на русском → получаем автоматом строки кода на питоне → проверяем результат → двигаемся дальше
В основном делал так: в нужном месте просто вставлял комментарий на свободном русском языке, какое следующее преобразование данных я хочу получить.
Дальше нажимаешь пробел, через долю секунды Cursor предлагает внизу серым одну или несколько строк кода для реализации комментария, нажимаешь Tab - вуаля, код добавлен. Проверяем при помощи чтения кода и банального print на реальных данных, что получилось то что нужно и удивляемся В 9 случаях из 10 этот код просто делает то что я хочу с первого раза.
Результат выглядит как на картинке. Мои серые тексты комментариев, код на питоне писал ИИ
Такой способ оказался по производительности как минимум в два раза быстрее отдельного общения с ИИ в режиме чата, которым я пользовался в первый день.
И главное - вместо фрустрации испытываешь фантастическое чувство полета!
Ты быстро пишешь что делать дальше, твой ИИ coplilot практически безошибочно конвертирует это в строки кода на близком к незнакомому языке программирования.
Выводы - cursor фантастически снижает порог входа для (недо)джуниоров в языке.
У меня на входе было многое:
- образование в ИТ
- данные
- представление о целевом отчете
- понимание шагов преобразования данных чтобы этот отчет получить.
Для получения результата за часы, а не недели не хватало только одного компонента - знания синтаксиса и библиотек Python.
Если вы в такой же ситуации, как и я - пора завести себе ИИ-копилота и делать небольшие, но практически нужные рабочие продукты с попутным ощущением фантастического полета.