0Pricing
Learn AI with Python · Lekcja

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 --reload

Bezpł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 data

sync 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

  1. Podstawy FastAPI dla inżynierów ML
  2. Schematy Pydantic dla żądań i odpowiedzi
  3. Wczytywanie i udostępnianie modeli ML
  4. Konteneryzacja API modelu za pomocą Dockera
← Powrót do Learn AI with Python