DeepSeek · Автоматизация

DeepSeek V3 для скриптов автоматизации на bash и python

Скрипт пишется не с первого раза, а итерациями: запустил, упало, вернулся с текстом ошибки, поправил. Поэтому в этой задаче цена одного запроса важнее всего остального — DeepSeek V3 стоит 2 токена, самая дешёвая модель набора. Пятнадцать итераций до рабочего скрипта обойдутся в 30 токенов, четверть процента месячного пакета.

Почему DeepSeek V3 подходит для этой задачи

Цикл «запусти — упало — покажи ошибку» и есть нормальный процесс, а не признак плохой модели. Скрипт всегда встречается с реальностью: пробелы в именах файлов, пустая директория, файл с другой кодировкой, права доступа. При 2 токенах за обращение вы возвращаетесь с трассировкой столько раз, сколько нужно, и не пытаетесь героически чинить чужой код руками из соображений экономии.

Скрипт автоматизации — на редкость проверяемый жанр. Есть вход, есть ожидаемый выход, есть код возврата. Правильность видна за секунды: запустил на копии данных и сравнил результат с ожиданием. Это принципиально отличает задачу от текстов, где качество спорно, и делает дешёвую модель разумным выбором: её ошибки обнаруживаются немедленно и стоят одну итерацию.

Ограничение при этом жёсткое и его надо знать. Модель не видит вашей машины: не знает версии интерпретатора, установленных утилит, реальных путей и прав. Она напишет вариант sed с флагом, который есть в GNU и отсутствует в BSD, и скрипт упадёт на macOS. Она предположит python3 там, где у вас python. Всё это лечится одним: описанием окружения в первом же запросе.

Какие входные данные подготовить

Окружение: операционная система и оболочка (bash, zsh или PowerShell под Windows), версия python, что из утилит точно установлено.

Пример входных данных — две-три реальные строки файла или реальное имя каталога, а не описание словами. Формат почти всегда оказывается не таким, как вы его пересказали.

Точный желаемый выход: имя итогового файла, структура, куда класть результат, что печатать в консоль.

Поведение при ошибке: остановиться на первой, пропустить проблемную запись и продолжить, записать в лог. Умолчание модели тут часто не то, что вам нужно.

Ограничения: можно ли ставить пакеты, допустим ли только стандартный набор библиотек, есть ли доступ в интернет с этой машины.

Пошаговый процесс

Опишите вход и выход примерами

Три строки настоящего CSV и три строки желаемого результата стоят страницы объяснений. По примеру модель видит разделитель, кавычки, кодировку и заголовки, а по описанию словами — только ваше представление о них. Половина неработающих скриптов рождается из расхождения между тем, как вы описали формат, и тем, что лежит в файле.

Требуйте безопасных умолчаний

Просите в явном виде: строгий режим оболочки, проверку существования путей перед работой, режим предварительного прогона без изменений и подтверждение перед удалением. Модель сама этого не добавит — она пишет минимальный работающий вариант. Один абзац требований к безопасности превращает опасный скрипт в пригодный к запуску.

Первый запуск — только на копии

Скопируйте два-три файла в отдельную папку и запустите там. Не потому что модель плохая, а потому что вы могли неточно описать задачу, и скрипт исполнит именно её. Это правило не про доверие к нейросети, а про обычную дисциплину работы с автоматизацией.

Возвращайтесь с полной ошибкой

Вставляйте трассировку целиком, вместе с командой запуска и версиями. «Не работает» и «выдаёт ошибку» вынуждают модель угадывать, и вы платите за три бесполезные итерации вместо одной точной. При 2 токенах за запрос выгоднее написать длинное сообщение с полным выводом, чем короткое.

Зафиксируйте рабочую версию

Как только скрипт заработал, попросите добавить комментарии, вывод справки по ключу помощи и короткое описание в шапке файла: что делает, что требует, как запускать. Через три месяца вы вернётесь к этому файлу и не вспомните ни одного из принятых решений. Это одна дополнительная итерация за 2 токена.

Пример готового промпта

Напиши скрипт на bash.

Окружение: Ubuntu 24.04, bash 5.2, GNU-утилиты, права обычного пользователя,
доступ в интернет есть, ставить пакеты нельзя.

Задача: раз в сутки складывать содержимое каталога ~/work/reports
в архив, класть его в ~/backups с именем вида reports-2026-08-06.tar.gz
и удалять архивы старше 14 дней.

Требования:
- строгий режим: set -euo pipefail;
- перед работой проверить, что исходный каталог существует и непуст,
  иначе выйти с ненулевым кодом и внятным сообщением;
- ключ --dry-run: печатать, что было бы сделано, ничего не меняя;
- удаление старых архивов только внутри ~/backups и только файлов,
  подходящих под маску reports-*.tar.gz;
- корректно работать с именами файлов, содержащими пробелы и кириллицу;
- писать в лог ~/backups/backup.log: дата, размер архива, что удалено;
- ключ --help с описанием.

Пример вывода в консоль при обычном запуске:
[2026-08-06 03:00] архив reports-2026-08-06.tar.gz создан, 48 МБ
[2026-08-06 03:00] удалён устаревший архив reports-2026-07-22.tar.gz

Строки про строгий режим, dry-run и ограничение удаления маской внутри конкретного каталога — не украшение промпта. Именно они отделяют скрипт, который можно запустить, от скрипта, который однажды удалит не то.

Как проверить результат

Запустите с ключом предварительного прогона на копии данных и прочитайте, что скрипт собирается сделать, прежде чем разрешать ему делать это по-настоящему.

Проверьте граничные случаи: пустой каталог, отсутствующий каталог, имена файлов с пробелами и кириллицей. На них падает большинство сгенерированных скриптов.

Посмотрите код возврата после запуска: скрипт, который при ошибке завершается нулём, сломает любое расписание — планировщик решит, что всё прошло успешно.

Прочитайте глазами каждую строку с удалением, перемещением и перезаписью. Их обычно две-три, и это единственные строки, которые способны навредить.

Типичные ошибки

Запускают сразу на боевых данных

Классические грабли выглядят так: в скрипте есть удаление по пути из переменной, переменная при неудачном стечении обстоятельств оказывается пустой, и удаление применяется к корню вместо целевой папки. Модель такой сценарий не предусмотрит, если её не попросить. Копия данных и предварительный прогон стоят двух минут и спасают вечер.

Не называют операционную систему

Один и тот же запрос без указания окружения даёт GNU-вариант утилит, который не запустится на macOS, и путь со слешами, который не годится под Windows. Модель по умолчанию предполагает популярный Linux. Строчка с версией системы и оболочки в начале промпта убирает целый класс ошибок.

Вставляют «дополненный» скрипт не сверяя

На просьбу добавить одну возможность модель нередко возвращает файл целиком и попутно переписывает то, что вы уже отладили: меняет имена переменных, теряет обработку граничного случая, упрощает проверку. Просите правку в виде отдельного фрагмента с указанием места вставки — или сравнивайте новый файл со старым построчно.

Частые вопросы

Почему 2 токена, а не дороже?

Цена в токенах отражает стоимость запроса у поставщика модели. Для вас это 6000 обращений в месячном пакете — то есть на скриптах бюджет практически не расходуется, и можно спокойно итерировать. Экономить итерации в этой задаче бессмысленно.

Хватит ли этой модели для рабочих скриптов?

Для типовой автоматизации — архивы, переименование, разбор CSV, выгрузки по расписанию, простые запросы к API — да. Признак, что пора брать модель посильнее: скрипт разросся до нескольких файлов и в нём появилось состояние, которое надо хранить между запусками.

Что делать, если скрипт падает с ошибкой?

Вернуться в тот же диалог и вставить трассировку целиком вместе с командой запуска и версией интерпретатора. Не пересказывать ошибку словами. Обычно точное сообщение решает проблему за одну итерацию и 2 токена.

Можно ли доверять скрипту, который удаляет файлы?

Только после предварительного прогона на копии и чтения тех двух-трёх строк, где удаление происходит. Требуйте в промпте ограничения: удалять исключительно внутри указанного каталога и только по явной маске. Это правило дисциплины, а не недоверия к конкретной модели.

Bash или python — что просить?

Bash хорош, пока задача сводится к вызову утилит и работе с файлами. Как только появляется разбор форматов, обращения к API, ветвления по данным или что-то, что придётся поддерживать, — просите python: читать и править его через полгода будет несравнимо легче.

Модель DeepSeek V3 доступна в FatherGPT: без VPN, картой РФ, единый баланс токенов на все нейросети. Переключайтесь между моделями в одном чате — под каждую задачу своя.