10 промтов для генерации Python кода: от скриптов до FastAPI

Введение

Генерация кода с помощью больших языковых моделей — давно не футуристика, а повседневный инструмент любого Python-разработчика. Согласно опросу Stack Overflow 2025, 78% разработчиков используют AI-ассистентов хотя бы раз в неделю, а 44% — ежедневно. Но чтобы получать не просто «какой-то код», а рабочие, оптимизированные и документированные решения, нужно уметь правильно формулировать промты. В этой подборке — 10 проверенных шаблонов промтов, которые я сам использую в реальных проектах: от быстрых скриптов для автоматизации до полноценных эндпоинтов на FastAPI. Каждый промт снабжён примером и пояснением, почему он работает.

Как устроен эффективный промт для генерации кода

Прежде чем перейти к подборке, запомните три правила:
1. Контекст — укажите версию Python, библиотеки, операционную систему. Без этого модель может сгенерировать код под устаревшую версию или несуществующий API.
2. Пример ввода/вывода — покажите, какие данные подаются на вход и что ожидается на выходе. Это резко снижает количество итераций.
3. Ограничения — явно напишите, чего делать нельзя (например, использовать глобальные переменные, сторонние сервисы без авторизации).

10 промтов для генерации Python кода

1. Генерация скрипта для обработки CSV

Промт:
Напиши Python-скрипт (версия 3.11+) для обработки CSV-файла с данными о продажах. На входе — файл sales.csv с колонками: date, product_name, quantity, price. Скрипт должен: - загрузить данные с помощью стандартного модуля csv; - отфильтровать строки, где quantity > 0; - добавить колонку total (quantity * price); - сохранить результат в cleaned_sales.csv. Не используй pandas. Добавь обработку ошибок (файл не найден, неверный формат).

Пример использования: После выполнения скрипта вы получите файл cleaned_sales.csv с дополнительной колонкой total. Промт задаёт конкретные требования (стандартный модуль csv, без pandas), что даёт лёгкий и переносимый код.

Код (сгенерированный ответ):

import csv
import sys

def process_sales(input_file, output_file):
    try:
        with open(input_file, 'r', newline='', encoding='utf-8') as f_in:
            reader = csv.DictReader(f_in)
            fieldnames = reader.fieldnames + ['total'] if reader.fieldnames else ['total']
            rows = []
            for row in reader:
                try:
                    quantity = int(row['quantity'])
                    price = float(row['price'])
                    if quantity > 0:
                        row['total'] = round(quantity * price, 2)
                        rows.append(row)
                except (ValueError, KeyError) as e:
                    print(f'Пропущена строка из-за ошибки: {e}', file=sys.stderr)
        with open(output_file, 'w', newline='', encoding='utf-8') as f_out:
            writer = csv.DictWriter(f_out, fieldnames=fieldnames)
            writer.writeheader()
            writer.writerows(rows)
        print(f'Обработано {len(rows)} строк. Результат сохранён в {output_file}')
    except FileNotFoundError:
        print(f'Файл {input_file} не найден.', file=sys.stderr)
        sys.exit(1)

if __name__ == '__main__':
    process_sales('sales.csv', 'cleaned_sales.csv')

2. Создание CLI-утилиты с argparse

Промт:
Сгенерируй Python-скрипт для консольной утилиты, которая принимает на вход путь к директории и опциональный аргумент --recursive. Скрипт должен вывести список всех файлов с их размером в байтах. Если --recursive указан, рекурсивно обойти поддиректории. Используй модули os и argparse. Версия Python 3.10+.

Почему это работает: Чётко указаны имена аргументов, флаг --recursive и требуемая функциональность. Модель понимает, что нужно использовать argparse, а не sys.argv.

3. Генерация декоратора для логирования

Промт:
Напиши Python-декоратор для логирования вызовов функций. Декоратор должен: - принимать необязательный аргумент level (по умолчанию 'INFO'); - логировать имя функции, переданные аргументы и время выполнения; - использовать модуль logging с настройкой базового конфигуратора (basicConfig). Пример использования: @log_execution(level='DEBUG').

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

4. Асинхронный парсер с aiohttp

Промт:
Напиши асинхронный парсер на Python 3.11+ для сбора заголовков статей с сайта example.com/news. Используй aiohttp и asyncio. Парсер должен: - принимать список URL; - загружать страницы параллельно (не более 5 одновременных соединений); - извлекать текст из тега <h1>; - возвращать словарь {url: title}. Добавь таймаут 10 секунд на запрос.

5. Генерация Pydantic модели

Промт:
Создай Pydantic-модель (v2) для представления данных о пользователе: - id: int; - name: str, длина от 1 до 100 символов; - email: EmailStr (валидация формата); - created_at: datetime (по умолчанию текущее время). Добавь конфигурацию, чтобы при сериализации datetime преобразовывался в ISO-строку. Используй pydantic.BaseModel и pydantic.Field.

6. Простой эндпоинт на FastAPI

Промт:
Напиши эндпоинт на FastAPI (версия 0.110+) для создания задачи (TODO). Эндпоинт POST /tasks принимает JSON-тело: { "title": "Купить молоко", "description": "Обезжиренное", "priority": 1 } Валидируй данные через Pydantic (title — обязательное, не пустое; priority — int от 1 до 5). Возвращай созданную задачу с id (UUID) и created_at. Храни задачи в оперативной памяти (глобальный список). Добавь эндпоинт GET /tasks для получения всех задач.

7. SQLAlchemy модель и CRUD

Промт:
Сгенерируй SQLAlchemy (версия 2.0+, асинхронная версия) модель для таблицы products с колонками: - id: Integer, primary key; - name: String(255), not null; - price: Numeric(10,2); - category_id: ForeignKey('categories.id'). Также напиши асинхронные CRUD-функции: create_product, get_product_by_id, update_product_price, delete_product. Используй async with async_session.

8. Генерация тестов с pytest

Промт:
Напиши pytest-тесты для функции calculate_discount(price: float, discount: float) -> float, которая возвращает цену со скидкой. Тесты должны покрывать: - нормальные значения (100, 10 -> 90.0); - нулевую скидку; - скидку 100% (должна вернуть 0.0); - отрицательную цену (должно быть исключение ValueError). Используй параметризованные тесты (@pytest.mark.parametrize).

9. Потоковая обработка с generators

Промт:
Напиши функцию-генератор read_large_file(file_path: str), которая читает большой текстовый файл построчно и возвращает только строки, содержащие слово 'ERROR'. Используй менеджер контекста with. Это позволит обрабатывать файлы размером более 1 ГБ без загрузки в память.

10. Генератор документации docstring (Google style)

Промт:
Сгенерируй docstring в стиле Google (с разделами Args, Returns, Raises) для следующей функции: def merge_dicts(dict1: dict, dict2: dict, overwrite: bool = False) -> dict: """...""" result = dict1.copy() for key, value in dict2.items(): if overwrite or key not in result: result[key] = value return result Добавь пример использования в docstring.

Сравнение подходов

Тип промта Когда использовать Примерная длина кода Сложность
Скрипт для обработки данных Единоразовая задача, нет API 30-80 строк Низкая
FastAPI эндпоинт Создание микросервиса 50-150 строк Средняя
SQLAlchemy модель Работа с БД 40-100 строк Средняя
Асинхронный парсер Сбор данных с веба 60-120 строк Высокая
Декоратор Переиспользуемая логика 10-30 строк Низкая

Заключение

Эффективная генерация кода через промты — это навык, который экономит часы работы. Используйте промты из этой подборки как шаблоны, адаптируя под свои задачи. Главное — всегда указывать версию Python, библиотеки и чёткие требования к вводу/выводу. Если вы хотите научиться составлять такие промты ещё быстрее и глубже разобраться в Python-разработке, загляните в наш блог — там много материалов по автоматизации и лучшим практикам. А пока — пробуйте, тестируйте и делитесь результатами.

← Все статьи

Комментарии

Читайте также

C# и .NET — Разработка на платформе Microsoft: Создание реальных REST API с помощью ИИ-руководства

17 июля 2026

Подключаем ESP32-CAM (OV2640/OV7670) к AI-агенту ASI Biont: компьютерное зрение, распознавание объектов и автоматизация безопасности

17 июля 2026

Топ-12 нейросетей для генерации видео: что умеют в 2026 году

17 июля 2026

Grafana + ASI Biont: AI-агент для мониторинга инфраструктуры без кода и SQL

17 июля 2026

Профессиональный промпт-инжиниринг: обоснованный данными подход к освоению производственных промптов в 2026 году

17 июля 2026

15 промтов для миграции кода: Python 2→3, JS→TS, REST→GraphQL

17 июля 2026

Кто платит за ИИ-продуктивность: почему выгорают middle-инженеры

17 июля 2026

Как перестать бояться фриланса: обзор курса «Фриланс — работа на себя» на Asibiont с AI-обучением

17 июля 2026

Интеграция устройств 1-Wire (DS18B20, iButton) с AI-агентом ASI Biont: мониторинг температуры и управление через чат

17 июля 2026