API sürümleme ve dokümantasyon

FastAPI ile Üretime AI Dağıtımı

Matt Eckerle

Software and Data Engineering Leader

Neden API sürümleme?

 

  • Menü öğeleri gibi API uç noktaları
  • Eski müşterileri memnun tut
  • Bazı müşteriler yeni seçenekler ister
  • Mevcut müşterileri etkilemeden yinele

Bir restoran

FastAPI ile Üretime AI Dağıtımı

Buluttaki AI işler için API

from pydantic import BaseModel

class AIJobV1(BaseModel):
    job_name: str
    data: bytes
class AIJobV1(BaseModel):
    job_name: str
    data: bytes
    config: dict

FastAPI logosu AI Cloud

FastAPI ile Üretime AI Dağıtımı

Sürümlenmiş uç noktalar

from pydantic import BaseModel

class AIJobV1(BaseModel):
    job_name: str
    data: bytes

class AIJobV2(BaseModel): job_name: str data: bytes config: dict
from fastapi import FastAPI

app = FastAPI()

@app.post("/v1/ai-job")
def ai_job_v1(job: AIJobV1):
    ...

@app.post("/v2/ai-job") def ai_job_v2(job: AIJobV2): ...
FastAPI ile Üretime AI Dağıtımı

Uç nokta sürümünü güncelleme nedenleri

 

  • Şemada uyumsuz değişiklik
  • Alttaki işlevde değişiklik
    • Güncellenmiş model kodu
    • Güncellenmiş model eğitim kümesi
    • Güncellenmiş ön/son işleme
FastAPI ile Üretime AI Dağıtımı

İsteğe bağlı alanlarla yineleme

 

  • Yinelemek için her zaman sürümleme gerekmez
  • İsteğe bağlı alanlar, şemayı bozmadan ek veriyi destekleyebilir
from pydantic import BaseModel

class AIJobV1(BaseModel):
    job_name: str
    data: bytes


from typing import Optional class AIJobV1(BaseModel): job_name: str data: bytes config: Optional[dict]
FastAPI ile Üretime AI Dağıtımı

Swagger ile API dokümantasyonu

 

 

  • API dokümantasyonu için standart araç
    • Uç noktaları ve sürümleri takip eder
    • OpenAPI standart metadatası üzerine kurulu

 

Swagger logosu

OpenAPI logosu

FastAPI ile Üretime AI Dağıtımı

Swagger UI

Swagger URL'si Swagger arayüzü

FastAPI ile Üretime AI Dağıtımı

Bir uç nokta için Swagger UI

Uç nokta için FastAPI Swagger UI

FastAPI ile Üretime AI Dağıtımı

FastAPI'nin description alanını kullanma

from fastapi import FastAPI

app = FastAPI(
    description="AI Job API"
)

Açıklama başlıklı FastAPI Swagger UI

FastAPI ile Üretime AI Dağıtımı

Hadi pratik yapalım!

FastAPI ile Üretime AI Dağıtımı

Preparing Video For Download...