Construire une file d'attente de tâches de génération de vidéo par IA en TypeScript
La génération de vidéo par IA n'est pas une requête HTTP standard. Un utilisateur envoie un prompt et des paramètres. Le résultat met plusieurs minutes à arriver.
Votre backend doit gérer de nombreuses tâches. Il doit valider les entrées, créer des jobs, communiquer avec les fournisseurs, interroger les résultats et gérer les échecs.
Un workflow solide nécessite six étapes :
- Valider le prompt et les paramètres.
- Vérifier les assets téléchargés.
- Créer un enregistrement de job dans votre base de données.
- Soumettre le job à un fournisseur.
- Interroger le fournisseur jusqu'à ce que la vidéo soit prête.
- Formater le résultat pour votre interface utilisateur.
Ne laissez pas les API des fournisseurs contrôler l'intégralité de votre application. Utilisez une couche d'adaptation (adapter layer) pour maintenir la stabilité de votre système. Cela vous permet de changer de fournisseur sans réécrire votre logique métier principale.
Créez un type de job central pour servir de contrat de produit. Chaque fournisseur doit traduire ses données dans ce format.
Définissez une interface VideoProvider avec trois méthodes :
- submit : Envoyer le job au fournisseur.
- poll : Vérifier si le job est terminé.
- normalizeError : Convertir les erreurs du fournisseur en vos propres codes d'erreur.
Cela permet d'isoler les différences entre les fournisseurs de votre logique de facturation et de votre interface utilisateur.
Effectuez toujours les vérifications les moins coûteuses en premier. Validez les prompts et les durées avant de dépenser de l'argent dans des appels API.
Lors de la création de votre worker, utilisez une stratégie de polling avec des délais croissants. Si un job prend trop de temps, passez-le au statut « delayed ». Ne laissez pas les jobs rester indéfiniment dans l'état « running ». Utilisez un processus séparé pour vérifier ces jobs retardés plus tard.
Votre interface utilisateur ne doit jamais afficher les erreurs brutes des fournisseurs. Mappez vos codes d'erreur internes vers des messages clairs pour vos utilisateurs :
- queued : Votre vidéo est en attente de démarrage.
- running : Votre vidéo est en cours de génération.
- delayed : Cela prend plus de temps que d'habitude.
- moderation_rejected : Essayez de modifier votre prompt ou vos assets.
- provider_timeout : Le fournisseur n'a pas renvoyé de résultat à temps.
Des messages clairs réduisent les tickets de support et aident les utilisateurs à comprendre ce qui s'est passé.
Traitez la vidéo par IA comme un système de gestion de tâches. Une file d'attente stable et une bonne taxonomie des erreurs facilitent la maintenance de votre produit.
Source: https://dev.to/miao_cunhui_587ccddb6acc1/building-an-ai-video-job-queue-in-typescript-1349
Optional learning community: https://t.me/GyaanSetuAi