Makine Öğrenmesi Mühendisleri için FastAPI Temelleri
FastAPI uygulaması, GET/POST uç noktaları, yol ve sorgu parametreleri; makine öğrenmesi çıkarımı için async def ile def karşılaştırması.
Makine Öğrenmesi Mühendisleri için FastAPI Temelleri, CoddyKit'te ücretsiz bir Learn AI with Python dersidir. Bu, 4 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Learn AI with Python öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Learn AI with Python kursu toplamda 4 dersten oluşur.
ML için Neden FastAPI?
FastAPI, modelleri sunmak için ideal olan modern bir Python web çerçevesidir: hızlıdır, etkileşimli belgeleri otomatik oluşturur ve tür ipuçlarıyla istekleri doğrular. Bir modeli HTTP API arkasında sunmanın varsayılan yolu hâline gelmiştir.
Uygulamayı Oluşturma
Bir FastAPI uygulaması örneği oluşturun; bu app nesnesi tüm rotalarınızı barındırır.
from fastapi import FastAPI
app = FastAPI(title="Model Serving API")Bir GET /health Uç Noktası
Sağlık kontrolü, yük dengeleyicilerin ve düzenleyicilerin hizmetin çalışır durumda olduğunu doğrulamasını sağlar. Ağır bir işlem yapmadan basit bir durum döndürür.
@app.get("/health")
def health():
return {"status": "ok"}Bir POST /predict Uç Noktası
Tahminler girdi verisi gerektirdiği için gövde içeren POST kullanır. İşlev, ayrıştırılmış yükü alır ve model çıktısını döndürür.
@app.post("/predict")
def predict(features: list[float]):
result = model.predict([features])
return {"prediction": result[0]}GET ve POST Karşılaştırması
- GET: veri almak için kullanılır, gövdesi yoktur; sağlık kontrolleri ve basit okumalar için uygundur.
- POST: veriyi gövdede göndermek için kullanılır; özellikleri gönderdiğiniz tahmin işlemleri için uygundur.
uvicorn ile Çalıştırma
uvicorn, FastAPI'yi çalıştıran ASGI sunucusudur. Onu koddan veya komut satırından başlatabilirsiniz.
import uvicorn
if __name__ == "__main__":
uvicorn.run(app, host="0.0.0.0", port=8000)Komut Satırından Başlatma
Daha yaygın olarak CLI aracılığıyla başlatılır; uvicorn'a modülü ve app nesnesini belirtirsiniz. Geliştirme sırasında --reload, kod değişikliklerinde uygulamayı otomatik olarak yeniden başlatır.
# terminal
uvicorn main:app --host 0.0.0.0 --port 8000 --reloadÜcretsiz Etkileşimli Belgeler
FastAPI, tür ipuçlarınızdan /docs adresinde Swagger UI'ı ve /redoc adresinde ReDoc'u otomatik olarak oluşturur; böylece ek kod yazmadan uç noktaları tarayıcıda sınayabilirsiniz.
IO'ya Bağlı İşler için async def
IO için bekleyen uç noktalarında async def kullanın (veritabanı, harici API'ler, dosya okumaları). Async kullanımında sunucu beklerken diğer istekleri işleyebilir; bu da aktarım hızını artırır.
@app.get("/external")
async def fetch():
data = await call_remote_service()
return dataCPU'ya Bağlı Çıkarım için sync def
Modelin predict işlemi genellikle CPU-bound olur. Bu uç noktalarını yalın sync def ile tanımlayın; FastAPI bunları bir iş parçacığı havuzunda çalıştırarak olay döngüsünü engellemelerini önler. CPU ağırlıklı işler için async kullanmak sunucuyu gerçekten kilitler.
@app.post("/predict")
def predict(features: list[float]):
# CPU-bound inference -> sync def
return {"prediction": model.predict([features])[0]}async ve sync Seçimi
- async def: IO'ya bağlıdır, ağ veya disk işlemlerini bekler.
- sync def: CPU'ya bağlı model çıkarımıdır, bir iş parçacığı havuzunda çalışır.
Doğru seçimi yapmak, yük altında sunucunun yanıt vermeye devam etmesini sağlar.
Hızlı Kontrol
FastAPI temelleri bilginizi sınayın.
Özet
Bir FastAPI hizmeti oluşturdunuz: app nesnesini oluşturdunuz, GET /health ve POST /predict uç noktalarını eklediniz, hizmeti uvicorn ile çalıştırdınız ve IO'ya bağlı işlemler için async def, CPU'ya bağlı çıkarım için sync def kullanmayı öğrendiniz. Sırada Pydantic istek/yanıt şemaları var.
Sıkça Sorulan Sorular
“Makine Öğrenmesi Mühendisleri için FastAPI Temelleri” dersi ücretsiz mi?
Evet — “Makine Öğrenmesi Mühendisleri için FastAPI Temelleri” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Learn AI with Python kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Learn AI with Python kursu toplamda 4 dersten oluşur.
“Makine Öğrenmesi Mühendisleri için FastAPI Temelleri” dersinde ne öğreneceğim?
FastAPI uygulaması, GET/POST uç noktaları, yol ve sorgu parametreleri; makine öğrenmesi çıkarımı için async def ile def karşılaştırması. Learn AI with Python ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Learn AI with Python öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Learn AI with Python, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 1. dersidir.
“Makine Öğrenmesi Mühendisleri için FastAPI Temelleri” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Learn AI with Python dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Learn AI with Python dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Makine Öğrenmesi Mühendisleri için FastAPI Temelleri
- İstek ve Yanıt için Pydantic Şemaları
- Makine Öğrenmesi Modellerini Yükleme ve Sunma
- Model API'sini Docker ile Konteynerleştirme