API-versiebeheer en documentatie

AI in productie brengen met FastAPI

Matt Eckerle

Software and Data Engineering Leader

Waarom API-versiebeheer?

 

  • API-eindpunten als menu-items
  • Houd bestaande klanten tevreden
  • Sommige klanten willen nieuwe opties
  • Itereer zonder bestaande klanten te raken

Een restaurant

AI in productie brengen met FastAPI

API voor cloud-AI-jobs

from pydantic import BaseModel

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

Logo van FastAPI AI Cloud

AI in productie brengen met FastAPI

Versiegebonden eindpunten

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): ...
AI in productie brengen met FastAPI

Redenen om de endpointversie te updaten

 

  • Incompatibele wijziging in schema
  • Wijziging in onderliggende functie
    • Bijgewerkte modelcode
    • Bijgewerkte model-trainingsset
    • Bijgewerkte pre-/postprocessing
AI in productie brengen met FastAPI

Itereren met optionele velden

 

  • Versiebeheer is niet altijd nodig om te itereren
  • Optionele velden kunnen extra data ondersteunen zonder schema's te breken
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]
AI in productie brengen met FastAPI

API's documenteren met Swagger

 

 

  • Standaardtool voor API-documentatie
    • Houdt eindpunten en versies bij
    • Gebouwd op OpenAPI-metagegevensstandaard

 

Swagger-logo

OpenAPI-logo

AI in productie brengen met FastAPI

Swagger-UI

Swagger-URL Swagger-UI

AI in productie brengen met FastAPI

Swagger-UI voor een eindpunt

FastAPI Swagger-UI voor eindpunt

AI in productie brengen met FastAPI

Het veld description van FastAPI gebruiken

from fastapi import FastAPI

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

FastAPI Swagger-UI met beschrijvingskop

AI in productie brengen met FastAPI

Laten we oefenen!

AI in productie brengen met FastAPI

Preparing Video For Download...