2024 年 10 月 21 日

使用 Prisma Pulse 和 Trigger.dev 建構影片處理管線

無伺服器運算使應用程式能夠有效擴展,支援數百萬使用者。然而,它面臨著更長的執行時間和密集的資料處理的挑戰,這兩者對於機器學習 (ML) 應用程式都至關重要。為了應對這個問題,Pulse 和 Trigger.dev 等工具協助開發人員建立解耦、事件驅動的工作流程,促進複雜任務的有效處理。

解耦事件驅動架構的優點

事件驅動、解耦的架構提供幾個主要優點

  • 可擴展性:系統可以更輕鬆地擴展,因為組件是獨立的,允許根據需求進行個別擴展。
  • 靈活性:解耦的組件可以被修改或更新,而不會影響整個系統,從而實現更快的創新和適應性。
  • 彈性:一個服務中的故障不一定會影響整個系統,因為組件鬆散連接,從而提高了可靠性。
  • 非同步處理:事件被非同步處理,允許任務在後台運行,從而提高性能。
  • 故障隔離:解耦的服務隔離了問題,降低了跨系統級聯故障的風險。
  • 可維護性:關注點的明確分離允許團隊獨立開發和維護系統的不同部分,使架構更易於維護。

這些優點使解耦、事件驅動的架構成為現代、可擴展應用程式的理想選擇,特別是那些涉及複雜工作流程的應用程式,例如影片轉錄。

使用 Pulse 和 Trigger.dev 建構影片轉錄工作流程

為了示範如何應用這種架構,讓我們使用 PulseTrigger.dev 建構一個影片轉錄工作流程。我們將建立一個系統,該系統從 URL 轉錄影片並將轉錄內容儲存在資料庫中。

Pulse and Trigger.dev Flow

定義資料模型

首先,考慮以下 Prisma 模型,它定義了我們如何儲存影片 URL 及其轉錄資料

此模型將儲存影片的 URL 及其對應的轉錄內容(一旦處理完成)。

實作影片轉錄任務

接下來,我們將使用 Trigger.dev 設定一個轉錄任務。此腳本將取得影片 URL,提取其音訊,並使用 Deepgram API 轉錄它

在此任務中,我們首先下載影片資料並使用 ffmpeg 提取其音訊。然後,我們將音訊傳遞給 Deepgram 的轉錄服務,該服務處理音訊並傳回轉錄內容。最終的轉錄內容使用 Prisma 儲存在資料庫中。

當上傳新的影片時,我們使用 Prisma ORM 將影片 URL 儲存在資料庫中

觸發工作流程

影片上傳後,我們可以觸發轉錄工作流程。使用 Prisma Pulse,我們監聽新的影片記錄並相應地觸發轉錄任務

對已完成的轉錄做出反應

轉錄完成後,我們可以透過通知客戶端或觸發其他流程來對此事件做出反應。這也可以使用 Prisma Pulse 完成

這示範了如何使用這些工具有效地建構端到端工作流程,利用解耦、事件驅動的架構。

親自試試看

現在,輪到您實作這種方法,看看您可以多麼輕鬆地將解耦工作流程整合到您自己的專案中。試驗這些工具,看看它們如何簡化您的開發流程。無論您是轉錄影片還是建構更複雜的應用程式,Pulse 和 Trigger.dev 都提供了可擴展性和靈活性來處理各種任務。


開始使用 Trigger.dev

開始使用 Pulse

如果您建構了新的東西,我們很樂意聽到您的消息。與我們分享您的經驗,並在 X我們的變更日誌 上隨時了解我們的最新更新。需要協助嗎?加入我們的 Discord 社群,您可以在這裡提出問題並與其他開發人員交流。

不要錯過下一篇文章!

註冊 Prisma 電子報