Основы FastAPI для инженеров машинного обучения
Приложение FastAPI, конечные точки GET/POST, параметры пути и запроса, сравнение async def и def для вывода машинного обучения.
«Основы FastAPI для инженеров машинного обучения» — бесплатный урок Learn AI with Python на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Learn AI with Python, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Learn AI with Python содержит 4 уроков всего.
Почему FastAPI подходит для машинного обучения?
FastAPI — современный веб-фреймворк Python, идеально подходящий для обслуживания моделей: он быстр, автоматически создаёт интерактивную документацию и проверяет запросы с помощью аннотаций типов. Он стал стандартным способом разместить модель за HTTP API.
Создание приложения
Создайте экземпляр приложения FastAPI; этот объект app содержит все Ваши маршруты.
from fastapi import FastAPI
app = FastAPI(title="Model Serving API")Конечная точка GET /health
Проверка работоспособности позволяет балансировщикам нагрузки и оркестраторам убедиться, что служба работает. Она возвращает простой статус без выполнения тяжёлых операций.
@app.get("/health")
def health():
return {"status": "ok"}Конечная точка POST /predict
Для предсказаний нужны входные данные, поэтому используется POST с телом запроса. Функция получает разобранные данные и возвращает результат работы модели.
@app.post("/predict")
def predict(features: list[float]):
result = model.predict([features])
return {"prediction": result[0]}GET против POST
- GET: получение данных без тела запроса; используется для проверок работоспособности и простого чтения данных.
- POST: отправка данных в теле запроса; используется для предсказаний, когда Вы передаёте признаки.
Запуск с помощью Ювикорна
Ювикорн — ASGI-сервер, который запускает FastAPI. Запустить его можно из кода или командной строки.
import uvicorn
if __name__ == "__main__":
uvicorn.run(app, host="0.0.0.0", port=8000)Запуск из командной строки
Чаще всего запуск выполняется через CLI: Ювикорну передаются модуль и объект приложения. --reload автоматически перезапускает сервер при изменениях кода во время разработки.
# terminal
uvicorn main:app --host 0.0.0.0 --port 8000 --reloadБесплатная интерактивная документация
FastAPI автоматически создаёт Swagger UI по адресу /docs и ReDoc по адресу /redoc на основе Ваших аннотаций типов, поэтому Вы можете проверять конечные точки в браузере без дополнительного кода.
async def для задач, связанных с IO
Используйте async def для конечных точек, которые ожидают завершения операций IO (обращений к базе данных, внешним API или чтения файлов). Асинхронный подход позволяет серверу обрабатывать другие запросы во время ожидания и повышает пропускную способность.
@app.get("/external")
async def fetch():
data = await call_remote_service()
return datasync def для вычислений, ограниченных CPU
Метод модели predict обычно ограничен возможностями CPU. Определяйте такие конечные точки с помощью обычного sync def; FastAPI запускает их в пуле потоков, поэтому они не блокируют цикл событий. Использование асинхронного подхода для ресурсоёмких вычислений на самом деле заблокировало бы сервер.
@app.post("/predict")
def predict(features: list[float]):
# CPU-bound inference -> sync def
return {"prediction": model.predict([features])[0]}Выбор между async и sync
- async def: задачи, связанные с IO, ожидают завершения сетевых или дисковых операций.
- sync def: вывод модели, ограниченный CPU, выполняется в пуле потоков.
Правильный выбор сохраняет отзывчивость сервера при высокой нагрузке.
Быстрая проверка
Проверьте свои базовые знания FastAPI.
Повторение
Вы создали службу FastAPI: создали app, добавили GET /health и POST /predict, запустили её с помощью Ювикорна и научились использовать async def для задач, связанных с IO, а sync def — для вывода, ограниченного CPU. Далее: схемы запросов и ответов Pydantic.
Часто задаваемые вопросы
Урок «Основы FastAPI для инженеров машинного обучения» бесплатный?
Да — полный текст урока «Основы FastAPI для инженеров машинного обучения» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Learn AI with Python, подпишись на CoddyKit PRO. Курс Learn AI with Python содержит 4 уроков всего.
Чему я научусь в уроке «Основы FastAPI для инженеров машинного обучения»?
Приложение FastAPI, конечные точки GET/POST, параметры пути и запроса, сравнение async def и def для вывода машинного обучения. Ты практикуешь Learn AI with Python с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Learn AI with Python?
Предыдущий опыт не требуется. Learn AI with Python на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.
Сколько времени занимает урок «Основы FastAPI для инженеров машинного обучения»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Learn AI with Python?
Да. Каждый урок Learn AI with Python включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Основы FastAPI для инженеров машинного обучения
- Схемы Pydantic для запросов и ответов
- Загрузка и предоставление моделей машинного обучения
- Контейнеризация API модели с Docker