MLOps Academy · Урок

Проверка запросов с помощью Pydantic

Отклоняйте некорректные входные данные до того, как они попадут в модель

Урок 2 из 413 шагов

«Проверка запросов с помощью Pydantic» — бесплатный урок MLOps Academy на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения MLOps Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс MLOps Academy содержит 4 уроков всего.

Мусор на входе — мусор на выходе

Если клиент отправит неправильные поля или типы, модель получит бессмысленные данные. Вам нужно отклонять некорректный ввод до того, как он попадёт в модель. 🛡️

Познакомьтесь с Pydantic

FastAPI использует Pydantic для проверки запросов. Вы описываете структуру данных с помощью класса Python, а проверка выполняется автоматически.

Определите схему

Унаследуйте класс от BaseModel и перечислите поля с их типами. Этот класс станет контрактом для тела запроса /predict.

from pydantic import BaseModel

class IrisInput(BaseModel):
    sepal_length: float
    petal_width: float

Используйте её в маршруте

Добавьте аннотацию типа к аргументу конечной точки, указав Вашу модель. FastAPI разбирает и проверяет данные, а затем передаёт Вам корректный объект.

@app.post("/predict")
def predict(data: IrisInput):
    ...

Получите доступ к полям

Внутри функции проверенные данные становятся обычным объектом. Считывайте каждое значение с помощью простого доступа через точку.

x = [data.sepal_length, data.petal_width]
pred = model.predict([x])

Автоматические ошибки 422

Если поле отсутствует или имеет неправильный тип, FastAPI возвращает ответ 422 с понятным сообщением. Вам не нужно писать код обработки ошибок.

Добавьте ограничения значений

С помощью Field можно задать допустимые диапазоны. Здесь измерение должно быть больше нуля, поэтому отрицательные значения автоматически отклоняются.

from pydantic import Field

sepal_length: float = Field(gt=0)

Проверьте список строк

Чтобы одновременно оценить много образцов, принимайте список объектов Вашей модели. Pydantic проверит каждый элемент пакета за Вас.

@app.post("/predict")
def predict(rows: list[IrisInput]):
    ...

Документируйте поля

Добавьте к полям описания и примеры — они появятся на странице /docs, чтобы вызывающие знали, что именно отправлять. 📘

sepal_length: float = Field(description="cm", examples=[5.1])

Задайте также структуру ответа

Можно объявить response_model, чтобы выходные данные проверялись и документировались так же, как входные. Это помогает сохранить строгий контракт API.

@app.post("/predict", response_model=Prediction)
def predict(data: IrisInput):
    ...

Почему это важно

Надёжная проверка входных данных — Ваша первая линия защиты в рабочей среде. Она блокирует некорректные запросы, поэтому модель получает только чистые и ожидаемые данные. ✅

Быстрая проверка

Клиент отправляет запрос без обязательного поля. Что делает FastAPI благодаря Pydantic?

Итоги

Вы определили схему BaseModel, указали её тип в маршруте, добавили ограничения полей и позволили FastAPI автоматически отклонять некорректный ввод с понятными ошибками 422. На входе — чистые данные! 🙌

Можно начать бесплатно

Изучай Python с ИИ-репетитором — бесплатно

Пиши и запускай код прямо в браузере, получай мгновенную помощь от ИИ-репетитора 24/7 и продолжи учиться на сайте или в приложении.

Курсы
30
Уроки
120

Часто задаваемые вопросы

Урок «Проверка запросов с помощью Pydantic» бесплатный?

Да — полный текст урока «Проверка запросов с помощью Pydantic» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс MLOps Academy, подпишись на CoddyKit PRO. Курс MLOps Academy содержит 4 уроков всего.

Чему я научусь в уроке «Проверка запросов с помощью Pydantic»?

Отклоняйте некорректные входные данные до того, как они попадут в модель Ты практикуешь MLOps Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать MLOps Academy?

Предыдущий опыт не требуется. MLOps Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.

Сколько времени занимает урок «Проверка запросов с помощью Pydantic»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке MLOps Academy?

Да. Каждый урок MLOps Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Первая конечная точка /predict
  2. Проверка запросов с помощью Pydantic
  3. Однократная загрузка модели при запуске
  4. Добавление проверки готовности /health
← Назад к MLOps Academy