Проверка запросов с помощью Pydantic
Отклоняйте некорректные входные данные до того, как они попадут в модель
«Проверка запросов с помощью 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 — локальная установка не требуется.
Все уроки этого курса
- Первая конечная точка /predict
- Проверка запросов с помощью Pydantic
- Однократная загрузка модели при запуске
- Добавление проверки готовности /health