Cereri GET și POST pentru AI

Deployment AI în producție cu FastAPI

Matt Eckerle

Software and Data Engineering Leader

Instructorul nostru

 

Matt Eckerle

 

 

Matt Eckerle

  • Lider în ingineria software și a datelor
  • Enterprise Data Manager la Inari
  • Utilizează FastAPI pentru ML din 2019
Deployment AI în producție cu FastAPI

Prezentarea cursului

 

 

  • Fundamente FastAPI
  • Gestionarea cererilor și integrare
  • Validarea intrărilor și securitate
  • Crearea și menținerea API-urilor gata de producție

 

 

Logo-ul FastAPI

Deployment AI în producție cu FastAPI

Înainte de a începe

✓ Python de bază: funcții, clase, module, structuri de date

Logo Python

Deployment AI în producție cu FastAPI

Înainte de a începe

✓ Python de bază: funcții, clase, module, structuri de date

✓ Concepte HTTP & REST API

Logo-uri Python și HTTP

Deployment AI în producție cu FastAPI

Înainte de a începe

✓ Python de bază: funcții, clase, module, structuri de date

✓ Concepte HTTP & REST API

✓ Utilizarea framework-ului FastAPI

  • Gestionarea cererilor GET și POST
  • Utilizarea modelelor Pydantic

✓ Noțiuni de bază de Machine Learning

Logo-uri Python, HTTP și FastAPI

Deployment AI în producție cu FastAPI

Cereri GET explicate

  • Utilizat pentru preluarea datelor
  • Parametru de cale - informație în URL
  • Nu modifică starea serverului

Un meniu

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

Diagramă pentru înțelegerea cererilor GET

Deployment AI în producție cu FastAPI

Implementarea GET cu parametri de cale

from fastapi import FastAPI

app = FastAPI()

@app.get("/item/{item_id}")
async def read_item(item_id: int):
    return {"item_id": item_id}
  • Decoratorul `@app.get` definește endpoint-ul.
  • {item_id} este un parametru de cale.
  • Adnotare de tip (int) pentru validare automată.
Deployment AI în producție cu FastAPI

Cereri POST explicate

  • Utilizat pentru trimiterea datelor la server
  • Date în corpul cererii (de obicei JSON)
  • Poate modifica starea serverului

O comandă la restaurant

POST https://example.com

Diagramă pentru înțelegerea cererilor POST

Deployment AI în producție cu FastAPI

Implementarea POST cu date 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}"}

 

  • Modelul Pydantic definește structura datelor
  • @app.post pentru endpoint-ul POST
  • Parsare și validare JSON automată
Deployment AI în producție cu FastAPI

Coduri de stare HTTP

 

  • 200 OK: Implicit pentru succes
  • 404 Not Found: Resursă negăsită
  • 201 Success: Obiect creat

Cod de stare HTTP 200 indicând o cerere reușită

Deployment AI în producție cu FastAPI

Generarea excepțiilor 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
Deployment AI în producție cu FastAPI

Să exersăm!

Deployment AI în producție cu FastAPI

Preparing Video For Download...