Как нейросеть генерирует скрипт для обработки данных

Разбираю практический сценарий: как превратить грязную таблицу в рабочий скрипт, что просить у нейросети и где обязательно проверять результат.
Когда программист вручную чистит выгрузку, он часто делает не разработку, а бухгалтерию данных: переименовывает колонки, ловит пустые значения, сверяет форматы дат, удаляет дубли, пишет одноразовые формулы. Нейросеть хорошо подходит для такого слоя работы, потому что умеет собрать черновик скрипта по описанию входных данных, правил обработки и нужного результата. Я использую такой подход не как замену инженерной проверке, а как ускоритель первых 60–80% рутинного кода.
В этой статье я обновил старый подход к теме: меньше разговоров про «магическую кнопку», больше операционной схемы. Разберём задачу обработки данных на уровне требований, промпта, проверки и доработки. Если вы только выстраиваете работу с ИИ в команде, полезно сначала прочитать материал про внедрение нейросетей в рабочие процессы, а здесь сосредоточимся на узком прикладном сценарии, где на входе есть таблица, а на выходе нужен воспроизводимый скрипт.
Где именно теряются часы при ручной обработке данных
Ручная обработка почти всегда кажется «делом на полчаса». Потом выясняется, что в выгрузке 14 колонок, названия полей отличаются от документации, даты лежат в двух форматах, суммы частично записаны строками, а файл прислали в кодировке, которая ломает кириллицу. Самый неприятный расход времени появляется не в первой версии скрипта, а в мелких правках после запуска на реальных строках.
Типичный набор операций выглядит так:
| Этап | Что делает человек вручную | Что можно отдать нейросети | Где нужна проверка разработчика |
|---|---|---|---|
| Осмотр данных | Открывает файл, ищет колонки и аномалии | Составить список проверок по описанию таблицы | Проверить реальные названия полей |
| Чистка | Удаляет пустые строки, приводит типы | Написать функции нормализации дат, чисел, строк | Прогнать на образце с краевыми случаями |
| Агрегация | Считает суммы, группы, статусы | Сгенерировать код группировки и фильтров | Сверить формулы с бизнес-правилами |
| Экспорт | Сохраняет результат в новый файл | Подготовить запись в CSV, XLSX или JSON | Проверить кодировку и структуру результата |
| Повторяемость | Каждый раз повторяет действия | Оформить скрипт с параметрами запуска | Добавить логирование и обработку ошибок |
Разбор 200–500 строк вручную ещё терпим, если задача разовая. При 20 000 строк и повторении раз в неделю ручной режим быстро превращается в скрытый налог на команду. Нейросеть помогает быстрее перейти от «я поправлю это в таблице» к «у нас есть скрипт, который делает одно и то же одинаково».
Как формулировать задачу, чтобы получить рабочий скрипт
Плохой запрос звучит так: «Напиши скрипт для обработки файла». Нейросеть в такой ситуации угадывает язык, структуру данных, правила фильтрации и формат результата. Угадывание даёт красивый код, который ломается на первой нестандартной строке.
Я обычно собираю запрос из нескольких блоков. Первый блок описывает вход: формат файла, разделитель, кодировка, список колонок, 3–5 примеров строк. Второй блок фиксирует правила: какие строки удалить, как привести даты, что делать с пустыми значениями, какие поля считать обязательными. Третий блок описывает выход: новый файл, агрегированная таблица, отчёт об ошибках, лог в консоль. Четвёртый блок просит структуру кода: функции, комментарии, проверка аргументов, инструкция запуска.
Для примера: «Есть CSV с колонками order_id, created_at, amount, status. Нужно удалить строки без order_id, привести created_at к формату день.месяц.год, заменить пустой amount на 0, оставить статусы paid и refunded, затем посчитать сумму по дням и сохранить результат в отдельный CSV». Такой запрос уже задаёт рамку. В нём есть тип входа, правила, фильтры и результат.
Если вы часто пишете однотипные запросы, помогает библиотека шаблонов. В SoftChat есть шаблоны промптов для повторяемых стартов диалога, поэтому один раз собранный каркас удобно переиспользовать для похожих задач. А если задача требует стабильной роли, например «ревьюер скриптов обработки данных», в веб-чате можно подключить сохранённого ассистента к открытому разговору через меню «Инструменты». Это не заменяет ревью кода, но снижает хаос в формулировках.
Пример рабочего промпта для генерации скрипта
Ниже каркас, который я бы дал нейросети перед генерацией кода. Его легко адаптировать под Python, JavaScript или другой язык, но язык лучше указывать явно, иначе модель может выбрать стек сама.
Ты помогаешь написать скрипт обработки данных.
Вход: CSV-файл в кодировке UTF-8, разделитель запятая.
Колонки: order_id, created_at, amount, currency, status, manager.
Примеры строк:
1) 1001, 2025-01-12, 12500.50, RUB, paid, Анна
2) 1002, 12.01.2025, , RUB, canceled, Игорь
3) , 2025/01/13, 7000, RUB, paid, Мария
Правила:
- удалить строки без order_id;
- привести дату к формату ГГГГ-ММ-ДД;
- пустой amount заменить на 0;
- оставить только paid и refunded;
- сгруппировать по дате и статусу;
- сохранить result.csv;
- вывести в консоль число удалённых строк.
Сначала покажи план, затем код, затем список тестовых случаев.
Последняя строка про план и тесты нужна почти всегда. Если сразу просить код, можно получить работающий фрагмент без объяснения допущений. План показывает, как модель поняла правила. Тестовые случаи помогают поймать пропуски: пустая дата, сумма с пробелом, статус в другом регистре, лишняя колонка, файл без строк.
Больше приёмов для точных запросов я разбирал в статье про формулирование промптов для нейросетей. Для задач с кодом там особенно полезна мысль про контекст: модель работает лучше, когда видит ограничения, формат ответа и критерий готовности.
Схема работы: от файла к проверенному результату
Сама схема проста, но её дисциплина решает многое. Сначала я беру небольшой образец данных: 10–30 строк, где есть нормальные записи и ошибки. Затем прошу нейросеть описать план обработки. После этого прошу код. Дальше запускаю скрипт на образце и сверяю результат вручную. Только после такой проверки можно давать полный файл.
Модельный кейс: компания из сферы онлайн-торговли, ~50 сотрудников, получает еженедельную выгрузку заказов на 30 000 строк и вручную собирает отчёт по статусам. В таком сценарии нейросеть может за один диалог подготовить черновик скрипта с чтением CSV, фильтрацией статусов, группировкой и экспортом результата. Экономия появляется не из-за одной удачной генерации, а из-за повторяемости: тот же скрипт запускается каждую неделю, а ручная сверка сокращается до проверки контрольных сумм и нескольких строк.
В SoftChat удобно вести такой процесс в обычном текстовом чате: ответы идут потоком, модель можно менять для конкретного разговора, а история диалогов хранится по организации. Расширенные настройки чата помогают подстроить стиль ответа: для чернового мозгового штурма можно выбрать более творческий режим, для финальной инструкции попросить короткий и строгий ответ. Набор настроек зависит от выбранной модели, лишние параметры интерфейс не показывает.
Что обязательно проверять в сгенерированном коде
Нейросеть может написать аккуратный скрипт, но она не видит ваш полный файл, если вы дали только описание. Даже при образце данных остаются зоны риска. Я проверяю их в одном и том же порядке.
Первое, типы данных. Даты, суммы и идентификаторы часто выглядят очевидно, пока в колонке не встречается пустая строка, пробел, запятая вместо точки или число в текстовом формате. Идентификатор заказа лучше хранить строкой, если там могут быть ведущие нули.
Второе, правила удаления строк. Фраза «удали некорректные строки» слишком широкая. Нужно явно сказать, что считается некорректным: нет идентификатора, не распознана дата, сумма отрицательная, статус не входит в список. Иначе скрипт может тихо выкинуть данные, которые стоило отправить в отчёт об ошибках.
Третье, проверка суммы строк. Если после фильтрации осталось 18 742 строки, полезно вывести в лог исходное число строк, число удалённых строк и число строк в результате. Для агрегированных отчётов я добавляю контрольную сумму по денежному полю до и после фильтра. Это простой способ быстро заметить, что часть данных потерялась.
Четвёртое, обработка кодировки. В русскоязычных выгрузках до сих пор встречаются файлы, где кириллица ломается при чтении. Запрос к нейросети должен включать кодировку, а если она неизвестна, лучше попросить код с понятной ошибкой и инструкцией, как поменять параметр чтения.
Связанный навык описан в материале про нейросеть для генерации текста и проверку результата: черновик надо оценивать не по гладкости, а по критериям. В коде критерии ещё жёстче: воспроизводимость, тесты, понятные ошибки, отсутствие тихой потери данных.
Когда ИИ ускоряет работу, а когда мешает
Нейросеть сильна там, где задача хорошо описывается правилами. Привести даты к одному формату, сгруппировать строки, посчитать сумму, разложить ошибки по отдельному файлу, добавить аргументы командной строки, написать простые тесты. Всё это хорошо ложится в текстовое ТЗ.
Она мешает, когда задача не формализована. Например, менеджеры по-разному трактуют статус «на проверке», часть строк нужно согласовывать с отделом продаж, а правило расчёта скидки живёт в голове одного сотрудника. В такой ситуации сначала надо описать бизнес-логику обычным языком. Только потом просить код.
| Подход | Когда выбрать | Сильная сторона | Ограничение |
|---|---|---|---|
| Ручная обработка | Разовая выгрузка на несколько десятков строк | Быстрый старт без разработки | Ошибки при повторении, нет истории правил |
| Скрипт без нейросети | Сложная логика, высокая цена ошибки | Полный контроль инженера | Больше времени на первый черновик |
| Скрипт с помощью нейросети | Повторяемая чистка, фильтрация, агрегация | Быстрый черновик и тестовые случаи | Нужны ревью и запуск на образце |
| Готовый ETL-инструмент | Регулярные потоки данных между системами | Мониторинг и расписание | Дольше настройка, избыточно для малых задач |
Для личной продуктивности похожая логика работает в бытовых задачах: сначала убираем хаос, потом автоматизируем повторение. Я писал об этом в статье про нейросети и чат-боты для повседневных задач, и в обработке данных принцип тот же. Не надо автоматизировать туман. Надо автоматизировать понятное правило.
Как оформить результат, чтобы скрипт жил дольше одного запуска
Одноразовый фрагмент кода часто умирает через неделю, потому что никто не помнит, как его запускать. Я прошу нейросеть сразу добавить короткую инструкцию: какие библиотеки поставить, как назвать входной файл, какая команда запускает обработку, где появится результат. Если скрипт нужен команде, полезны комментарии к функциям и отдельный блок «что менять при новом формате выгрузки».
В запросе можно прямо указать: «Не используй глобальные пути, принимай имя файла через аргумент командной строки, выводи понятные сообщения об ошибках, не изменяй исходный файл». Эти ограничения экономят время на ревью. Скрипт становится безопаснее: он не перезаписывает исходник и не зависит от папки конкретного разработчика.
Для обучения команды этот подход особенно полезен. Новичок видит не сухой ответ, а связку «задача → план → код → тесты → проверка». В статье про нейросети в образовании и саморазвитии я разбирал похожую роль ИИ как тьютора: он полезен, когда объясняет ход решения и помогает задавать вопросы, а не просто выдаёт готовую шпаргалку.
Что бы я сделал на вашем месте
Я бы начал с одной повторяемой выгрузки, где ручная обработка уже раздражает, но цена ошибки контролируема. Взял бы 20 строк образца, включая проблемные случаи. Затем описал бы правила в виде списка и попросил нейросеть сначала вернуть план, а не код. После согласования плана попросил бы скрипт, инструкцию запуска и набор тестовых случаев.
Дальше я бы прогнал скрипт на образце, сверил 5–10 строк вручную, посмотрел логи и только потом дал полный файл. Если результат нужен регулярно, я бы сохранил промпт как шаблон, а доработанный скрипт положил в репозиторий или общую папку с датой изменения и короткой инструкцией. Так нейросеть не становится «чёрным ящиком». Она превращается в ускоритель черновика, а ответственность за правила остаётся у команды.