Splync بلاگ کے پاس 42 زبانیں ہیں
یہ Splync کے بلاگ پر میرا 23واں مضمون ہے، جو جوڑوں، دوستوں اور خاندانوں کے لیے ایک مشترکہ بجٹ ٹریکر ہے۔ آپ سوچ رہے ہوں گے کہ میں کیسے ہر پوسٹ کو 42 زبانوں میں شائع کرتا ہوں حالانکہ میں اکیلا ہی انجینئر ہوں۔ جیسا کہ ہر مضمون کے اوپر دیے گئے ڈسکلیمر میں کہا گیا ہے، یہ ویب سائٹ خودکار طور پر متعدد زبانوں میں ترجمہ شدہ ہے جو میں نے خود ہی تعمیر کی ہے۔ واضح رہے: میں انگلش کے علاوہ کسی بھی زبان میں ایک بھی جملہ دستی طور پر نہیں لکھتا۔ اسی لیے، جب مطلب کی درستگی ضروری ہو تو میں قارئین سے اصل انگلش ورژن کا حوالہ دینے کی درخواست کرتا ہوں۔ پھر بھی، کئی بار آزمائش اور غلطی کے بعد ترجمہ کی لائن میں بہتری لانے کے بعد، مجھے یقین ہے کہ مجموعی ترجمے کا معیار کافی معقول ہے۔ اس مضمون میں، میں یہ شیئر کروں گا کہ میرا سافٹ ویئر Splync بلاگ کو کیسے کثیر اللسان بناتا ہے۔
Python اور OpenAI API یہ ایک ساتھ کرتے ہیں
میں ہمیشہ ہر مضمون کو سادہ انگلش میں لکھتا ہوں، جس میں SEO سے متعلق میٹا ڈیٹا شامل ہوتا ہے۔ اس کے بعد، میرا Python اسکرپٹ انگلش متن کو OpenAI API تک بھیجتا ہے، ایک پرامپٹ اور ایک چھوٹی ریفرنس فائل کے ساتھ۔ OpenAI کے سرورز پر، ChatGPT-4o درخواست کو پڑھتا ہے اور ترجمہ شدہ مضمون واپس بھیجتا ہے — مثلاً، عربی ورژن — JSON فارمیٹ میں۔ جب میرا MacBook وہ ترجمہ وصول کرتا ہے، اسکرپٹ فوراً ایک اور درخواست بھیجتا ہے، اس بار بنگالی کے لیے۔ اسکرپٹ خودکار طور پر تمام 42 ہدف زبانوں کے ذریعے چکر لگاتا ہے۔ عمل کے آخر تک، میرے کمپیوٹر کے پاس 42 ترجمہ شدہ JSON فائلیں موجود ہوتی ہیں۔ ایک اور Python اسکرپٹ ہر ترجمے کو ایک HTML ٹیمپلیٹ میں ایمبیڈ کرتا ہے اور ایک سیکنڈ سے بھی کم میں 42 HTML فائلیں تیار کرتا ہے۔ تمام فائلیں اس سرور پر اپ لوڈ کی جاتی ہیں جہاں یہ بلاگ ہوسٹ کیا جاتا ہے، اور ہر زبان کا ورژن اپنی ڈائریکٹری میں رکھا جاتا ہے۔ آخر میں، ایک سرور سائڈ Python اسکرپٹ مضمون کا انڈیکس اور "اگلی پوسٹ" کے لنکس کو اپ ڈیٹ کرتا ہے تاکہ ہر زبان کی نیویگیشن ہم آہنگ رہے۔ اصل انگلش مضمون کے سادہ متن میں لکھے جانے کے ساتھ، پورا عمل عموماً 5 منٹ یا اس سے کم وقت لیتا ہے۔ جب مجھے تبدیلیاں کرنی ہوتی ہیں، تو میں سرور سائڈ Python اسکرپٹس کا استعمال کرتے ہوئے بیک وقت کئی HTML فائلیں اپ ڈیٹ کرتا ہوں۔
API کیا ہے
اگر آپ تکنیکی اصطلاحات سے واقف نہیں ہیں، تو آپ سوچ سکتے ہیں کہ میرا کمپیوٹر OpenAI کے سرور سے کیسے "بات" کرتا ہے۔ جواب ہے کچھ جسے API کہتے ہیں، Application Programming Interface۔ آپ API کو دو پروگرامز کے درمیان ایک میسنجر ونڈو کے طور پر سوچ سکتے ہیں: ایک پروگرام درخواست بھیجتا ہے اور دوسرا جواب واپس بھیجتا ہے۔ مثلاً، میرا Python اسکرپٹ ایک پیغام بھیجتا ہے جیسے کہ، "براہ کرم اس مضمون کا جرمن میں ترجمہ کریں۔" OpenAI API کے ذریعے وہ پیغام وصول کرتا ہے، ترجمہ تیار کرتا ہے، اور نتیجہ واپس بھیجتا ہے۔ یہ بالکل اسی طرح کام کرتا ہے جیسے ریسٹورنٹ میں آرڈر دینا: آپ ویٹر سے کہتے ہیں کہ آپ کیا چاہتے ہیں، کچن اسے تیار کرتا ہے، اور ویٹر اسے آپ کی میز پر واپس لاتا ہے۔ اور آپ کو ویٹر کی ضرورت کیوں ہوتی ہے؟ کیونکہ آپ کچن میں نہیں جاتے یا براہ راست شیف سے بات نہیں کرتے — آپ نہیں جانتے کہ کچن کیسے کام کرتا ہے، اور آپ کو اس کی ضرورت بھی نہیں۔ آپ شاید ویٹر سے کہیں، "کیا میں ایک چیز برگر لے سکتا ہوں؟"، اور ویٹر شاید "آرڈر تیار! T21، Chihuahua!" بالکل مختلف فارمیٹ میں کہے۔ API بالکل وہی کردار ادا کرتا ہے۔ یہ دو مختلف سسٹمز کو آپس میں جوڑتا ہے بغیر اس کے کہ وہ ایک دوسرے کی اندرونی زبان یا ورک فلو کو سمجھیں۔
مجھے OpenAI API کی ضرورت کیوں ہے
اب جب کہ ہم نے دیکھا کہ API کیا ہے، یہاں ہے کہ میں واقعی اس بلاگ کے لیے اس پر انحصار کیوں کرتا ہوں۔ عملی طور پر، میں خود ChatGPT سے "بات" کرنا جانتا ہوں — لیکن میرے پاس 42 زبانیں ہیں جنہیں میں نے پروسیس کرنا ہے۔ ویٹر کو 42 بار کال کرنا تھکا دینے والا ہوگا (پروگرام انگلش کو انگلش میں ترجمہ کرنے کو چھوڑ دیتا ہے، لیکن پھر بھی متن کو JSON میں تبدیل کرتا ہے)۔ OpenAI API کا استعمال میرے Python اسکرپٹ کو ان سب درخواستوں کو خودکار طور پر بھیجنے دیتا ہے، جس سے مجھے دہرانے والے کام سے بچاتا ہے تاکہ میں دوسرے کاموں پر توجہ مرکوز کر سکوں۔ میں ایک اکیلا ڈویلپر ہوں، اس لیے میرا وقت مؤثر طریقے سے استعمال کرنا ضروری ہے۔ جب بھی میں ایک ایسا کام دیکھتا ہوں جو دہرایا جاتا ہے اور اس کے واضح قواعد ہیں، میں اسے خودکار بناتا ہوں۔ نتیجہ عام طور پر ایک ایسا عمل ہوتا ہے جو لاکھوں گنا تیز اور مکمل طور پر غلطی سے پاک ہوتا ہے۔ یہی وجہ ہے کہ API کے ذریعے خودکاری ضروری ہے — یہ میرے اسکرپٹ کو 42 "آرڈرز" فوری اور قابل اعتماد طریقے سے دینے کی اجازت دیتا ہے۔
42 زبانیں کیوں؟
تکنیکی طور پر، میں بہت سی زبانیں مزید شامل کر سکتا ہوں؛ اس کے لیے صرف مزید چند منٹ درکار ہوں گے جب میں برتن دھو رہا ہوں۔ لیکن میں ذاتی طور پر 42 کا نمبر پسند کرتا ہوں، جو کہ ڈگلس ایڈمز کی کتاب سے "زندگی، کائنات، اور ہر چیز کا حتمی سوال کا جواب" ہے۔ نمبر 42 سے میری وابستگی کے علاوہ، بہت چھوٹی زبانوں کو شامل کرنا خطرناک ہو سکتا ہے، کیونکہ AI ترجمہ محدود تربیتی مواد والی زبانوں کے لیے کم قابل اعتماد ہو سکتا ہے۔
ChatGPT 4o کا درجہ حرارت
جب میں نے اس کثیر زبانی ترجمہ کے نقطہ نظر کے ساتھ پہلی بار تجربہ کیا تو نتائج اچھے تھے لیکن کامل نہیں۔ کچھ جملے غلط ترجمہ ہو گئے، بہت زیادہ لفظی تھے، یا بعض زبانوں میں غلط فہمی پیدا کرنے والے تھے۔ میں بے ادبی یا کسی خاص ثقافتی سیاق و سباق میں غیر حساس بیانات پیدا کرنے کے بارے میں بھی فکر مند تھا۔ اور ظاہر ہے، میں نہیں چاہتا تھا کہ میرے ترجمے روبوٹک یا مشینی لگیں۔ ترجمہ کے معیار کے پیچھے ایک اہم عنصر درجہ حرارت کی ترتیب ہے — ایک پیرا میٹر جو اس بات کو کنٹرول کرتا ہے کہ AI کتنا "تخلیقی" یا "سخت" ہونا چاہیے۔ ایک زیادہ درجہ حرارت AI کو زیادہ تخلیقی بناتا ہے، لیکن اسے زیادہ غیر متوقع بھی بناتا ہے۔ کم درجہ حرارت اسے اصل معنی کے قریب رکھتا ہے، لیکن کبھی کبھار سخت محسوس کر سکتا ہے۔ صحیح توازن تلاش کرنے کے لیے بہت ساری آزمائش اور غلطی کا سامنا کرنا پڑا: اتنا کم کہ درستگی یقینی ہو، لیکن اتنا بھی نہیں کہ متن بے جان ہو جائے۔ بہت سے تجربات کے بعد، مجھے لگا کہ درجہ حرارت = 0.8 اس بلاگ کی ضروریات کے لیے بہترین ہے: اصل انگریزی کے وفادار رہنے کے لیے کافی درست، لیکن دوسری زبانوں میں قدرتی لگنے کے لیے اتنا لچکدار۔
ChatGPT 5.x درجہ حرارت کو سپورٹ نہیں کرتا
جدید ماڈلز جیسے کہ ChatGPT 5 اور 5.1 اب درجہ حرارت کی ترتیبات کو بالکل بھی سپورٹ نہیں کرتے — اس پیرامیٹر کو ہٹا کر ایسی چیزوں سے تبدیل کر دیا گیا ہے جیسے کہ استدلال اور کوشش، جو اس بات پر اثر انداز ہوتی ہیں کہ ماڈل کس طرح سوچتا ہے نہ کہ وہ کتنا "تخلیقی" بنتا ہے۔ دوسرے الفاظ میں، ChatGPT 4o نے مجھے ایک جسمانی ڈائل دیا جسے میں ترجمہ کے انداز کو ٹھیک کرنے کے لیے موڑ سکتا تھا، لیکن 5.x فیملی مکمل طور پر ایک مختلف فلسفے کی پیروی کرتا ہے۔ اگر آپ نے نئے ماڈل سے غیر رسمی طور پر کہا کہ "اس کا ترجمہ درجہ حرارت = 0.8 کے ساتھ کریں،" تو یہ شاید ایسے برتاؤ کی کوشش کرے گا جیسے کہ ایسی ترتیب ابھی بھی موجود ہو، لیکن اندرونی طور پر پیرامیٹر چلا گیا ہے۔ ماڈل صرف ارادے کا اندازہ لگاتا ہے۔ جیسے ہی OpenAI اپنے ماڈلز کو اپ ڈیٹ کرتا رہتا ہے، میں شاید کسی دن اپنی ترجمہ لائن کو ایڈجسٹ کروں۔ فی الحال، ChatGPT 4o میرا انتخاب رہتا ہے کثیر اللسان تراجم کے لیے — نہ صرف اس لیے کہ یہ بہت سی زبانوں میں سیاق و سباق کو اچھی طرح سمجھتا ہے، بلکہ اس لیے بھی کہ اس کی API قیمت میرے جیسے اکیلے ڈویلپر کے لیے معقول ہے۔ حقیقت میں، 4o OpenAI کی تاریخ میں سب سے زیادہ پسندیدہ ماڈلز میں سے ایک کے طور پر جانا جا سکتا ہے۔
OpenAI API کے ورکرز
OpenAI API کے بارے میں ایک حیرت انگیز بات — براؤزر میں براہ راست ChatGPT استعمال کرنے کے مقابلے میں — یہ ہے کہ آپ بیک وقت ایک سے زیادہ ChatGPT "ورکر" استعمال کر سکتے ہیں۔ جب میں 42 زبانوں کے لیے ترجمہ کی درخواستیں بھیجتا ہوں، تو میں انہیں ایک ایک کر کے آہستہ سے نہیں بھیج رہا ہوں۔ اس کے بجائے، API کئی درخواستوں کو متوازی طور پر پروسیس کر سکتا ہے، جیسے میں نے اچانک مترجمین سے بھرا ہوا ایک کمرہ بھرتی کر لیا ہو جو سب ایک ساتھ کام شروع کر دیتے ہیں۔ میرا Python اسکرپٹ ورک فلو کو ایک چھوٹی پروڈکشن لائن کی طرح ہینڈل کرتا ہے: یہ انگریزی مضمون تیار کرتا ہے، درخواستیں بھیجتا ہے، جوابات کا انتظار کرتا ہے، اور نتائج کو JSON فائلوں میں پراسیس کرتا ہے۔ دریں اثنا، OpenAI سرورز متعدد ماڈل انسٹانسز کو بیک وقت چلاتے ہیں، ہر ایک مختلف زبان کو متوازی طور پر ترجمہ کرتا ہے۔ یہ کچھ ایسا ہے جو ChatGPT ویب سائٹ یا ایپ نہیں کر سکتی — وہ انٹرفیس آپ کو ایک ماڈل، ایک گفتگو، ایک کام ایک وقت میں دیتے ہیں۔ لیکن API کے ساتھ، آپ اپنے اسکرپٹ کی اجازت کے مطابق اپنی کام کی لوڈ کو جتنا چاہیں بڑھا سکتے ہیں۔ میرے جیسے اکیلے ڈویلپر کے لیے، یہ ایسا محسوس ہوتا ہے جیسے میرے پاس بہترین اور بے خود معاونین کی ایک چھوٹی ٹیم ہو۔ یہ جزوی طور پر انٹرنیٹ کی رفتار پر منحصر ہے، لیکن میں عام طور پر workers = 12 سیٹ کرتا ہوں۔
میں اپنے بلاگ کو کثیر اللسان بنانے کے لیے کیا کرتا ہوں؟ برتن دھوتا ہوں
میں جب کیوٹو یونیورسٹی میں ریاضی کا مطالعہ کر رہا تھا تو میں اسٹوڈنٹ کیفیٹیریا میں بطور برتن دھونے والا کام کرتا تھا۔ جب کہ ادائیگی تقریباً 5 ڈالر فی گھنٹہ تھی، میں ہمیشہ بہت زیادہ گہرائی والی فکری توجہ کے بعد، دہرائے جانے والے دستی کام کو پسند کرتا تھا۔ بعد میں، جب میں ہوکائیدو کے لہسن کے کارخانے میں کام کرتا تھا، میرا کام صرف ہزاروں سفید لہسن کی کلیوں کو پالش کرنا تھا تاکہ وہ کنویئر بیلٹ پر چمکدار نظر آئیں۔ آٹھ گھنٹے روزانہ — مکمل توجہ، مستحکم تال۔ یہ عجیب طرح سے تسلی بخش تھا۔ اب، ان یادوں سے واپس، میں اس وقت فکری کام کر رہا ہوں — سافٹ ویئر لکھ رہا ہوں، سسٹمز ڈیزائن کر رہا ہوں، ان مضامین کو لکھ رہا ہوں۔ لیکن توازن نہیں بدلا ہے۔ اگر آپ مجھ سے پوچھیں کہ میں اکیلا ہی 42 زبانوں میں بلاگ مضمون کیسے شائع کرتا ہوں، تو دیانت دارانہ جواب ہے: میں یہ برتن دھونے سے کرتا ہوں۔