Промты для Python-разработчика: 14 сценариев, которые заменят Stack Overflow при работе с FastAPI, pandas и asyncio
Каждый Python-разработчик знает: половина времени уходит не на написание кода, а на поиск решений. Stack Overflow, документация, блоги — всё это отнимает часы. Но в 2026 году нейросети стали настолько точными, что правильно сформулированный промт экономит до 70% времени на рутине. Я собрал 14 проверенных сценариев, которые сам использую ежедневно. Каждый промт — с примером, ожидаемым результатом и указанием, когда его применять вместо гуглинга.
Эта подборка не про «магические» запросы, а про инженерный подход: вы даёте контекст, ограничения и ожидаемый формат — AI возвращает рабочий код, а не общие рассуждения. Все примеры протестированы на ChatGPT-4 и Claude 3.5 Sonnet, но подход универсален.
1. Генерация асинхронного эндпоинта FastAPI с пагинацией и фильтрацией
Когда использовать: Нужно быстро создать CRUD-эндпоинт с async-запросами к БД, но лень писать шаблонный код.
Промт:
Ты — senior Python-разработчик. Напиши асинхронный эндпоинт FastAPI для получения списка товаров с пагинацией (limit/offset), фильтрацией по категории и сортировкой по цене. Используй SQLAlchemy 2.0 с asyncpg, Pydantic V2 для схем ответа. Предусмотри обработку ошибок и возврат общего количества записей. Код должен быть готов к копированию.
Пример результата:
from fastapi import APIRouter, Depends, HTTPException, Query
from sqlalchemy.ext.asyncio import AsyncSession
from sqlalchemy import select, func
from app.database import get_async_session
from app.models import Product
from app.schemas import ProductListResponse
router = APIRouter()
@router.get("/products", response_model=ProductListResponse)
async def get_products(
limit: int = Query(20, ge=1, le=100),
offset: int = Query(0, ge=0),
category: str | None = None,
sort_by: str = "price",
order: str = "asc",
session: AsyncSession = Depends(get_async_session)
):
stmt = select(Product)
if category:
stmt = stmt.where(Product.category == category)
if order == "desc":
stmt = stmt.order_by(getattr(Product, sort_by).desc())
else:
stmt = stmt.order_by(getattr(Product, sort_by).asc())
total = await session.scalar(select(func.count()).select_from(stmt.subquery()))
result = await session.execute(stmt.limit(limit).offset(offset))
items = result.scalars().all()
return {"items": items, "total": total, "limit": limit, "offset": offset}
Почему работает: Вы задаёте стек (SQLAlchemy 2.0, Pydantic V2) и требования — AI не тратит время на уточнения, сразу выдаёт рабочий код.
2. Векторизация pandas вместо циклов
Когда использовать: Видите цикл for по DataFrame — это почти всегда медленно. AI перепишет на векторные операции.
Промт:
У меня есть DataFrame df с колонками 'price', 'quantity', 'discount'. Напиши векторную операцию для расчёта итоговой стоимости с учётом скидки: если quantity > 10, скидка 10%, иначе 5%. Используй numpy.where или pandas.apply? Объясни, почему выбранный способ быстрее.
Пример: AI предложит:
df['total'] = df['price'] * df['quantity'] * (1 - np.where(df['quantity'] > 10, 0.1, 0.05))
И пояснит, что np.where работает в 50–100 раз быстрее apply на больших данных.
3. Дебаггинг корутин asyncio
Когда использовать: Получили RuntimeError: coroutine was never awaited или зависание event loop.
Промт:
Мой код на asyncio зависает. Вот минимальный пример: [вставить код]. Найди причину и предложи исправление. Объясни, как избежать подобного в будущем.
AI часто находит забытый await или блокирующий вызов внутри корутины и предлагает заменить на run_in_executor.
4. Генерация Pydantic-схем из SQLAlchemy моделей
Промт:
Сгенерируй Pydantic V2 схемы для модели SQLAlchemy: User (id, email, hashed_password, created_at, is_active). Нужны схемы UserCreate, UserRead, UserUpdate. Используй ConfigDict(from_attributes=True).
Результат: Готовые классы с валидацией email и автоматическим маппингом.
5. Написание pytest-фикстур для async-тестов
Промт:
Напиши фикстуры pytest для тестирования FastAPI с asyncpg: асинхронный клиент, тестовая БД, транзакция с откатом после теста. Используй pytest-asyncio.
Пример:
@pytest.fixture
async def async_client():
async with AsyncClient(app=app, base_url="http://test") as client:
yield client
6. Оптимизация запросов SQLAlchemy
Промт:
Мой запрос SQLAlchemy выполняется 2 секунды. Вот код: [запрос]. Предложи оптимизацию: добавить индексы, использовать selectinload, изменить соединения.
AI часто советует selectinload для связей и составные индексы.
7. Обработка ошибок в асинхронном пайплайне
Промт:
У меня есть цепочка асинхронных вызовов: fetch_data -> process -> save. Нужно обрабатывать ошибки на каждом этапе, логировать и продолжать выполнение. Напиши обёртку с retry и exponential backoff.
8. Конвертация синхронного кода в асинхронный
Промт:
Перепиши этот синхронный код на асинхронный с использованием aiohttp и asyncio.gather: [код]. Сохрани логику, но добавь параллелизм.
9. Генерация Dockerfile для FastAPI + PostgreSQL
Промт:
Напиши оптимальный Dockerfile для FastAPI приложения с PostgreSQL. Используй multi-stage build, poetry для зависимостей, non-root пользователя. Добавь healthcheck.
10. Рефакторинг кода с pandas
Промт:
Этот код на pandas работает медленно: [код]. Предложи векторизацию и оптимизацию памяти. Объясни каждое изменение.
11. Написание документации к эндпоинту
Промт:
Сгенерируй OpenAPI-описание для эндпоинта /users/{id} с параметрами, ответами и примерами. Используй аннотации FastAPI.
12. Миграции Alembic для async SQLAlchemy
Промт:
Создай миграцию Alembic для добавления колонки 'phone' в таблицу users. Учти, что используется asyncpg. Напиши upgrade и downgrade.
13. Логирование в асинхронном приложении
Промт:
Настрой структурированное логирование для FastAPI с request_id, уровнем и временем. Используй structlog или logging. Логи должны быть JSON.
14. Профилирование и поиск узких мест
Промт:
Мой FastAPI эндпоинт работает 500 мс. Как найти узкое место? Предложи инструменты: cProfile, py-spy, async-profiler. Напиши пример использования.
Эти 14 промтов покрывают 80% ежедневных задач Python-разработчика. Главное правило: чем больше контекста и ограничений вы даёте, тем точнее ответ. Не бойтесь уточнять у AI, почему выбран тот или иной подход — это развивает насмотренность. Сохраните подборку в закладки и попробуйте на следующей задаче — уверен, Stack Overflow понадобится реже.
А какие промты используете вы? Делитесь в комментариях.
Комментарии