𝗧𝘆𝗽𝗲𝗦𝗰𝗿𝗶𝗽𝘁-இல் ஒரு 𝗔𝗜 𝗩𝗶𝗱𝗲𝗼 𝗝𝗼𝗯 𝗤𝘂𝗲𝘂𝗲-வை உருவாக்குதல்
AI வீடியோ உருவாக்கம் என்பது ஒரு சாதாரண HTTP கோரிக்கை (request) அல்ல. ஒரு பயனர் ஒரு தூண்டுதல் (prompt) மற்றும் அமைப்புகளை (settings) அனுப்புகிறார். அதன் முடிவு கிடைக்க சில நிமிடங்கள் ஆகும்.
உங்கள் பேக்எண்ட் (backend) பல படிகளைக் கையாள வேண்டும்:
- உள்ளீட்டைச் சரிபார்க்கவும் (Validate input).
- ஒரு பணிப் பதிவை (job record) உருவாக்கவும்.
- பணியை ஒரு வழங்குநருக்கு (provider) சமர்ப்பிக்கவும்.
- முடிவுகளுக்காகக் காத்திருக்கவும் (Poll for results).
- தோல்விகளைக் கையாளவும்.
- பயனருக்கு நிலையை (status) காட்டவும்.
நீங்கள் ஒரு வரிசை (queue) மற்றும் ஒரு அடாப்டர் லேயரை (adapter layer) பயன்படுத்த வேண்டும். இது வழங்குநர் சார்ந்த குறியீடுகள் (provider-specific code) உங்கள் முழு செயலையும் பாதிப்பதைத் தடுக்கும்.
உங்கள் தயாரிப்பு ஒப்பந்தமாக (product contract) செயல்பட ஒரு முக்கிய பணி வகையை (core job type) வரையறுக்கவும்.
type JobStatus = "queued" | "validating" | "running" | "delayed" | "succeeded" | "failed";
type VideoJob = {
id: string;
userId: string;
model: string;
prompt: string;
aspectRatio: "16:9" | "9:16" | "1:1";
durationSeconds: number;
status: JobStatus;
providerTaskId?: string;
outputUrl?: string;
errorCode?: VideoJobErrorCode;
};
உங்கள் வழங்குநர்களுக்காக ஒரு இன்டர்ஃபேஸை (interface) பயன்படுத்தவும். இது உங்கள் பணி செயலி (worker) தர்க்கத்தை (logic) சுத்தமாக வைத்திருக்கும்.
interface VideoProvider {
submit(job: VideoJob): Promise<{ providerTaskId: string }>;
poll(providerTaskId: string): Promise<
| { status: "running" }
| { status: "succeeded"; outputUrl: string }
| { status: "failed"; error: unknown }
>;
normalizeError(error: unknown): VideoJobErrorCode;
}
உங்கள் பணிப்பாய்விற்கான (workflow) சிறந்த நடைமுறைகளைப் பின்பற்றவும்:
முதலில் குறைந்த செலவிலான சரிபார்ப்புகளைச் செய்யவும். அதிகச் செலவுமிக்க API-களை அழைப்பதற்கு முன், தூண்டுதல்கள் (prompts) மற்றும் கால அளவுகளைச் சரிபார்க்கவும்.
ஒரு போலிங் உத்தியைப் (polling strategy) பயன்படுத்தவும். காலதாமதத்தை அதிகரித்துக்கொண்டே செல்லும் ஒரு லூப்பை (loop) செயல்படுத்தவும்.
காலதாமதங்களைக் கையாளவும். ஒரு பணி மிக நீண்ட நேரம் எடுத்தால், அதை "delayed" நிலைக்கு மாற்றவும். தாமதமான பணிகளைப் பின்னர் சரிபார்க்க ஒரு தனிப்பணிச் செயலியைக் (separate worker) பயன்படுத்தவும்.
பிழைகளைச் சீரமைக்கவும் (Normalize errors). வழங்குநரின் மூலப் பிழைகளை (raw provider errors) பயனர்களுக்கு ஒருபோதும் காட்டாதீர்கள். தொழில்நுட்பப் பிழைகளை மனிதர்கள் எளிதில் புரிந்துகொள்ளக்கூடிய செய்திகளாக மாற்றவும்.
உதாரண பயனர் செய்திகள்:
- "queued": உங்கள் வீடியோ தொடங்கக் காத்திருக்கிறது.
- "running": உங்கள் வீடியோ உருவாக்கப்பட்டு வருகிறது.
- "delayed": இது வழக்கத்தை விட அதிக நேரம் எடுக்கிறது.
- "moderation_rejected": இந்த கோரிக்கையைச் செயல்படுத்த முடியவில்லை.
AI வீடியோவை ஒரு பணி அமைப்பாகக் (job system) கருதுங்கள். ஒரு நிலையான வரிசையும் (stable queue) தெளிவான பிழை வகைப்பாடும் (error taxonomy) உங்கள் தயாரிப்பை எளிதாகப் பராமரிக்கவும் மற்றும் விரிவாக்கவும் (scale) உதவும்.
Source: https://dev.to/miao_cunhui_587ccddb6acc1/building-an-ai-video-job-queue-in-typescript-1349