TypeScript-இல் ஒரு AI வீடியோ ஜாப் கியூவை (Job Queue) உருவாக்குதல்

AI வீடியோ உருவாக்கம் என்பது ஒரு சாதாரண HTTP கோரிக்கை (request) அல்ல. ஒரு பயனர் ஒரு ப்ராம்ப்ட் (prompt) மற்றும் அமைப்புகளை (settings) அனுப்புகிறார். அதன் முடிவு கிடைக்க சில நிமிடங்கள் ஆகும்.

உங்கள் பேக்எண்ட் (backend) பல பணிகளைக் கையாள வேண்டும். உள்ளீட்டைச் சரிபார்க்கவும் (validate), பணிகளை உருவாக்கவும் (create jobs), சேவை வழங்குநர்களுடன் (providers) தொடர்பு கொள்ளவும், முடிவுகளுக்காகக் காத்திருக்கவும் (poll for results) மற்றும் தோல்விகளைக் கையாளவும் (handle failures) இது தேவைப்படுகிறது.

ஒரு வலுவான பணிப்பாய்விற்கு (workflow) ஆறு படிகள் தேவை:

  • ப்ராம்ப்ட் மற்றும் அமைப்புகளைச் சரிபார்க்கவும்.
  • பதிவேற்றப்பட்ட சொத்துக்களை (assets) சரிபார்க்கவும்.
  • உங்கள் தரவுத்தளத்தில் (database) ஒரு பணிப் பதிவை (job record) உருவாக்கவும்.
  • பணியை ஒரு சேவை வழங்குநரிடம் (provider) சமர்ப்பிக்கவும்.
  • வீடியோ தயாராகும் வரை வழங்குநரிடம் சரிபார்க்கவும் (poll).
  • உங்கள் UI-க்காக முடிவை வடிவமைக்கவும் (format).

சேவை வழங்குநர்களின் API-கள் உங்கள் முழு செயலையும் கட்டுப்படுத்த அனுமதிக்காதீர்கள். உங்கள் அமைப்பை நிலையாக வைத்திருக்க ஒரு அடாப்டர் லேயரை (adapter layer) பயன்படுத்தவும். இது உங்கள் முக்கிய லாஜிக்கை (core logic) மீண்டும் எழுதாமல் சேவை வழங்குநர்களை மாற்ற அனுமதிக்கிறது.

உங்கள் தயாரிப்பு ஒப்பந்தமாக (product contract) செயல்பட ஒரு மையப் பணி வகையை (central job type) உருவாக்கவும். ஒவ்வொரு வழங்குநரும் தனது தரவை இந்த வடிவத்திற்கு மாற்ற வேண்டும்.

மூன்று முறைகளைக் (methods) கொண்ட ஒரு VideoProvider interface-ஐ வரையறுக்கவும்:

  • submit: பணியை வழங்குநருக்கு அனுப்பவும்.
  • poll: பணி முடிந்துவிட்டதா என்று சரிபார்க்கவும்.
  • normalizeError: வழங்குநர் பிழைகளை உங்கள் சொந்த பிழை குறியீடுகளாக (error codes) மாற்றவும்.

இது வழங்குநர்களுக்கு இடையிலான வேறுபாடுகளை உங்கள் பில்லிங் லாஜிக் (billing logic) மற்றும் UI-லிருந்து தனிமைப்படுத்துகிறது.

எப்போதும் குறைந்த செலவிலான சரிபார்ப்புகளை முதலில் செய்யவும். API அழைப்புகளுக்குப் பணம் செலவழிக்கும் முன், ப்ராம்ப்ட்கள் மற்றும் கால அளவுகளைச் சரிபார்க்கவும்.

உங்கள் வொர்க்கரை (worker) உருவாக்கும்போது, காலதாமதத்தை அதிகரித்துக்கொண்டே செல்லும் ஒரு போலிங் உத்தியைப் (polling strategy) பயன்படுத்தவும். ஒரு பணி அதிக நேரம் எடுத்தால், அதை "delayed" நிலைக்கு மாற்றவும். பணிகள் எப்போதும் "running" நிலையிலேயே இருக்க அனுமதிக்காதீர்கள். இந்தத் தாமதப்படுத்தப்பட்ட பணிகளைப் பின்னர் சரிபார்க்க ஒரு தனிச் செயல்பாட்டைப் (separate process) பயன்படுத்தவும்.

உங்கள் UI பயனர்களுக்குச் சேவை வழங்குநரின் மூலப் பிழைகளை (raw errors) காட்டக்கூடாது. உங்கள் உள் பிழை குறியீடுகளைப் பயனர்களுக்கான தெளிவான செய்திகளாக மாற்றவும்:

  • queued: உங்கள் வீடியோ தொடங்கக் காத்திருக்கிறது.
  • running: உங்கள் வீடியோ உருவாக்கப்பட்டு வருகிறது.
  • delayed: இது வழக்கத்தை விட அதிக நேரம் எடுக்கிறது.
  • moderation_rejected: உங்கள் ப்ராம்ப்ட் அல்லது சொத்துக்களை மாற்ற முயற்சிக்கவும்.
  • provider_timeout: வழங்குநர் சரியான நேரத்தில் முடிவைத் தரவில்லை.

தெளிவான செய்திகள் ஆதரவு டிக்கெட்டுகளைக் (support tickets) குறைக்கின்றன மற்றும் என்ன நடந்தது என்பதைப் பயனர்கள் புரிந்துகொள்ள உதவுகின்றன.

AI வீடியோவை ஒரு பணி அமைப்பாகக் (job system) கருதுங்கள். ஒரு நிலையான வரிசையும் (queue) நல்ல பிழை வகைப்பாடும் (error taxonomy) உங்கள் தயாரிப்பைப் பராமரிப்பதை எளிதாக்கும்.

மூலம்: https://dev.to/miao_cunhui_587ccddb6acc1/building-an-ai-video-job-queue-in-typescript-1349

விருப்பத்தேர்வு கற்றல் சமூகம்: https://t.me/GyaanSetuAi