GET a POST požadavky pro AI

Nasazení AI do produkce s FastAPI

Matt Eckerle

Software and Data Engineering Leader

Náš lektor

 

Matt Eckerle

 

 

Matt Eckerle

  • Vedoucí softwarového a datového inženýrství
  • Enterprise Data Manager ve společnosti Inari
  • Používá FastAPI pro ML od roku 2019
Nasazení AI do produkce s FastAPI

Přehled kurzu

 

 

  • Základy FastAPI
  • Zpracování požadavků a integrace
  • Validace vstupů a zabezpečení
  • Tvorba a správa produkčních API

 

 

Logo FastAPI

Nasazení AI do produkce s FastAPI

Než začneme

✓ Základy Pythonu: funkce, třídy, moduly, datové struktury

Logo Pythonu

Nasazení AI do produkce s FastAPI

Než začneme

✓ Základy Pythonu: funkce, třídy, moduly, datové struktury

✓ Koncepty HTTP a REST API

Loga Pythonu a HTTP

Nasazení AI do produkce s FastAPI

Než začneme

✓ Základy Pythonu: funkce, třídy, moduly, datové struktury

✓ Koncepty HTTP a REST API

✓ Použití frameworku FastAPI

  • Zpracování GET a POST požadavků
  • Použití modelů Pydantic

✓ Základy strojového učení

Loga Pythonu, HTTP a FastAPI

Nasazení AI do produkce s FastAPI

GET požadavky – vysvětlení

  • Slouží k načítání dat
  • Parametr cesty – informace v URL
  • Nemění stav serveru

Jídelní lístek

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

Diagram znázorňující GET požadavek

Nasazení AI do produkce s FastAPI

Implementace GET s parametry cesty

from fastapi import FastAPI

app = FastAPI()

@app.get("/item/{item_id}")
async def read_item(item_id: int):
    return {"item_id": item_id}
  • Dekorátor `@app.get` definuje endpoint.
  • {item_id} je parametr cesty.
  • Typová anotace (int) pro automatickou validaci.
Nasazení AI do produkce s FastAPI

POST požadavky – vysvětlení

  • Slouží k odesílání dat na server
  • Data v těle požadavku (zpravidla JSON)
  • Může měnit stav serveru

Objednávka v restauraci

POST https://example.com

Diagram znázorňující POST požadavek

Nasazení AI do produkce s FastAPI

Implementace POST s JSON daty

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}"}

 

  • Model Pydantic definuje strukturu dat
  • @app.post pro POST endpoint
  • Automatické parsování a validace JSON
Nasazení AI do produkce s FastAPI

Stavové kódy HTTP

 

  • 200 OK: Výchozí odpověď při úspěchu
  • 404 Not Found: Zdroj nebyl nalezen
  • 201 Success: Objekt byl vytvořen

Stavový kód HTTP 200 označující úspěšný požadavek

Nasazení AI do produkce s FastAPI

Vyvolávání HTTP výjimek

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
Nasazení AI do produkce s FastAPI

Pojďme si procvičit!

Nasazení AI do produkce s FastAPI

Preparing Video For Download...