GET и POST запросы для ИИ

Развёртывание ИИ в производственной среде с помощью FastAPI

Matt Eckerle

Software and Data Engineering Leader

Ваш преподаватель

 

Matt Eckerle

 

 

Matt Eckerle

  • Руководитель в области программной и данных инженерии
  • Enterprise Data Manager в Inari
  • Использует FastAPI для МО с 2019 года
Развёртывание ИИ в производственной среде с помощью FastAPI

Обзор курса

 

 

  • Основы FastAPI
  • Обработка запросов и интеграция
  • Валидация входных данных и безопасность
  • Создание и поддержка production-ready API

 

 

Логотип FastAPI

Развёртывание ИИ в производственной среде с помощью FastAPI

Перед началом

✓ Базовый Python: функции, классы, модули, структуры данных

Логотип Python

Развёртывание ИИ в производственной среде с помощью FastAPI

Перед началом

✓ Базовый Python: функции, классы, модули, структуры данных

✓ Концепции HTTP и REST API

Логотипы Python и HTTP

Развёртывание ИИ в производственной среде с помощью FastAPI

Перед началом

✓ Базовый Python: функции, классы, модули, структуры данных

✓ Концепции HTTP и REST API

✓ Работа с фреймворком FastAPI

  • Обработка GET и POST запросов
  • Использование моделей Pydantic

✓ Основы машинного обучения

Логотипы Python, HTTP и FastAPI

Развёртывание ИИ в производственной среде с помощью FastAPI

GET-запросы: как это работает

  • Используется для получения данных
  • Параметр пути — информация в URL
  • Не изменяет состояние сервера

Меню

GET https://example.com/?item_id=1

Диаграмма GET-запроса

Развёртывание ИИ в производственной среде с помощью FastAPI

GET с параметрами пути

from fastapi import FastAPI

app = FastAPI()

@app.get("/item/{item_id}")
async def read_item(item_id: int):
    return {"item_id": item_id}
  • Декоратор `@app.get` определяет эндпоинт.
  • {item_id} — параметр пути.
  • Аннотация типа (int) для автоматической валидации.
Развёртывание ИИ в производственной среде с помощью FastAPI

POST-запросы: как это работает

  • Используется для отправки данных на сервер
  • Данные в теле запроса (обычно JSON)
  • Может изменять состояние сервера

Заказ в ресторане

POST https://example.com

Диаграмма POST-запроса

Развёртывание ИИ в производственной среде с помощью FastAPI

POST с передачей JSON

from fastapi import FastAPI
from pydantic import BaseModel

app = FastAPI()
db = {}

class Item(BaseModel): name: str price: float
@app.post("/items", status_code=201)
def create_item(item: Item): db[item.name] = item.model_dump() return {"message": f"Created {item.name}"}

 

  • Модель Pydantic задаёт структуру данных
  • @app.post для POST-эндпоинта
  • Автоматический парсинг и валидация JSON
Развёртывание ИИ в производственной среде с помощью FastAPI

Коды статусов HTTP

 

  • 200 OK: успех по умолчанию
  • 404 Not Found: ресурс не найден
  • 201 Success: объект создан

HTTP-статус 200 — успешный запрос

Развёртывание ИИ в производственной среде с помощью FastAPI

Генерация HTTP-исключений

from fastapi import FastAPI, HTTPException
app = FastAPI()

@app.get("/item/{item_id}")
async def read_item(item_id: int):
    if item_id == 4242: #An invalid order number
        raise HTTPException(status_code=404, detail="Item not found")
    return {"item_id": item_id}

@app.post("/items") async def create_item(item: Item): # Simulating item creation return {"message": f"Created {item.name}"}, 201
Развёртывание ИИ в производственной среде с помощью FastAPI

Давайте потренируемся!

Развёртывание ИИ в производственной среде с помощью FastAPI

Preparing Video For Download...