Patron de tâche texte-vers-vidéo
Étendez la démo optionnelle avec entitlements, quotas, crédits, idempotence et remboursements d’organisation.
Synchronisé avec le commit
2a1a04adu starter.
Utilisez cette page comme modèle d’une fonction IA facturée à l’usage, pas comme un produit vidéo prêt à vendre. Le starter fournit un écran mock local et les éléments difficiles : tenancy, droits, limites mensuelles, crédits partagés, idempotence, échec et remboursement. La production ignore les flags de démonstration ; cloner le dépôt n’active donc aucune génération réelle.
Définir le contrat du fournisseur réel
- Remplacez l’adaptateur de
src/services/ai/video.ts; gardez le code fournisseur hors des routes. - Le mock livré termine dans la requête. Pour un traitement plus long, mettez le travail en file durable, conservez l’ID externe, vérifiez les callbacks et utilisez aussi l’idempotence chez le fournisseur.
- Revoyez le crédit par seconde, les multiplicateurs, droits de plan, limites mensuelles et crédits inclus. Ce sont des exemples d’économie produit, pas un conseil tarifaire.
Prêt pour la production signifie : aucun mock en production, un doublon crée une tâche et un débit, le solde insuffisant est expliqué, un échec crée un seul remboursement, les callbacks ne traversent pas les organisations et l’UI montre attente, exécution et échec.
L’écran est un patron de développement opt-in, pas un fournisseur IA de production. Il faut activer démo et mock ; la production ignore ces flags. Remplacez seulement l’adaptateur src/services/ai/video.ts.
POST /api/tasks/text-to-video exige même origine, rate limit, auth, entitlement tasks.text_to_video, limite mensuelle partagée et crédits. Fournissez Idempotency-Key en header ou body. Le service insère une tâche d’organisation, dépense, garde la transaction racine, appelle le fournisseur et réussit ; en échec il marque la tâche et rembourse par une nouvelle ligne.
Le coût est dans src/config/tasks.ts. Plus : 50 tâches/organisation/mois et 500 crédits ; Max : tâches illimitées et 2 500 ; Free : aucune capacité. GET /api/tasks/[uuid] est limité à l’organisation.
Pour un vrai traitement long, gardez les invariants mais exécutez en asynchrone durable, utilisez l’idempotence fournisseur, validez les callbacks, stockez les IDs et testez doublon, solde, timeout, replay et échec de remboursement.
Avant de connecter un fournisseur : alignez Plans, limites et droits, le Registre de crédits d’organisation et Tâches durables et readiness. Pour une nouvelle fonction payante asynchrone, commencez par Génération d’image à cinq crédits. C’est la référence durable actuelle : identités récupérables tâche/dépense/job, sortie privée, reprises bornées et compensation terminale unique. Texte-vers-vidéo reste l’exemple synchrone plus petit.