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

FastAPI и Pydantic

Основа с Junior

Веб-сервис вокруг модели — эндпоинты, валидация, потоковые ответы, зависимости.

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

class Ask(BaseModel):
    question: str = Field(min_length=3, max_length=2000)

@app.post("/ask")
async def ask(body: Ask, user: User = Depends(current_user)):
    return StreamingResponse(stream_answer(body.question, user), media_type="text/event-stream")

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

  • Pydantic описывает и проверяет данные: входные запросы, ответы модели в структурированном виде, настройки сервиса.
  • Потоковая выдача через Server-Sent Events — пользователь видит ответ по мере генерации.
  • Зависимости (Depends) — авторизация, клиенты БД и моделей.
  • Фоновые задачи и очереди для долгих операций (индексация документов).
  • Таймауты, повторы, лимиты на размер запроса — защита бюджета.

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

Junior ≈ 12 ч

  • Создаёт FastAPI-сервис с эндпоинтом, валидацией входа через Pydantic и документацией OpenAPI
  • Передаёт ключи и настройки через переменные окружения, не храня их в коде

Практика. Сделать сервис «вопрос — ответ модели» на FastAPI с валидацией, обработкой ошибок провайдера и тестом эндпоинта.

Middle ≈ 10 ч

  • Отдаёт потоковый ответ модели через Server-Sent Events
  • Использует зависимости FastAPI для авторизации и клиентов внешних сервисов
  • Ограничивает размер запроса и частоту вызовов на пользователя

Практика. Добавить потоковую выдачу, авторизацию по токену, лимит запросов на пользователя и учёт израсходованных токенов в базе.

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

Документация

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

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

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

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

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