GET- och POST-förfrågningar för AI

Driftsättning av AI i produktion med FastAPI

Matt Eckerle

Software and Data Engineering Leader

Din instruktör

 

Matt Eckerle

 

 

Matt Eckerle

  • Ledare inom mjukvaru- och datateknik
  • Enterprise Data Manager på Inari
  • Använder FastAPI för ML sedan 2019
Driftsättning av AI i produktion med FastAPI

Kursöversikt

 

 

  • Grunderna i FastAPI
  • Hantering av förfrågningar och integration
  • Indatavalidering och säkerhet
  • Skapa och underhålla produktionsklara API:er

 

 

Logo av FastAPI

Driftsättning av AI i produktion med FastAPI

Innan vi börjar

✓ Grundläggande Python: funktioner, klasser, moduler, datastrukturer

Python-logotyp

Driftsättning av AI i produktion med FastAPI

Innan vi börjar

✓ Grundläggande Python: funktioner, klasser, moduler, datastrukturer

✓ HTTP & REST API-koncept

Python- och HTTP-logotyper

Driftsättning av AI i produktion med FastAPI

Innan vi börjar

✓ Grundläggande Python: funktioner, klasser, moduler, datastrukturer

✓ HTTP & REST API-koncept

✓ FastAPI-ramverket

  • Hantera GET- och POST-förfrågningar
  • Använda Pydantic-modeller

✓ Grunderna i maskininlärning

Python-, HTTP- och FastAPI-logotyper

Driftsättning av AI i produktion med FastAPI

GET-förfrågningar förklarade

  • Används för att hämta data
  • Sökvägsparameter – information i URL:en
  • Ändrar inte serverns tillstånd

En meny

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

Diagram som förklarar GET-förfrågningar

Driftsättning av AI i produktion med FastAPI

Implementera GET med sökvägsparametrar

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`-dekoratorn definierar slutpunkten.
  • {item_id} är en sökvägsparameter.
  • Typhint (int) för automatisk validering.
Driftsättning av AI i produktion med FastAPI

POST-förfrågningar förklarade

  • Används för att skicka data till servern
  • Data i förfrågans brödtext (vanligtvis JSON)
  • Kan ändra serverns tillstånd

En restaurangbeställning

POST https://example.com

Diagram som förklarar POST-förfrågningar

Driftsättning av AI i produktion med FastAPI

Implementera POST med JSON-data

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-modellen definierar datastrukturen
  • @app.post för POST-slutpunkt
  • Automatisk JSON-tolkning och validering
Driftsättning av AI i produktion med FastAPI

HTTP-statuskoder

 

  • 200 OK: Standard vid lyckad förfrågan
  • 404 Not Found: Resursen hittades inte
  • 201 Success: Objekt skapat

En HTTP 200-statuskod som indikerar en lyckad förfrågan

Driftsättning av AI i produktion med FastAPI

Utlösa HTTP-undantag

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
Driftsättning av AI i produktion med FastAPI

Nu kör vi en övning!

Driftsättning av AI i produktion med FastAPI

Preparing Video For Download...