Podstawy FastAPI dla inżynierów ML
Aplikacja FastAPI, punkty końcowe GET/POST, parametry ścieżki i zapytania, async def a def podczas inferencji ML.
Podstawy FastAPI dla inżynierów ML to bezpłatna lekcja Learn AI with Python na CoddyKit. To lekcja 1 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Learn AI with Python, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Learn AI with Python zawiera 4 lekcji w sumie.
Dlaczego FastAPI do ML?
FastAPI to nowoczesny framework webowy dla języka Python, idealny do udostępniania modeli: działa szybko, automatycznie generuje interaktywną dokumentację i weryfikuje żądania za pomocą adnotacji typów. Stał się standardowym sposobem udostępniania modelu za pośrednictwem API HTTP.
Tworzenie aplikacji
Proszę utworzyć instancję aplikacji FastAPI; obiekt app przechowuje wszystkie trasy.
from fastapi import FastAPI
app = FastAPI(title="Model Serving API")Endpoint GET /health
Kontrola stanu pozwala modułom równoważenia obciążenia i orkiestratorom potwierdzić, że usługa działa. Zwraca prosty status bez wykonywania kosztownych operacji.
@app.get("/health")
def health():
return {"status": "ok"}Endpoint POST /predict
Predykcje wymagają danych wejściowych, dlatego używa się do nich metody POST z treścią żądania. Funkcja otrzymuje przeanalizowany ładunek i zwraca wynik modelu.
@app.post("/predict")
def predict(features: list[float]):
result = model.predict([features])
return {"prediction": result[0]}GET a POST
- GET: pobieranie danych, bez treści żądania; używane do kontroli stanu i prostych odczytów.
- POST: wysyłanie danych w treści żądania; używane do predykcji, gdy przesyłane są cechy.
Uruchamianie za pomocą uvicorn
uvicorn to serwer ASGI uruchamiający FastAPI. Można go uruchomić z poziomu kodu lub wiersza poleceń.
import uvicorn
if __name__ == "__main__":
uvicorn.run(app, host="0.0.0.0", port=8000)Uruchamianie z wiersza poleceń
Częściej aplikację uruchamia się za pomocą interfejsu wiersza poleceń, wskazując uvicornowi moduł i obiekt app. Opcja --reload automatycznie uruchamia aplikację ponownie po zmianach kodu podczas pracy programistycznej.
# terminal
uvicorn main:app --host 0.0.0.0 --port 8000 --reloadBezpłatna dokumentacja interaktywna
FastAPI automatycznie generuje interfejs Swagger UI pod adresem /docs oraz ReDoc pod adresem /redoc na podstawie adnotacji typów, dzięki czemu można testować endpointy w przeglądarce bez pisania dodatkowego kodu.
async def dla zadań IO-bound
Proszę używać async def w endpointach, które oczekują na operacje wejścia/wyjścia (bazę danych, zewnętrzne API lub odczyt plików). Kod asynchroniczny pozwala serwerowi obsługiwać inne żądania podczas oczekiwania, zwiększając przepustowość.
@app.get("/external")
async def fetch():
data = await call_remote_service()
return datasync def dla inferencji CPU-bound
Metoda predict jest zwykle ograniczona przez CPU-bound. Takie endpointy należy definiować za pomocą zwykłego sync def; FastAPI uruchamia je w puli wątków, dzięki czemu nie blokują pętli zdarzeń. Użycie async do zadań intensywnie obciążających CPU w rzeczywistości zamroziłoby serwer.
@app.post("/predict")
def predict(features: list[float]):
# CPU-bound inference -> sync def
return {"prediction": model.predict([features])[0]}Wybór między async a sync
- async def: zadania IO-bound, oczekiwanie na sieć lub dysk.
- sync def: inferencja modelu CPU-bound, wykonywana w puli wątków.
Właściwy wybór pozwala zachować responsywność serwera pod obciążeniem.
Szybki sprawdzian
Sprawdź podstawową wiedzę o FastAPI.
Podsumowanie
Zbudowano usługę FastAPI: utworzono app, dodano GET /health i POST /predict, uruchomiono ją za pomocą uvicorn oraz poznano zastosowanie async def do zadań IO-bound i sync def do inferencji CPU-bound. Następny temat: schematy żądań i odpowiedzi Pydantic.
Często zadawane pytania
Czy lekcja „Podstawy FastAPI dla inżynierów ML” jest bezpłatna?
Tak — pełny tekst „Podstawy FastAPI dla inżynierów ML” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Learn AI with Python, przejdź na CoddyKit PRO. Kurs Learn AI with Python zawiera 4 lekcji w sumie.
Co nauczysz się w „Podstawy FastAPI dla inżynierów ML”?
Aplikacja FastAPI, punkty końcowe GET/POST, parametry ścieżki i zapytania, async def a def podczas inferencji ML. Ćwiczysz Learn AI with Python z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Learn AI with Python?
Nie wymagamy żadnego doświadczenia. Learn AI with Python w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 1 z 4.
Ile czasu zajmuje lekcja „Podstawy FastAPI dla inżynierów ML”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Learn AI with Python?
Tak. Każda lekcja Learn AI with Python zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Podstawy FastAPI dla inżynierów ML
- Schematy Pydantic dla żądań i odpowiedzi
- Wczytywanie i udostępnianie modeli ML
- Konteneryzacja API modelu za pomocą Dockera