এই সাইটটি Kohei Koyanagi-এর তৈরি সফটওয়্যার দিয়ে স্বয়ংক্রিয়ভাবে বহু ভাষায় অনূদিত। যথাসম্ভব নির্ভুল তথ্যের জন্য মূল ইংরেজি সংস্করণ দেখুন।

কিভাবে এই ব্লগটি ৪২টি ভাষায় অনুবাদ করা হয়েছে

Splync ব্লগে ৪২টি ভাষা রয়েছে

এটি Splync-এর জন্য আমার ব্লগের ২৩তম প্রবন্ধ, যা দম্পতি, বন্ধু এবং পরিবারের জন্য একটি ভাগ করা বাজেট ট্র্যাকার। আপনি ভাবতে পারেন কিভাবে আমি একজন একক প্রকৌশলী হওয়া সত্ত্বেও প্রতিটি পোস্ট ৪২টি ভাষায় প্রকাশ করি। প্রতিটি প্রবন্ধের শীর্ষে থাকা সতর্কীকরণটি বলছে, এই ওয়েবসাইটটি স্বয়ংক্রিয়ভাবে বিভিন্ন ভাষায় অনুবাদ করা হয়, এমন সফটওয়্যার আমি নিজেই তৈরি করেছি। স্পষ্টভাবে বলতে গেলে: ইংরেজি ছাড়া অন্য কোনো ভাষায় আমি ম্যানুয়ালি একটি বাক্যও লিখি না। সেই কারণে, আমি পাঠকদের অনুরোধ করব, যখন অর্থের নির্ভুলতা সত্যিই গুরুত্বপূর্ণ, তখন মূল ইংরেজি সংস্করণের দিকে দৃষ্টি দিতে। তবুও, অনুবাদ প্রক্রিয়া উন্নত করার জন্য অনেকবার চেষ্টা ও ভুলের পর, আমি বিশ্বাস করি সামগ্রিক অনুবাদ গুণগত মান যথেষ্ট ভাল। এই প্রবন্ধে আমি শেয়ার করব কিভাবে আমার সফটওয়্যার Splync ব্লগটিকে বহু-ভাষী করে তোলে।

Python এবং OpenAI API একসঙ্গে কাজ করে

আমি সবসময় প্রতিটি প্রবন্ধ সাদামাটাভাবে ইংরেজিতে লিখে শুরু করি, যার মধ্যে SEO সংক্রান্ত মেটাডেটাও থাকে। এরপর, আমার Python স্ক্রিপ্ট OpenAI API তে ইংরেজি টেক্সট পাঠায়, একটি প্রম্পট এবং একটি ছোট রেফারেন্স ফাইল সহ। OpenAI-এর সার্ভারে, ChatGPT-4o অনুরোধটি পড়ে এবং অনুবাদিত প্রবন্ধটি ফিরিয়ে দেয় — উদাহরণস্বরূপ, আরবি সংস্করণ — JSON ফরম্যাটে। আমার ম্যাকবুক সেই অনুবাদটি পাওয়ার পর, স্ক্রিপ্টটি সাথে সাথেই আরেকটি অনুরোধ পাঠায়, এবার বাংলার জন্য। স্ক্রিপ্টটি স্বয়ংক্রিয়ভাবে সব ৪২টি লক্ষ্যভাষায় লুপ করে। প্রক্রিয়ার শেষে, আমার কম্পিউটারে ৪২টি অনুবাদিত JSON ফাইল থাকে। আরেকটি Python স্ক্রিপ্ট প্রতিটি অনুবাদকে একটি HTML টেমপ্লেটে এম্বেড করে এবং এক সেকেন্ডেরও কম সময়ে ৪২টি HTML ফাইল তৈরি করে। সব ফাইল সার্ভারে আপলোড করা হয় যেখানে এই ব্লগটি হোস্ট করা হয়, এবং প্রতিটি ভাষার সংস্করণ নিজস্ব ডিরেক্টরিতে রাখা হয়। অবশেষে, সার্ভার-সাইড Python স্ক্রিপ্ট প্রবন্ধ সূচি এবং “পরবর্তী পোস্ট” লিঙ্কগুলো আপডেট করে যাতে প্রতিটি ভাষার নেভিগেশন সঙ্গতিপূর্ণ থাকে। মূল ইংরেজি প্রবন্ধটি সাদা টেক্সটে লেখা থাকার কারণে, পুরো প্রক্রিয়াটি সাধারণত ৫ মিনিট বা তার চেয়ে কম সময় নেয়। যখন পরিবর্তনের প্রয়োজন হয়, আমি একাধিক HTML ফাইল একসঙ্গে আপডেট করি সার্ভার-সাইড Python স্ক্রিপ্ট ব্যবহার করে।

API কী

যদি আপনি প্রযুক্তিগত শর্তাবলীর সাথে পরিচিত না হন, আপনি ভাবতে পারেন কিভাবে আমার কম্পিউটার প্রথমেই OpenAI-এর সার্ভারের সাথে “কথা” বলে। উত্তরটি হল একটি API, অ্যাপ্লিকেশন প্রোগ্রামিং ইন্টারফেস নামে পরিচিত। আপনি API-কে দুটো প্রোগ্রামের মধ্যে একটি বার্তাবাহক জানালা হিসেবে ভাবতে পারেন: একটি প্রোগ্রাম অনুরোধ পাঠায় এবং অন্যটি জবাব পাঠায়। উদাহরণস্বরূপ, আমার Python স্ক্রিপ্ট একটি বার্তা পাঠায়, “এই প্রবন্ধটি জার্মানে অনুবাদ করুন।” OpenAI API এর মাধ্যমে সেই বার্তাটি গ্রহণ করে, অনুবাদ প্রস্তুত করে এবং ফলাফলটি ফেরত পাঠায়। এটি ঠিক রেস্তোরাঁয় একটি অর্ডার দেওয়ার মতো কাজ করে: আপনি ওয়েটারকে যা চান তা বলেন, রান্নাঘর এটি প্রস্তুত করে এবং ওয়েটার তা আপনার টেবিলে নিয়ে আসে। এবং কেন আপনার প্রথমে একজন ওয়েটারের প্রয়োজন? কারণ আপনি রান্নাঘরে হেঁটে যান না বা সরাসরি শেফের সাথে কথা বলেন না — আপনি জানেন না রান্নাঘর কিভাবে কাজ করে এবং আপনার জানার প্রয়োজন নেই। আপনি হয়তো ওয়েটারকে বলবেন, “আমি কি একটি চিজবার্গার পেতে পারি?” এবং ওয়েটার হয়তো চিৎকার করবে, “অর্ডার আপ! T21, চিহুয়াহুয়া!” সম্পূর্ণ ভিন্ন ফরম্যাটে। একটি API একই ভূমিকা পালন করে। এটি দুটি ভিন্ন সিস্টেমকে সংযুক্ত করে তাদের একে অপরের অভ্যন্তরীণ ভাষা বা কর্মপ্রবাহ বোঝার প্রয়োজন ছাড়াই।

আমার কেন OpenAI API প্রয়োজন

এখন যে আমরা API কী তা দেখেছি, এখানে কেন আমি এই ব্লগের জন্য এটি ব্যবহার করি। বাস্তবে বলতে গেলে, আমি নিজেই ChatGPT-এর সাথে “কথা” বলতে পারি — কিন্তু আমার ৪২টি ভাষা প্রক্রিয়াকরণ করতে হবে। ওয়েটারকে ৪২ বার ডাকলে বিরক্তিকর হবে (প্রোগ্রামটি ইংরেজিকে ইংরেজিতে অনুবাদ করা এড়িয়ে যায়, কিন্তু এখনও টেক্সটটি JSON এ রূপান্তর করে)। OpenAI API ব্যবহার করে আমার Python স্ক্রিপ্টকে স্বয়ংক্রিয়ভাবে সমস্ত অনুরোধ পাঠানোর সুযোগ দেয়, আমাকে পুনরাবৃত্তিমূলক কাজ থেকে বাঁচিয়ে দেয় যাতে আমি অন্যান্য জিনিসে মনোনিবেশ করতে পারি। আমি একজন একক ডেভেলপার, তাই আমাকে আমার সময় যতটা সম্ভব দক্ষভাবে ব্যবহার করতে হবে। যখনই আমি দেখি একটি কাজ পুনরাবৃত্তিমূলক এবং পরিষ্কার নিয়ম রয়েছে, আমি এটি স্বয়ংক্রিয় করি। ফলাফল সাধারণত এমন একটি প্রক্রিয়া যা এক মিলিয়ন গুণ দ্রুত এবং সম্পূর্ণ ত্রুটিমুক্ত। এই কারণেই API এর মাধ্যমে স্বয়ংক্রিয়তা অপরিহার্য — এটি আমার স্ক্রিপ্টকে সমস্ত ৪২টি “অর্ডার” তাত্ক্ষণিক এবং নির্ভরযোগ্যভাবে স্থাপন করতে দেয়।

৪২টি ভাষা কেন

প্রযুক্তিগতভাবে, আমি আরও অনেক ভাষা যোগ করতে পারি; এটি রান করার সময় আমি যখন থালাবাসন করছি তখন কয়েক মিনিট সময় লাগবে। কিন্তু আমি ব্যক্তিগতভাবে ৪২ নম্বরটি পছন্দ করি, ডগলাস অ্যাডামসের বই থেকে ‘জীবন, মহাবিশ্ব এবং সবকিছুর চূড়ান্ত প্রশ্নের উত্তর’। ৪২ সংখ্যার প্রতি আমার সংযুক্তির বাইরেও, খুব ছোট ভাষা যোগ করা ঝুঁকিপূর্ণ হতে পারে, কারণ সীমিত প্রশিক্ষণ ডেটার জন্য এআই অনুবাদ কম নির্ভরযোগ্য হয়ে উঠতে পারে।

ChatGPT 4o এর তাপমাত্রা

যখন আমি প্রথম এই বহু-ভাষিক অনুবাদ পদ্ধতির সাথে পরীক্ষা করেছি, তখন ফলাফলগুলি ভাল ছিল কিন্তু নিখুঁত ছিল না। কিছু বাক্য অনুবাদে ভুল, অত্যধিক আক্ষরিক বা নির্দিষ্ট ভাষায় সূক্ষ্মভাবে বিভ্রান্তিকর ছিল। আমি বিশেষ সাংস্কৃতিক ব্যবস্থায় অনুচিত বা সংবেদনশীল হতে পারে এমন অভিব্যক্তি অনিচ্ছাকৃতভাবে তৈরি করার বিষয়ে উদ্বিগ্ন ছিলাম। এবং অবশ্যই, আমি আমার অনুবাদগুলি যান্ত্রিক বা রোবোটিক শোনাতে চাইনি। অনুবাদ গুণগত মানের পিছনে মূল কারণগুলির মধ্যে একটি হল তাপমাত্রা সেটিং — এটি একটি প্যারামিটার যা AI কতটা “সৃজনশীল” বা “কঠোর” হওয়া উচিত তা নিয়ন্ত্রণ করে। একটি উচ্চ তাপমাত্রা AI-কে আরও কল্পনাপ্রবণ করে তোলে, কিন্তু আরও অননুমেয়ও করে তোলে। একটি নিম্ন তাপমাত্রা এটিকে মূল অর্থের কাছাকাছি রাখে, কিন্তু কখনও কখনও এটি অনমনীয় মনে হতে পারে। সঠিক ভারসাম্য খুঁজে পেতে অনেক চেষ্টা ও ভুল লেগেছে: যথাযথতা নিশ্চিত করার জন্য যথেষ্ট কম, কিন্তু পাঠ্যটি প্রাণহীন হয়ে ওঠার মতো নয়। অনেক পরীক্ষা-নিরীক্ষার পরে, আমি মনে করেছি তাপমাত্রা = ০.৮ এই ব্লগের প্রয়োজনের জন্য সবচেয়ে উপযুক্ত: যথাযথভাবে ইংরেজি মূলের প্রতি বিশ্বস্ত থাকতে, কিন্তু অন্যান্য ভাষায় প্রাকৃতিক শোনানোর জন্য যথেষ্ট নমনীয়।

ChatGPT 5.x তাপমাত্রা সমর্থন করে না

ChatGPT 5 এবং 5.1 এর মতো নতুন মডেলগুলি আর একেবারে তাপমাত্রা সেটিং সমর্থন করে না — প্যারামিটারটি সরিয়ে ফেলা হয়েছে এবং এর পরিবর্তে যুক্তি এবং প্রয়াসের মতো ধারণা দ্বারা প্রতিস্থাপিত হয়েছে, যা মডেল কিভাবে চিন্তা করে তা প্রভাবিত করে বরং এটি কতটা “সৃজনশীল” হয়ে ওঠে। অন্য কথায়, ChatGPT 4o আমাকে একটি শারীরিক ডায়াল দিয়েছিল যা আমি অনুবাদের স্টাইল সূক্ষ্মভাবে সুর করতে পারতাম, কিন্তু 5.x পরিবার সম্পূর্ণ ভিন্ন দর্শন অনুসরণ করে। আপনি যদি স্বাভাবিকভাবে নতুন মডেলটিকে বলেন, “এটি তাপমাত্রা = ০.৮ দিয়ে অনুবাদ করুন,” এটি এমনভাবে আচরণ করার চেষ্টা করতে পারে যেন এমন একটি সেটিং এখনও বিদ্যমান, কিন্তু অভ্যন্তরীণভাবে প্যারামিটারটি অদৃশ্য। মডেলটি কেবল উদ্দেশ্যটির আনুমানিকতা করে। OpenAI তাদের মডেলগুলি আপডেট করতে থাকে, আমি হয়তো একদিন আমার অনুবাদ পাইপলাইন সমন্বয় করতে পারি। আপাতত, ChatGPT 4o বহু-ভাষিক অনুবাদগুলির জন্য আমার পছন্দ হিসাবে রয়ে গেছে — কেবলমাত্র এটি অনেক ভাষায় প্রসঙ্গটি ভালভাবে বোঝে তা নয়, তবে এর API মূল্য একটি একক ডেভেলপারের জন্য যুক্তিসঙ্গত। প্রকৃতপক্ষে, 4o সম্ভবত OpenAI এর ইতিহাসের অন্যতম প্রিয় মডেল হিসেবে চলে যেতে পারে।

OpenAI API এর কর্মী

OpenAI API-এর একটি আশ্চর্যজনক বিষয় — ব্রাউজারে সরাসরি ChatGPT ব্যবহার করার তুলনায় — আপনি একই সময়ে একাধিক ChatGPT “কর্মী” ব্যবহার করতে পারেন। যখন আমি ৪২টি ভাষার জন্য অনুবাদ অনুরোধ পাঠাই, আমি একটির পরে একটি ধীর লাইনে পাঠাচ্ছি না। পরিবর্তে, API অনেক অনুরোধ সমান্তরালে প্রক্রিয়া করতে পারে, যেন আমি হঠাৎ করে এক ঘর অনুবাদক নিয়োগ করেছি যারা সবাই একসাথে কাজ শুরু করছে। আমার Python স্ক্রিপ্টটি একটি ছোট উৎপাদন লাইনের মতো কার্যপ্রবাহ পরিচালনা করে: এটি ইংরেজি প্রবন্ধটি প্রস্তুত করে, অনুরোধগুলি পাঠায়, প্রতিক্রিয়াগুলির জন্য অপেক্ষা করে এবং ফলাফলগুলি JSON ফাইলে প্রক্রিয়াকরণ করে। এদিকে, OpenAI সার্ভারগুলি একাধিক মডেল ইনস্ট্যান্স একসঙ্গে চালায়, প্রতিটি ভিন্ন ভাষায় সমান্তরাল অনুবাদ করে। এটি কিছু ChatGPT ওয়েবসাইট বা অ্যাপ করতে পারে না — সেই ইন্টারফেসগুলি আপনাকে একটি মডেল, একটি কথোপকথন, এক সময়ে একটি কাজ দেয়। কিন্তু API এর সাথে, আপনি আপনার স্ক্রিপ্টের অনুমতি হিসাবে আপনার কর্মপ্রবাহ স্কেল করতে পারেন। আমার মতো একজন একক ডেভেলপারের জন্য, এটি সবচেয়ে বুদ্ধিমত্তাপূর্ণ এবং অহংহীন সহকারীদের একটি ছোট দল থাকার মতো মনে হয়। এটি আংশিকভাবে ইন্টারনেট গতির উপর নির্ভর করে, তবে আমি সাধারণত কর্মী = ১২ সেট করি।

কিভাবে আমি আমার ব্লগ বহু ভাষায় করি, তা হল থালা-বাসন ধোয়া

আমি যখন কিয়োটো বিশ্ববিদ্যালয়ে গণিত অধ্যয়ন করছিলাম, তখন আমি ছাত্র ক্যাফেটেরিয়ায় ডিশওয়াশার হিসেবে কাজ করতাম। যদিও প্রতি ঘন্টায় ৫ ডলার ছিল, আমি সবসময় দীর্ঘ সময় ব্যয় করার পর — বা কখনও কখনও কয়েক দিন — গভীর বুদ্ধিবৃত্তিক মনোযোগে পুনরাবৃত্তিমূলক ম্যানুয়াল কাজ পছন্দ করেছি। পরে, যখন আমি হোক্কাইডোতে রসুন কারখানায় কাজ করতাম, আমার কাজ ছিল শুধু হাজার হাজার সাদা রসুনের কলি পালিশ করা যাতে তারা পরিবাহক বেল্টে উজ্জ্বল দেখায়। আট ঘন্টা একটি দিন — পূর্ণ ফোকাস, স্থির ছন্দ। এটি আশ্চর্যজনকভাবে সন্তোষজনক ছিল। এখন, সেই স্মৃতি থেকে ফিরে আসছি, আমি বর্তমানে বুদ্ধিবৃত্তিক কাজ করছি — সফটওয়্যার লেখা, সিস্টেম ডিজাইন করা, এই প্রবন্ধগুলি রচনা করা। কিন্তু ভারসাম্য পরিবর্তিত হয়নি। আপনি যদি আমাকে জিজ্ঞাসা করেন কিভাবে আমি নিজেই ৪২টি ভাষায় একটি ব্লগ প্রবন্ধ প্রকাশ করি, সৎ উত্তর হল: আমি তা থালা-বাসন ধুয়ে করি।