テキストから動画を生成するタスクの実装例
組織のエンタイトルメント、利用上限、クレジット、冪等性、返却処理を備えた任意のデモを拡張します。
Starter source:
e632762.
動画と画像の例は、共通の永続化された有料タスク受付を使用します。開発環境専用であり、リポジトリを複製しても商用の生成サービスは有効になりません。
ENABLE_DEMO_FEATURES=true と ENABLE_TEXT2VIDEO_MOCK=true を設定し、pnpm dev:seed -- --paid-examples、pnpm dev:all を実行します。ローカルの初期データは手動の利用権限を冪等に追加し、Stripe で購入しません。模擬サービスは8秒の /demo-video.mp4 または TEXT2VIDEO_MOCK_URL を返します。指定した文章、縦横比、長さに合わせて動画を合成するものではありません。
POST /api/tasks/text-to-video には認証、明示的な組織、本文または Idempotency-Key ヘッダーの冪等キーが必要です。文章は1,000文字まで、長さは1〜60秒の整数です。サービスは既存リクエストを解決してから新規操作の権限を確認します。月間利用枠、クレジット引き落とし、タスク、キュー登録を一つのトランザクションで確定し、キュー保存の失敗時はすべて戻します。
受理時は 202 と処理待ちタスクを返します。ワーカーはタスク UUID を外部サービスの識別子として使用し、一時的な失敗を再試行し、最終失敗の前に冪等なクレジット返却を行います。結果は GET /api/tasks/[uuid] で確認します。画面は読み取りエラーから回復し、再読み込み後もタスクと設定を復元します。再送は行わず、「別の動画を生成」で明示的に新規操作を開始します。
料金は src/config/tasks.ts、権限は src/services/entitlements.ts、実行は src/services/tasks/video.ts、アダプターは src/services/ai/video.ts にあります。例の料金と利用枠は製品に合わせて見直してください。
指紋のない旧同期タスクは自動再送せず、外部サービスの結果を先に確認します。text_to_video 対応ワーカーを先に配置してください。実アダプターでは識別子、取り消し、組織境界、補償を維持し、冪等性のない外部サービスでは再試行前に結果を照合します。本番での利用には、ページ、API、サービスのデモ用条件を審査済みの本番受付へ変更する必要もあります。
TEXT2VIDEO_MOCK_URL が未設定、空、または空白だけの場合は /demo-video.mp4 を使います。プロバイダーの空出力は成功した有料結果ではなく失敗として扱い、再試行上限後に元の台帳取引を使って補償します。