Contexte
Pour apprendre les compétences MLOps, j’avais décidé en début d’année 2025 de développer un agent IA qui m’aide en tant que vendeur Amazon. Le principe est simple, quand je trouve un produit à vendre sur Amazon, il doit pouvoir analyser la concurrence, le ROI, la rentabilité du produit.
Description technique
Je me suis interdit d’utiliser des outils no-code pour mettre en place mon agent IA car mon objectif est d’en sortir en tant que MLOps.
Voici donc ma roadmap technique :
1 - Crawler les produits sur des sites de vente
2 - Trouver les identifiants des produits crawlés sur Amazon (ASIN)
3 - Récupérer les KPIs des produits sur Amazon (BSR, nombre d’offres, prix)
4 - Analyser la rentabilité du produit et trouver le positionnement en termes de prix
Objectifs d’apprentissage MLOps
Les objectifs techniques sont :
- Apprendre à mettre en place des outils d’orchestration de pipelines MLOps
- Mettre en place des pipelines d’intégration continue (CI), d’entraînement continu de modèles d’IA (CT) et de déploiement continu (CD) pour de l’inférence
- Maîtriser les langages, frameworks et techniques comme Langchain, MCP, les Agents, l’embedding, DSPY, CodeAgent, l’entraînement de modèles (données, spécialisation de modèle) et le déploiement de modèles en production pour de l’inférence
Point d’étape après 3 mois
Après trois mois de travaux (non acharnés), voici ce que j’ai déjà réalisé :
- Monter un projet Python avec Poetry, SqlAlchemy, Alembic, Pydantic et Pydantic Settings
- Crawler un site de produits avec Playwright
- Trouver la correspondance des produits sur Amazon et récupérer leurs ASIN en combinant Azure OpenAI pour la comparaison des descriptions, Azure Computer Vision pour l’embedding et la comparaison des images des produits
- Récupération des détails (prix, description) du produit sur le site du vendeur en utilisant Playwright, Azure OpenAI, Langchain avec les modèles gérant les réponses structurées
- Familiarisation avec ZenML et création de pipelines
- Déploiement de ma version de ZenML sur Azure Container Apps
- Intégration de la stack ZenML Azure (Azure ZenML, Storage Account, Key Vaults) pour programmer l’exécution de mes pipelines
- Pipelines qui récupèrent les produits d’un site marchand et font la corrélation avec les produits Amazon. J’ai donc en ce moment ma base de données PostgreSQL qui se remplit de produits
Problèmes rencontrés et optimisations :
Rendre générique la récupération des liens des produits
Ma première implémentation se base sur le sitemap du premier site marchand que j’ai choisi. L’étape suivante sera de confirmer si tous les sites marchands ont systématiquement des sitemaps sinon de les catégoriser et d’adapter mon crawler en fonction de ces catégories.
Rendre générique la récupération du prix des produits
Pour être précis dans la récupération du prix du produit sur le site du vendeur, dans l’implémentation actuelle, pour chaque site marchand, je récupère le bloc HTML qui ne contient que le prix et la description sur la page HTML. Cela me permet de le passer à un modèle IA pour récupérer les bonnes informations. J’ai retenu cette implémentation car mes tests, qui consistaient à récupérer tout le contenu HTML de la page et le passer au modèle IA, se heurtaient à la limite de tokens maximum en input des modèles et lorsque je découpais le contenu de la page en chunks, le prix du produit récupéré n’était pas correct.
Avec l’avènement des serveurs MCP, j’ai testé le serveur MCP mcp-server-fetch avec un agent et il a pu récupérer le prix sur la page avec précision.
Mon prochain objectif est de réécrire le code qui récupère les prix en se basant sur le serveur MCP Playwright pour rendre le code générique par rapport aux sites marchands.
Éviter le blocage de l’instance de crawl
Mes pipelines de crawl sont actuellement basés sur Azure ML qui démarre des instances de VMs à la demande. Cela implique des IPs publiques différentes pour le crawling. Ce comportement permet aux sites de bloquer les bots. Pour éviter cela, je dois voir la possibilité de mettre mon instance d’Azure ML dans mon Vnet et rajouter un Nat Gateway pour avoir la même adresse IP pour les trafics vers Internet.
Next Steps
À l’heure actuelle, j’ai des produits provenant d’un site marchand, j’arrive à les corréler avec des produits Amazon. J’ai accès aux APIs Amazon pour récupérer les KPIs dont j’ai besoin. Je vais donc dans les prochains mois mettre en place la logique de récupération des KPIs Amazon et développer la première version de l’agent IA. Pour la première version de l’agent, je penche actuellement vers les frameworks d’agents AutoGen, CrewAI. J’ai mis LangChain de côté car il ne voit les serveurs MCP que comme des “tools”, ce qui fait que je ne pourrai pas profiter des fonctionnalités de type Resources, PromptTemplates de ces serveurs.