অনুবাদ কিউ: ব্যাচ প্রসেসিং সিস্টেম
এই আর্টিকেলটি ব্যাখ্যা করে কিভাবে আমরা অনুবাদগুলোকে কিউ এবং ব্যাচ-প্রসেস করি যাতে AI API ব্যবহার অপ্টিমাইজ করা যায়।
সমস্যা: অন-ডিমান্ড অনুবাদ ব্যয়বহুল
কন্টেন্ট অন-ডিমান্ড অনুবাদ করতে গেলে সমস্যা হয়:
-
ধীর: প্রতিটি অনুবাদে ১-২ সেকেন্ড সময় লাগে
-
ব্যয়বহুল: API খরচ প্রতি রিকোয়েস্টে
-
অপ্রয়োজনীয় পুনরাবৃত্তি: একই টেক্সট বারবার অনুবাদ হয়
-
বাধাদানকারী: ব্যবহারকারীকে অনুবাদের জন্য অপেক্ষা করতে হয়
আমাদের একটি ভালো পদ্ধতি দরকার।
সমাধান: কিউ এবং ব্যাচ
কিউ: অনুবাদ রিকোয়েস্ট সংগ্রহ করা
ব্যাচ: একসাথে একাধিক অনুবাদ প্রসেস করা
ক্যাশ: ফলাফল পুনরায় ব্যবহারের জন্য সংরক্ষণ
সময়সূচী: কিউকে পর্যায়ক্রমে প্রসেস করা (রিয়েল-টাইম নয়)
কিউ স্ট্রাকচার
কিউ ফাইল
অবস্থান: ডিস্কে JSON ফাইল
ফরম্যাট: অনুবাদ রিকোয়েস্টের অ্যারে
ফিল্ডসমূহ:
-
text: অনুবাদযোগ্য ইংরেজি টেক্সট -
target_lang: ভাষা কোড (hi, de, fr ইত্যাদি) -
context: টেক্সটটি কোথায় প্রদর্শিত হয় (পণ্য, প্রশ্ন, আর্টিকেল) -
priority: উচ্চ/সাধারণ/নিম্ন
কিউতে যোগ করা
যখন অনুবাদ অনুপস্থিত থাকে:
queue_translation(text, target_lang, context="product")
ডিডুপ্লিকেশন: আগে থেকেই কিউ করা আছে কিনা চেক করা
ভ্যালিডেশন: অবাঞ্ছিত মান প্রত্যাখ্যান করা
ব্যাচ প্রসেসিং
স্ক্রিপ্ট
অবস্থান: scripts/web/process_translation_queue.py
সময়সূচী: ক্রন দ্বারা প্রতি ৬ ঘন্টায় রান করে
লক ফাইল: একসাথে একাধিক রান প্রতিরোধ করে
প্রসেস ফ্লো
১. কিউ লোড করা: সব পেন্ডিং রিকোয়েস্ট পড়া
২. ভাষা অনুযায়ী গ্রুপ করা: একই ভাষার রিকোয়েস্ট ব্যাচ করা
৩. ডিডুপ্লিকেশন: ব্যাচের মধ্যে ডুপ্লিকেট সরানো
৪. ক্যাশ চেক করা: আগে থেকেই অনুবাদ করা টেক্সটগুলো সকিপ করা
৫. ব্যাচ অনুবাদ করা: DeepSeek API-তে পাঠানো
৬. ফলাফল পার্স করা: রেসপন্স থেকে অনুবাদগুলো বের করা
৭. ক্যাশে সংরক্ষণ: ফ্রেজ টেবিলে স্টোর করা
৮. কিউ ক্লিয়ার করা: প্রসেস করা রিকোয়েস্টগুলো সরানো
ব্যাচ অনুবাদ
API কল
মডেল: DeepSeek-V3 (Together.ai-এর মাধ্যমে)
সিস্টেম প্রম্পট: ক্যাশ করা (একই ভাষার সব ব্যাচের জন্য একই)
ইউজার প্রম্পট: ভেরিয়েবল (ব্যাচ-স্পেসিফিক)
ফরম্যাট: নম্বরযুক্ত তালিকা
উদাহরণ:
Translate these 10 texts:
1. Mini PC
2. Thin Client
3. Compact Desktop
...
রেসপন্স:
1. मिनी पीसी
2. थिन क्लाइंट
3. कॉम्पैक्ट डेस्कटॉप
...
পার্সিং
লাইন নম্বর দিয়ে অনুবাদগুলো বের করা:
-
নম্বর প্রিফিক্স সরানো (
1.,2., ইত্যাদি) -
পজিশন অনুযায়ী মূল টেক্সটের সাথে ম্যাচ করা
-
কাউন্ট ম্যাচ করছে কিনা ভ্যালিডেট করা
ত্রুটি হ্যান্ডলিং
API ব্যর্থতা: ফলব্যাক API দিয়ে রিট্রাই
পার্স ব্যর্থতা: মূল টেক্সট রিটার্ন করা
আংশিক সফলতা: সফল অনুবাদগুলো সংরক্ষণ, ব্যর্থগুলো আবার কিউ করা
ক্যাশিং কৌশল
ফ্রেজ টেবিল
অবস্থান: ভাষা অনুযায়ী JSON ফাইল
ফরম্যাট: {"English": "Translation"}
লোডিং: একবার স্টার্টআপে লোড করা
সুবিধা: দ্রুত লুকআপ, কোনো API কল নেই
ক্যাশ হিট রেট
প্রথম রান: কম (সবকিছু নতুন)
পরবর্তী রান: বেশি (বেশিরভাগ টেক্সট ক্যাশ করা)
সুবিধা: API খরচ কম
সংরক্ষণ নিয়ম
অনুবাদের সময়, আমরা সংরক্ষণ করি:
ব্র্যান্ড নাম: Thinvent®, Intel®, AMD®
HTML ট্যাগ: <p>, <br>, <strong>
URLs: https://www.thinvent.in
SKUs: Treo-N100-8-256
সংখ্যা: 8GB, 256GB, 4 cores
ইমপ্লিমেন্টেশন: সিস্টেম প্রম্পটে রেজেক্স প্যাটার্ন
ভাষা শনাক্তকরণ
অনুবাদের আগে, চেক করা যে আগে থেকেই অনুবাদ করা আছে কিনা:
পদ্ধতি: ক্যারেক্টার সেট বিশ্লেষণ
হিন্দি: দেবনাগরী লিপি
চাইনিজ: CJK ক্যারেক্টার
আরবি: আরবি লিপি
সুবিধা: অপ্রয়োজনীয় অনুবাদ এড়ানো
অগ্রাধিকার হ্যান্ডলিং
উচ্চ অগ্রাধিকার: পণ্যের নাম, বৈশিষ্ট্য (প্রথমে প্রসেস)
সাধারণ অগ্রাধিকার: বিবরণ, আর্টিকেল (দ্বিতীয়তে প্রসেস)
নিম্ন অগ্রাধিকার: পুরানো কন্টেন্ট, কম দেখা কন্টেন্ট (সবশেষে প্রসেস)
সুবিধা: গুরুত্বপূর্ণ কন্টেন্ট আগে অনুবাদ হয়
সময়সূচী
ক্রন জব
ফ্রিকোয়েন্সি: প্রতি ৬ ঘন্টায়
কমান্ড: python3 scripts/web/process_translation_queue.py
লক ফাইল: /tmp/process_translation_queue.lock
সুবিধা: স্বয়ংক্রিয় প্রসেসিং, ম্যানুয়াল হস্তক্ষেপ নেই
সাপ্তাহিক কাজ
আর্টিকেল: সাপ্তাহিক নতুন আর্টিকেল অনুবাদ
বাবেল স্ট্রিং: সাপ্তাহিক টেমপ্লেট অনুবাদ আপডেট
স্ক্রিপ্ট: scripts/web/translate_articles_weekly.sh
মনিটরিং
কিউ সাইজ
পেন্ডিং রিকোয়েস্ট ট্র্যাক করা:
-
মোট রিকোয়েস্ট
-
ভাষা অনুযায়ী রিকোয়েস্ট
-
সবচেয়ে পুরানো রিকোয়েস্টের বয়স
সতর্কতা: যদি কিউ খুব বড় হয়ে যায়
অনুবাদ পরিসংখ্যান
প্রসেসিং ট্র্যাক করা:
-
প্রতি ব্যাচে অনুবাদ
-
API সফলতার হার
-
ক্যাশ হিট রেট
-
প্রসেসিং সময়
খরচ ট্র্যাকিং
API ব্যবহার মনিটর করা:
-
প্রতিদিন রিকোয়েস্ট
-
প্রতি রিকোয়েস্টে টোকেন
-
ভাষা অনুযায়ী খরচ
রেফারেন্স
সম্পর্কিত আর্টিকেল
-
অনুবাদ সিস্টেম - তিন-প্রযুক্তির হাইব্রিড
-
কন্টেন্ট AI জেনারেশন - DeepSeek ইন্টিগ্রেশন
-
ভাষা শনাক্তকরণ - ব্যবহারকারীর ভাষা পছন্দ
সারাংশ
অনুবাদ কিউ দক্ষ ব্যাচ প্রসেসিং সক্ষম করে:
কিউ:
-
✅ অনুবাদ রিকোয়েস্ট সংগ্রহ
-
✅ ব্যাচের মধ্যে ডিডুপ্লিকেশন
-
✅ অগ্রাধিকার হ্যান্ডলিং
-
✅ ভ্যালিডেশন এবং ফিল্টারিং
ব্যাচ প্রসেসিং:
-
✅ ভাষা অনুযায়ী গ্রুপ
-
✅ DeepSeek API-তে পাঠানো
-
✅ নম্বরযুক্ত রেসপন্স পার্স করা
-
✅ ফ্রেজ টেবিলে সংরক্ষণ
ক্যাশিং:
-
✅ অনুবাদের আগে ক্যাশ চেক
-
✅ উচ্চ ক্যাশ হিট রেট
-
✅ API খরচ কম
সময়সূচী:
-
✅ ক্রন দ্বারা প্রতি ৬ ঘন্টায়
-
✅ লক ফাইল একসাথে একাধিক রান প্রতিরোধ করে
-
✅ সাপ্তাহিক আর্টিকেল অনুবাদ
সংরক্ষণ:
-
✅ ব্র্যান্ড নাম
-
✅ HTML ট্যাগ
-
✅ URLs এবং SKUs
এই পদ্ধতি ব্যাচিং এবং ক্যাশিংয়ের মাধ্যমে API খরচ কমায় এবং অনুবাদের গুণমান উন্নত করে।