Erstellung einer AI-Video-Job-Queue in TypeScript

Die Generierung von KI-Videos ist keine standardmäßige HTTP-Anfrage. Ein Nutzer sendet einen Prompt und Einstellungen. Das Ergebnis benötigt einige Minuten, bis es eintrifft.

Ihr Backend muss viele Aufgaben bewältigen. Es muss Eingaben validieren, Jobs erstellen, mit Providern kommunizieren, nach Ergebnissen abfragen (Polling) und Fehler handhaben.

Ein solider Workflow erfordert sechs Schritte:

  • Validierung des Prompts und der Einstellungen.
  • Überprüfung der hochgeladenen Assets.
  • Erstellung eines Job-Eintrags in Ihrer Datenbank.
  • Übermittlung des Jobs an einen Provider.
  • Abfrage beim Provider, bis das Video bereit ist.
  • Formatierung des Ergebnisses für Ihre Benutzeroberfläche.

Lassen Sie nicht zu, dass die APIs der Provider Ihre gesamte Anwendung steuern. Verwenden Sie eine Adapter-Schicht, um Ihr System stabil zu halten. Dies ermöglicht es Ihnen, den Provider zu wechseln, ohne Ihre Kernlogik neu schreiben zu müssen.

Erstellen Sie einen zentralen Job-Typ, der als Ihr Produktvertrag fungiert. Jeder Provider sollte seine Daten in dieses Format übersetzen.

Definieren Sie ein VideoProvider-Interface mit drei Methoden:

  • submit: Den Job an den Provider senden.
  • poll: Prüfen, ob der Job abgeschlossen ist.
  • normalizeError: Provider-Fehler in Ihre eigenen Fehlercodes umwandeln.

Dies hält die Unterschiede zwischen den Providern von Ihrer Abrechnungslogik und der UI fern.

Führen Sie immer zuerst kostengünstige Prüfungen durch. Validieren Sie Prompts und Zeitdauern, bevor Sie Geld für API-Aufrufe ausgeben.

Verwenden Sie beim Bau Ihres Workers eine Polling-Strategie mit zunehmenden Verzögerungen. Wenn ein Job zu lange dauert, verschieben Sie ihn in den Status „delayed“. Lassen Sie Jobs nicht ewig im Zustand „running“ verbleiben. Verwenden Sie einen separaten Prozess, um diese verzögerten Jobs später zu überprüfen.

Ihre UI sollte niemals rohe Provider-Fehler anzeigen. Ordnen Sie Ihre internen Fehlercodes klaren Nachrichten für Ihre Nutzer zu:

  • queued: Ihr Video wartet auf den Start.
  • running: Ihr Video wird gerade generiert.
  • delayed: Dies dauert länger als gewöhnlich.
  • moderation_rejected: Versuchen Sie, Ihren Prompt oder Ihre Assets zu ändern.
  • provider_timeout: Der Provider hat nicht rechtzeitig ein Ergebnis zurückgegeben.

Klare Nachrichten reduzieren Support-Tickets und helfen den Nutzern zu verstehen, was passiert ist.

Betrachten Sie KI-Videos als ein Job-System. Eine stabile Queue und eine gute Fehler-Taxonomie machen Ihr Produkt wart