Gestion des versions d'API et documentation

Déployer l'IA en production avec FastAPI

Matt Eckerle

Software and Data Engineering Leader

Pourquoi gérer les versions d'API ?

 

  • Points de terminaison d'API comme éléments de menu
  • Garder la clientèle actuelle satisfaite
  • Certains clients veulent de nouvelles options
  • Itérer sans impacter les clients existants

Un restaurant

Déployer l'IA en production avec FastAPI

API pour des tâches d'IA infonuagiques

from pydantic import BaseModel

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

Logo de FastAPI AI Cloud

Déployer l'IA en production avec FastAPI

Points de terminaison versionnés

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): ...
Déployer l'IA en production avec FastAPI

Quand mettre à jour la version d'un point de terminaison

 

  • Rupture dans le schéma
  • Changement dans la fonction sous-jacente
    • Code du modèle mis à jour
    • Ensemble d'entraînement du modèle mis à jour
    • Pré/posttraitement mis à jour
Déployer l'IA en production avec FastAPI

Itérer avec des champs facultatifs

 

  • La gestion de versions n'est pas toujours requise pour itérer
  • Des champs facultatifs ajoutent des données sans briser les schémas
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]
Déployer l'IA en production avec FastAPI

Documenter les API avec Swagger

 

 

  • Outil standard pour documenter les API
    • Suit les points de terminaison et leurs versions
    • Bâti sur les métadonnées du standard OpenAPI

 

Logo de Swagger

Logo d'OpenAPI

Déployer l'IA en production avec FastAPI

Interface Swagger (UI)

URL de Swagger Interface Swagger

Déployer l'IA en production avec FastAPI

Swagger UI pour un point de terminaison

Interface Swagger de FastAPI pour un point de terminaison

Déployer l'IA en production avec FastAPI

Utiliser le champ description de FastAPI

from fastapi import FastAPI

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

Interface Swagger de FastAPI avec en-tête de description

Déployer l'IA en production avec FastAPI

Passons à la pratique !

Déployer l'IA en production avec FastAPI

Preparing Video For Download...