Получить доступ

Асинхронный Python

Основа с Junior

asyncio для параллельных запросов к моделям и инструментам — без блокировок и утечек.

Запрос к LLM длится секунды. Сервис, который ждёт его синхронно, обслуживает единицы пользователей; асинхронный — сотни на одном процессе. Агенты и RAG тоже выигрывают: поиск по нескольким источникам и вызовы инструментов идут параллельно.

async def answer(question: str) -> str:
    async with asyncio.TaskGroup() as tg:
        docs = tg.create_task(search(question))
        profile = tg.create_task(load_profile(user_id))
    return await llm.complete(build_prompt(question, docs.result(), profile.result()))

Что важно знать

  • Блокирующий вызов (синхронный HTTP-клиент, time.sleep, тяжёлые вычисления) внутри async-функции останавливает весь event loop.
  • TaskGroup и gather — параллельный запуск; таймауты — asyncio.timeout.
  • Ограничение параллельности (Semaphore) — чтобы не упереться в лимиты провайдера.
  • Асинхронные клиенты: httpx.AsyncClient, асинхронные версии SDK.
  • Потоковые ответы — асинхронные генераторы (async for chunk in stream).

Критерии освоения

Junior ≈ 10 ч

  • Пишет async-функции и вызывает несколько запросов к модели параллельно через gather или TaskGroup
  • Объясняет, почему блокирующий вызов внутри async-функции останавливает весь сервис

Практика. Переписать скрипт, который последовательно отправляет 100 запросов к модели, на асинхронный с параллельностью 10 и сравнить время.

Middle ≈ 10 ч

  • Ограничивает параллельность семафором под лимиты провайдера
  • Обрабатывает таймауты и отмену задач без утечек соединений
  • Читает потоковый ответ модели асинхронным генератором и передаёт его клиенту

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

Вопросы с собеседований

← Вся карта «ИИ-инженер»

Закрытая бета

Знать тему — половина дела

На живом собеседовании sotto слышит вопрос интервьюера и показывает короткий ответ и план. Оставьте контакт — пришлём доступ и промокод.

  • Промокод на 2 часа — сверх пробных 30 минут
  • Программа для Windows — скачать сразу, войти — через Яндекс ID или VK ID
  • Прямая связь с разработчиком: что улучшить — сделаем