Żądania GET i POST dla AI

Wdrażanie AI na produkcję z FastAPI

Matt Eckerle

Software and Data Engineering Leader

Nasz instruktor

 

Matt Eckerle

 

 

Matt Eckerle

  • Lider ds. inżynierii oprogramowania i danych
  • Enterprise Data Manager w Inari
  • Używa FastAPI do ML od 2019 roku
Wdrażanie AI na produkcję z FastAPI

Przegląd kursu

 

 

  • Podstawy FastAPI
  • Obsługa żądań i integracja
  • Walidacja danych wejściowych i bezpieczeństwo
  • Tworzenie i utrzymanie produkcyjnych API

 

 

Logo FastAPI

Wdrażanie AI na produkcję z FastAPI

Zanim zaczniemy

✓ Podstawy Pythona: funkcje, klasy, moduły, struktury danych

Logo Python

Wdrażanie AI na produkcję z FastAPI

Zanim zaczniemy

✓ Podstawy Pythona: funkcje, klasy, moduły, struktury danych

✓ Koncepcje HTTP i REST API

Logotypy Python i HTTP

Wdrażanie AI na produkcję z FastAPI

Zanim zaczniemy

✓ Podstawy Pythona: funkcje, klasy, moduły, struktury danych

✓ Koncepcje HTTP i REST API

✓ Framework FastAPI

  • Obsługa żądań GET i POST
  • Modele Pydantic

✓ Podstawy uczenia maszynowego

Logotypy Python, HTTP i FastAPI

Wdrażanie AI na produkcję z FastAPI

Żądania GET – omówienie

  • Służy do pobierania danych
  • Parametr ścieżki – informacja w URL
  • Nie zmienia stanu serwera

Menu restauracyjne

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

Diagram ilustrujący żądanie GET

Wdrażanie AI na produkcję z FastAPI

Implementacja GET z parametrami ścieżki

from fastapi import FastAPI

app = FastAPI()

@app.get("/item/{item_id}")
async def read_item(item_id: int):
    return {"item_id": item_id}
  • Dekorator `@app.get` definiuje endpoint.
  • {item_id} to parametr ścieżki.
  • Adnotacja typu (int) umożliwia automatyczną walidację.
Wdrażanie AI na produkcję z FastAPI

Żądania POST – omówienie

  • Służy do wysyłania danych na serwer
  • Dane w treści żądania (zwykle JSON)
  • Może zmieniać stan serwera

Zamówienie w restauracji

POST https://example.com

Diagram ilustrujący żądanie POST

Wdrażanie AI na produkcję z FastAPI

Implementacja POST z danymi 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}"}

 

  • Model Pydantic definiuje strukturę danych
  • @app.post dla endpointu POST
  • Automatyczne parsowanie i walidacja JSON
Wdrażanie AI na produkcję z FastAPI

Kody statusu HTTP

 

  • 200 OK: domyślny kod sukcesu
  • 404 Not Found: zasób nie został znaleziony
  • 201 Success: obiekt został utworzony

Kod statusu HTTP 200 oznaczający pomyślne żądanie

Wdrażanie AI na produkcję z FastAPI

Zgłaszanie wyjątków 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
Wdrażanie AI na produkcję z FastAPI

Czas na ćwiczenia!

Wdrażanie AI na produkcję z FastAPI

Preparing Video For Download...