Aller au contenu
PERINGER Service Informatique, retour à l’accueil

Retour
Convoyeurs à rouleaux dans un entrepôt automatisé, avec cartons et bacs en attente de tri

Photo de Alberto Rodríguez sur Unsplash

Réalisation d’ingénierie

Détection de fraude par machine learning dans la chaîne logistique

Signaler les cas de fraude probables dans les données d’expédition d’un groupe logistique international, à l’aide d’un modèle de machine learning exposé par une API.

Logistique et transportFastAPIRedisscikit-learnTeradataDockerOpenShift

Le projet

Pour un groupe logistique international, un modèle de machine learning évalue les expéditions afin de signaler les cas de fraude probables. Les données d’expédition stockées dans Teradata, des fichiers consolidés et des référentiels métier alimentent des variables préparées en amont, dont des références de comptes et d’adresses. Le service expose deux endpoints REST, /train et /predict. FastAPI reçoit les requêtes, Redis conserve la matrice de variables explicatives (features) et les résultats repartent en JSON vers les règles métier, le traitement des exceptions et les alertes.

Approche technique

La gestion des requêtes, l’accès aux données Redis et les calculs du modèle sont séparés. Les appels à Redis utilisent des entrées-sorties asynchrones. L’entraînement et la prédiction s’exécutent dans des threads. La vue d’ensemble distingue le périmètre de l’API des fonctions de la plateforme qui l’entourent. Le réentraînement hebdomadaire et l’évaluation des résultats appartiennent au cycle du modèle, les règles métier et les alertes au traitement opérationnel.

Résultat

Un service de détection de fraude conteneurisé, intégré au flux de production logistique. Les applications envoient leurs requêtes à l’API et reçoivent en JSON les résultats du modèle, que les règles métier orientent vers la validation, le traitement des exceptions ou les alertes.

Mon intervention
  • Développement des routes FastAPI /train et /predict, de la validation Pydantic et des accès aux données Redis
  • Intégration des variables préparées, dont les références de comptes et d’adresses, aux calculs accessibles par l’API
  • Traitement asynchrone des entrées-sorties avec asyncio et aioredis sous Uvicorn, séparé des calculs d’entraînement et de prédiction exécutés via des threads
  • Intégration de scikit-learn pour l’entraînement et la prédiction, et de joblib pour la gestion des modèles et la mise en cache ; gestion des dépendances Python avec Poetry
  • Organisation en deux services Docker, FastAPI et Redis, avec déploiement dans un environnement Kubernetes sur OpenShift
  • Articulation de l’API avec les règles de décision, le traitement des exceptions et la supervision des alertes

Vue fonctionnelle

Logique de traitement

Parlons de votre projet

Un échange sur la conception, le développement et la mise en production de votre projet.