Автоматизация рутинных задач с помощью LLM

За последние годы большие языковые модели (LLM) продвинулись настолько, что теперь способны не только помогать с генерацией текстов, но и автоматизировать рутинные задачи, которые раньше считались слишком мелкими или нецелесообразными для ручного скриптинга. Рассмотрим несколько сценариев, где LLM облегчают жизнь разработчиков и системных администраций, позволяя генерировать микро-bash-скрипты, Makefile, конфигурации для Ansible и многое другое буквально на лету.

Микро-bash-скрипты «на лету»

Иногда нужно быстро написать небольшой скрипт для разовых операций: переименовать тысячу файлов по шаблону, скопировать логи за последние 24 часа, собрать статистику из текстовых файлов. Раньше мы вручную открывали редактор, прописывали for-циклы, отлаживали — и тратили на это 10–15 минут. С LLM достаточно ввести запрос:

«Сгенерируй bash-скрипт, который в каталоге /var/log/app берет все файлы старше 7 дней и архивирует их в /backup/logs/$(date +%Y-%m-%d).tar.gz» В ответ модель выдаст готовый код:

#!/usr/bin/env bash
SRC_DIR="/var/log/app"
DEST_DIR="/backup/logs"
ARCHIVE_NAME="$(date +%Y-%m-%d).tar.gz"

mkdir -p "$DEST_DIR"
find "$SRC_DIR" -type f -mtime +7 -print0 | \
  tar --null -czvf "$DEST_DIR/$ARCHIVE_NAME" --files-from -

Достаточно скопировать, проверить права и запустить. Экономия времени — очевидна.

Генерация Makefile

Makefile — мощный инструмент для управления сборкой, но вручную поддерживать его шаблоны для каждого нового проекта слишком рутинно: приходится описывать цели build, test, clean, указывать зависимости. С LLM можно получить базовую структуру под нужный стек за 10-15 секунд:

«Напиши Makefile для Go-приложения с целями build, run, test и clean»

Ответ модели:

.PHONY: build run test clean

BINARY := myapp

build:
	go build -o $(BINARY) .

run: build
	./$(BINARY)

test:
	go test ./...

clean:
	rm -f $(BINARY)

Дальше вы подставляете свои специфические флаги и зависимости, а основа уже готова.

Выделение и управление конфигурациями

В проектах часто смешивают код и «жестко прописанные» параметры: URL-адреса сервисов, порты, параметры подключения. Ручное выносить их в отдельный файл config.yaml иногда лень. LLM может автоматически «просканировать» фрагмент кода и предложить оптимальный формат конфигурации:

«Вот фрагмент Python-скрипта. Выдели все параметры в отдельный YAML-файл и перепиши код, чтобы он читал их из конфига.» В результате вы получаете config.yaml:

database:
  host: localhost
  port: 5432
  user: app_user
  password: secret

и модифицированный код:

import yaml

with open('config.yaml') as f:
    cfg = yaml.safe_load(f)

db = connect(
    host=cfg['database']['host'],
    port=cfg['database']['port'],
    user=cfg['database']['user'],
    password=cfg['database']['password']
)

Документация «из уст в текст»

Один из самых приятных кейсов — надиктовать идею или целый текст, а LLM сразу её структурирует как README, RFC или статью:

  1. Вы нажимаете клавишу голосового ввода.
  2. Рассказываете: «Описание микросервиса, входные параметры, примеры запросов…»
  3. Модель транскрибирует и форматирует под Markdown с заголовками, списками и примерами кода.

Это позволяет быстро фиксировать мысли и делиться ими с командой без отвлечения на правку форматирования.

Автоматизация документации API

LLM может преобразовать описание end-to-end в OpenAPI/Swagger spec или Postman Collection.

Пример: «Собери OpenAPI 3.0 спецификацию для REST API с маршрутами GET /users и POST /users

openapi: 3.0.1
info:
  title: Users API
  version: 1.0.0
paths:
  /users:
    get:
      summary: List users
      responses:
        '200':
          description: OK
    post:
      summary: Create user
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/User'
      responses:
        '201':
          description: Created
components:
  schemas:
    User:
      type: object
      properties:
        id:
          type: integer
        name:
          type: string

Генерация SQL-запросов и миграций

Автоматически создавать запросы и миграционные скрипты для баз данных.

Пример: «Напиши SQL-миграцию для добавления колонки last_login типа TIMESTAMP в таблицу users, и скрипт для обратного отката.»

-- Up
ALTER TABLE users ADD COLUMN last_login TIMESTAMP;

-- Down
ALTER TABLE users DROP COLUMN last_login;

Создание архитектурных диаграмм и схем

LLM может генерировать код визуальных диаграмм (например, PlantUML или Mermaid) на основе текстового описания архитектуры проекта. Это помогает быстро получить наглядную схему компонентов и связей без ручного рисования. Об этом я писал подробнее в статье «Используем LLM для создания архитектурных схем быстро и качественно»

Вместо Заключения

LLM уже кардинально изменили подход к моей работе. В том числе в вопросе автоматизации мелких, но частых задач. Вместо рутинного ручного кодирования получаем «быструю заготовку» и концентрируемся на логике и архитектуре. Агрессивно применяйте LLM в своей работе. Это уникальный инструмент, который повышает планку возможностей: сложное становится простым, а ранее невозможное перестало быть таковым.