Requêtes GET et POST pour l'IA

Déployer l'IA en production avec FastAPI

Matt Eckerle

Software and Data Engineering Leader

Votre formateur

 

Matt Eckerle

 

 

Matt Eckerle

  • Leader en génie logiciel et des données
  • Gestionnaire des données d'entreprise chez Inari
  • Utilise FastAPI pour le ML depuis 2019
Déployer l'IA en production avec FastAPI

Aperçu du cours

 

 

  • Principes de base de FastAPI
  • Traitement des requêtes et intégration
  • Validation des entrées et sécurité
  • Créer et maintenir des API prêtes pour la production

 

 

Logo de FastAPI

Déployer l'IA en production avec FastAPI

Avant de commencer

✓ Python de base : fonctions, classes, modules, structures de données

Logo de Python

Déployer l'IA en production avec FastAPI

Avant de commencer

✓ Python de base : fonctions, classes, modules, structures de données

✓ Concepts HTTP et API REST

Logos de Python et http

Déployer l'IA en production avec FastAPI

Avant de commencer

✓ Python de base : fonctions, classes, modules, structures de données

✓ Concepts HTTP et API REST

✓ Utiliser le cadre FastAPI

  • Traiter les requêtes GET et POST
  • Utiliser des modèles Pydantic

✓ Notions de base en Machine Learning

Logos de Python, http et FastAPI

Déployer l'IA en production avec FastAPI

Requêtes GET : explications

  • Sert à récupérer des données
  • Paramètre de chemin : info dans l'URL
  • Ne modifie pas l'état du serveur

Un menu

GET https://example.com/?item_id=1

Schéma pour comprendre les requêtes GET

Déployer l'IA en production avec FastAPI

Implémenter GET avec paramètres de chemin

from fastapi import FastAPI

app = FastAPI()

@app.get("/item/{item_id}")
async def read_item(item_id: int):
    return {"item_id": item_id}
  • Le décorateur `@app.get` définit le point de terminaison.
  • {item_id} est un paramètre de chemin.
  • Annotation de type (int) pour la validation automatique.
Déployer l'IA en production avec FastAPI

Requêtes POST : explications

  • Sert à envoyer des données au serveur
  • Données dans le corps de la requête (souvent JSON)
  • Peut modifier l'état du serveur

Une commande au restaurant

POST https://example.com

Schéma pour comprendre les requêtes POST

Déployer l'IA en production avec FastAPI

Implémenter POST avec des données JSON

from fastapi import FastAPI
from pydantic import BaseModel

app = FastAPI()
db = {}

class Item(BaseModel): name: str price: float
@app.post("/items", status_code=201)
def create_item(item: Item): db[item.name] = item.model_dump() return {"message": f"Created {item.name}"}

 

  • Le modèle Pydantic définit la structure des données
  • @app.post pour le point de terminaison POST
  • Analyse et validation JSON automatiques
Déployer l'IA en production avec FastAPI

Codes d'état HTTP

 

  • 200 OK : succès par défaut
  • 404 Not Found : ressource introuvable
  • 201 Created : objet créé

Code d'état HTTP 200 indiquant une requête réussie

Déployer l'IA en production avec FastAPI

Lancer des exceptions HTTP

from fastapi import FastAPI, HTTPException
app = FastAPI()

@app.get("/item/{item_id}")
async def read_item(item_id: int):
    if item_id == 4242: #An invalid order number
        raise HTTPException(status_code=404, detail="Item not found")
    return {"item_id": item_id}

@app.post("/items") async def create_item(item: Item): # Simulating item creation return {"message": f"Created {item.name}"}, 201
Déployer l'IA en production avec FastAPI

Passons à la pratique !

Déployer l'IA en production avec FastAPI

Preparing Video For Download...